monorepo + git subtree - #1860
Draft
CedricGuillemet wants to merge 36 commits into
Draft
Conversation
git-subtree-dir: Dependencies/CMakeExtensions git-subtree-split: 631780e42886e5f12bfd1a5568c7395f1d657f43
…ies/CMakeExtensions'
…d43b git-subtree-dir: Dependencies/AndroidExtensions git-subtree-split: 2e85a8d43b89246c460112c9e5546ad54b6e87b4
…ies/AndroidExtensions'
git-subtree-dir: Dependencies/bgfx.cmake git-subtree-split: 9c64597523a4edb3c54ef66f7ad1c7c3fa806ceb
git-subtree-dir: Dependencies/glslang git-subtree-split: 284e4301e5a6b44b279635276588db7cdd942624
…ies/JsRuntimeHost'
git-subtree-dir: Dependencies/JsRuntimeHost git-subtree-split: 8cd142951018de07c89c23f726fb7dc9c8374599
git-subtree-dir: Dependencies/SPIRV-Cross git-subtree-split: a512817ddbcd879a3929aef7d1d762871bdf8635
git-subtree-dir: Dependencies/UrlLib git-subtree-split: e86ffb34e77092266145497681efc74e0a920ffe
git-subtree-dir: Dependencies/bgfx git-subtree-split: 539e1febfba9c0ad85cee43266be9bb066225b3e
git-subtree-dir: Dependencies/bimg git-subtree-split: c3cf9afef058f99846de57050c74b183815d5ee7
git-subtree-dir: Dependencies/bx git-subtree-split: efdef94b9486509e85b906170020f4c883d3eed5
Replace configure-time fetches for Babylon-owned dependencies with local squashed subtree imports while retaining FetchContent for external dependencies. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 57751371-37e3-4a55-87c1-affd116dd8ff
Preserve the local subtree wiring while incorporating the latest external dependency declarations from upstream. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 57751371-37e3-4a55-87c1-affd116dd8ff
0837ead970 Merge pull request BabylonJS#78 from BabylonJS/fix/iid-idxgiswapchain2-guid 42951c403e Define local IID_IDXGISwapChain2 GUID eb1e6a6088 Merge pull request BabylonJS#77 from BabylonJS/fix/uwp-swapchain2-frame-latency 2b9adaf09d UWP: QI IDXGISwapChain2 before SetMaximumFrameLatency 3b85a1c9f8 Merge pull request BabylonJS#76 from BabylonJS/bk-update-bgfx 16bc14f629 Merge remote-tracking branch 'upstream/master' into bk-update-bgfx 470cb0154e Updated Vulkan headers. 37b6ea512b Updated glslang. bc976f168f Updated spirv-cross. 31ca235db8 Updated spirv-tools. 1e2e22d983 Updated spirv-headers. f3ffcc648a Updated meshoptimizer. c32236ecb3 Update AirMech section in README a4af1f49dc Re-capitalised "nVidia" to "NVIDIA" where applicable. A minor change, but it aids consistency and is now in-line with NVIDIA's own naming policy. You're welcome Jensen. (#3945) 87ec6b86c6 Fix API selection in standalone example. (#3944) 3fab221b95 Use bx::hasUniqueObjectRepresentation to detect undesired padding. (#3943) a7c3e28ae0 Fixed RenderBind hash collision on unoccupied bindings. (#3942) a9dd2e20fe texturev: Added ability to delete image. (#3940) 5929f9826c VK: Fixed 3D to 2D blit, and compressed texture update region exceeding mip extent. (#3939) c949b911fc Reduce default footprint: optional debug text, drop unused shader copies. (#3938) 4b4c138fb0 vulkan: use BC1_RGBA formats so TextureFormat::BC1 keeps its 1-bit alpha (#3937) 7d81d2874b Submit optimization: skip unused views, hash only occupied bind slots, index reserved FrameArenaT directly. (#3936) f73862c579 D3D12: Fixed texture readback resource state. Disabled refcount asserts for external device. (#3935) a81591b15f EGL, WGL: Fixed caller-provided context handling. (#3934) 7f0b9c930b Fixed amalgamated build. (#3933) 732724bf75 VK, WebGPU: Fixed frame buffer resize on headless reset. (#3931) 1dfc38978d D3D12: Fixed scratch descriptor heap sizing. Added present pacing for window frame buffers. (#3930) a014198164 WebGPU: Fixed mipgen for BGRA8 textures. (#3929) c3540fdcff Metal: Preserve swapchain framebuffer size. (#3928) e5969e73c6 Metal: Fix wrong setScissor: calls after window resize (#3927) d611ecef3f Fixed WebGPU sRGB, MSAA, depth-stencil readback, and BGRA8 storage. (#3926) 0432b5d3c5 Reworked blit to use regions, added buffer blit and read buffer. (#3924) f564ae8bf9 Fixed device lost handling. (#3923) aadf386aac Fix DeviceLost in D3D11 TimerQuery bypassing BGFX_FATAL with DX_CHECK (and thus being un-handleable by consumers) (#3922) 780f7bf00a Fix MSAA blit into a multisampled destination and stale MSAA resolve. (#3921) dd961560d5 Raw buffers (#3920) 19eedfed66 Fixes missing type bug in zig-bindings introduced on #3756 (#3919) 307cbbfbcb Preprocessor: Fix missing NL at EOF. (#3918) 6d0d15f2a5 Entry: Fixed keymapings. (#3917) 53e3c599fd python bindings follow-up (#3916) c772ecc3f5 add python bindings generator (#3915) 1f0215f89d docs: add bgfxim Nim API bindings (#3913) cffee4ee96 GLES 3.2: Various fixes. (#3914) ada201c314 GL: Fix clear of an integer render target, and several other GLES issues. (#3912) 66b560219e Metal: Fixed stencil-only framebuffer attachment. (#3911) 91b3aa3785 Fix stencil-aspect readback, depth format reporting, and blit bugs. (#3910) 8c28353267 Replaced FCPP with new preprocessor. (#3909) 4b24c1482f Fixed image declaration macros not expanding format argument. (#3908) d8db55f812 D3D11, D3D12, GL, VK: Resolve when blitting from sampleable MSAA surface. (#3907) 7e2f4e34c0 GL: Bind missing vertex attributes to offset 0. (#3906) d1b802b859 Merge pull request BabylonJS#75 from BabylonJS/bk-update-bgfx f149b2091a Merge remote-tracking branch 'upstream/master' into bk-update-bgfx fde976604c Raised minimum OpenGL version to 4.3. OpenGLES to 3.0. Removed glsl-optimizer. (#3905) 1820f47383 DXC 1.10.2605.2. (#3904) 1eb770679f WebGPU: Fixed timer query. Fixes #3902. (#3903) d918bd0be7 Fixed 08-update texture update size, WebGPU cube slice count, Vulkan init order. (#3901) 35a98dd645 Grow per-frame storage on-demand instead statically allocating for the maximum. (#3900) a772859619 Fixed missing texture3DLod/Grad aliases for GLSL >= 130. Fixes #3888. (#3899) 1671c5d065 VK, GL: Fixed Uint10 vertex attribute format. (#3897) 0e698a6ad2 Metal: Fixed swizzled format caps, sampler border color, headless render pass, and empty frame buffer validation. (#3896) 7a09f00333 Fixed MSAA/framebuffer, format caps, stencil, and debug name issues. (#3895) bc70563478 Metal: Fixed pipeline state cache reusing stale uniform handles. (#3893) 419cf9c281 Metal: Fixed texture clear, image sub-range, and view dimension. (#3892) c53bdbbadc VK: Fixed BGFX_STATE_BLEND_SRC_ALPHA_SAT using source alpha instead of the saturated factor. (#3891) 7b41f2e108 D3D12: Fixed occlusion query results never resolving until the ring buffer filled. (#3890) faa00a1639 Fixed topologyConvert strip conversion. Fixed Uint10 vertex packing. (#3889) b12eef18b5 Fixed clear quad not writing stencil. (#3887) b54610b562 Rebuilt shaders. (#3886) e3fc300358 D3D11: Restore discrete clear for backbuffer. Fixes 13-stencil/14-shadowvolumes. (#3885) 56ef37bcf8 Implemented BGFX_SAMPLER_SAMPLE_STENCIL in all backends. (#3884) 3d3b08778e Support depth-1 volume textures. (#3883) 0af3dac7bf D3D12: Filter out mismatching clear value warnings. Fixes #3879. (#3882) 23844aa335 Merge pull request BabylonJS#74 from BabylonJS/bk-update-bgfx 61ff2d394e Merge remote-tracking branch 'upstream/master' into bk-update-bgfx e83814b122 GL: Restore texture blit and read-back fallbacks for OpenGL ES. (#3881) 024817e2d4 Merge pull request BabylonJS#73 from BabylonJS/bk-update-bgfx 66ff6bef00 Merge remote-tracking branch 'upstream/master' into bk-update-bgfx 56ecfded54 Fix: add missing memory barriers for compute writes (#3878) 9849a30930 Added improved command line handling. (#3877) cb2b1edbbe docs: add Harbi2 to README (#3876) af4015db29 Add BGFX_CONFIG_GL_NORMALIZE_NDC_CONVENTION. (#3875) 234d7a745d D3D11: Fixed BGFX_FRAME_FLUSH not issuing queued commands. (#3874) c0b161ef61 GL: Fixed render target MSAA on GLES 3.0 / WebGL 2. Fixes #3870. (#3873) d2633c6ac2 Fix vkCmdBeginRenderPass crash on unused views in headless mode (#3871) b99e390016 Fixed blits and cached uniforms submitted at wrong view when setViewOrder is used. (#3872) 34deeda109 Metal: Fixed MSAA array render targets, BGRA8 mip autogen, and blit/resolve order. (#3868) e75ab293cc Metal/WebGPU: Clip view scissor and render area to the framebuffer. Fixes #3864. (#3866) 47320e39a8 Added missing shaders. (#3867) aa736d5691 VK: Fixed device memory leaks, pipeline layout lifetime, compressed blit extent, and view rect clipping. (#3865) 527397d502 Atmospheric sky example v1 (#3861) 129248d16f GL: Fixed headless mode. (#3863) 7a38c5ce83 D3D11/D3D12/GL: Fixed blit ordering: submit blits after the previous framebuffer resolve and before the view clear. (#3862) 474bdecf29 Merge pull request BabylonJS#72 from BabylonJS/bk-update-bgfx 46a96e1f23 Merge remote-tracking branch 'upstream/master' into bk-update-bgfx c7684e20da Metal: Fixed MSAA array render targets, BGRA8 mip autogen, and blit/resolve order. (#3860) 980c02ecd7 VK: Added BGFX_CONFIG_RENDERER_VULKAN_ROBUST_BUFFER_ACCESS. Fixes #3855. (#3859) 2bcd84ad46 Fixed matrix cache off-by-one usable matrices. (#3858) 8377801ee0 Add BC4S, BC5S, BC6HU, RGB10A2U and D32FS8 texture formats. (#3857) 1862bf0480 Guard against undersized texture updates. Fix compute image views. (#3856) 28a384fd16 Merge pull request BabylonJS#71 from BabylonJS/bk-update-bgfx 7102879751 Merge remote-tracking branch 'upstream/master' into bk-update-bgfx 4c5e3a915b D3D12: Fixed execution category debug layer errors. Fixes #3853. (#3854) 2cdd66c877 D3D12: Fixed submitBlit not transitioning destination texture to COPY_DEST. Fixes #3851. (#3852) 3a5d1df4ff D3D12: Fixed initial data upload for buffers with UAV. (#3850) f0ff45697b Fix include paths. (#3849) ce18bdb6c6 Allow negative x/y in bgfx::setViewRect. (#3848) 7551ac61c5 D3D12: Fixed compressed texture read back with sub-block mips. (#3847) f98c247765 D3D11/D3D12: Added debug info queue message dump. (#3846) 8e50cd586c Fixed auto-gen mips on resolved MSAA render targets. (#3845) c1da9d62b0 check validity of XGetXCBConnection (#3844) bb7edaa038 Metal: Fix requestScreenShot to use FrameBufferHandle. Closes #3249. (#3843) c2fb64201b fcpp: Fixed expansion for ## operands, and enable FPPTAG_RIGHTCONCAT. Closes #3629." (#3842) ccecb86ffc Merge pull request BabylonJS#70 from BabylonJS/bk-update-bgfx ea908a8e00 Merge remote-tracking branch 'upstream/master' into HEAD 65551a7db1 D3D12: Fix compute ping-pong barrier / per-dispatch resource state. Closes #3840. (#3841) ef73539985 GL: Added support for external texture. (#3839) 3b47ef2560 Rebuilt shaders. (#3838) 435627021d Added clear texture API. (#3836) 759bdeb936 D3D11: align binding limit types (#3833) d219e7c2d6 Cleanup. (#3835) af0256b57a VK: Fix init crash w/external device on GPU w/o video decode queues (#3834) a4555482f9 Increased number of texcoord attributes, increased instance data, added int32/uint32 vertex attributes. (#3832) 7927ef1c6f Metal: Add support for layered rendering. (#3802) 6846333b7b D3D12: Fixed screenshot to honor framebuffer handle and headless mode. (#3831) 6eb09a4a9b Added setImage with array layer range for compute images. (#3829) 39a2a05a3c Fixed warnings. (#3830) 510b0445c2 D3D11: Fixed cube-array binding and compute buffer UAV binding. (#3828) 7c6a7e5f00 D3D11/VK/Metal/GL: Fixed dangling framebuffer handle on destroy. (#3827) c5ed0238b4 D3D11/D3D12: Fixed MSAA multi-layer resolve. (#3826) 1fae5a8b06 D3D11/D3D12/VK/WebGPU: Fixed blend-state, and blend factor for MRT. (#3825) 2877442edc Fixed BC texture block-size rounding in readback/create/update. (#3822) 3920502547 VK: Mark BGRA8/RGBA8 as valid backbuffer texture formats when in headless mode. (#3824) 298f68a6ed D3D12: Disable GPU based validation when graphics debugger is present. (#3823) 7b38346442 Added stencil write mask. (#3821) 80bee4959c Added example name to title bar. Added WebGPU vendor info. (#3820) git-subtree-dir: Dependencies/bgfx git-subtree-split: 0837ead970a66875dcba37d1bd8e104db0879561
…illemet-convert-to-monorepo-subtrees
371d90098b Use zero depth to mean not a volume texture. (BabylonJS#150) b8cef564e3 texturec: Added positional arguments. (BabylonJS#149) 3b4baab012 Add BC4S, BC5S, BC6HU, RGB10A2U and D32FS8 texture formats. (BabylonJS#148) 0a64629d9f Updated tintexr. (BabylonJS#147) e95c449452 Updated stb_image. (BabylonJS#146) da38bface6 Fixed bounds check, and EXR channel pixel type. (BabylonJS#145) be16d98e34 Updated simplewebp. (BabylonJS#144) git-subtree-dir: Dependencies/bimg git-subtree-split: 371d90098b1fd017cd00205979d5ef74b8c3ed62
…illemet-convert-to-monorepo-subtrees
080f466590 Added bx::hasUniqueObjectRepresentation type trait. (BabylonJS#420) 671a001d3e tinystl: reset() keeps the bucket table; clear() still shrinks to 9. (BabylonJS#419) 9f874936e2 Added ability to move file into trash. (BabylonJS#418) 9e3fadf6f1 Fixed floatFlip, SIMD variable-shift masks and %g precision, and added tests. (BabylonJS#417) 26ff6d907d MinGW: Fix sal. (BabylonJS#416) 0a09590ac8 Added positional arguments to CommandLine. (BabylonJS#415) 822be40688 Scanner: Class::Identifier must not start with a digit. (BabylonJS#414) 43bfe29402 Fixed DLL search order hijacking in dlopen. (BabylonJS#413) 0b001f5f36 MSVC: Added ARM64 target. (BabylonJS#412) 056ea3486c Scanner: Cleanup. (BabylonJS#411) 9916e720fc Added scanner. (BabylonJS#410) cd6720ce9a platform.h: detect MSVC ARM64 as 64-bit and raise 32-bit Windows minimum (BabylonJS#409) 5a2b876258 fromString: Parse hex float literals. (BabylonJS#408) a7257985fa Added bx::isEqual for bx::StringView. (BabylonJS#407) c98e98cde1 Fixed amalgamated build. (BabylonJS#406) ed183eb246 Allow files with 10k+ lines to align nicely. (BabylonJS#405) git-subtree-dir: Dependencies/bx git-subtree-split: 080f466590c161664f2a3c5d21e05bd31cc9c8c8
…illemet-convert-to-monorepo-subtrees
7c8705749f fix brace (#13) git-subtree-dir: Dependencies/SPIRV-Cross git-subtree-split: 7c8705749fc1e234119c20695f82179b30d90914
…illemet-convert-to-monorepo-subtrees
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
It introduces a large monorepo/subtree dependency restructure with broad build-system impact, which warrants final human validation despite only minor local issues found.
Pull request overview
This PR converts BabylonNative into a self-contained monorepo by vendoring multiple upstream dependencies under Dependencies/ via squashed git subtree imports, reducing reliance on FetchContent downloads for those components while keeping a few selected dependencies external.
Changes:
- Import several upstream repositories into
Dependencies/using squashedgit subtreehistory. - Adjust CMake usage in dependency subprojects to avoid re-fetching
CMakeExtensionswhen the helper command is already defined. - Add/update various supporting files within imported dependencies (e.g.,
.gitignore, test assets/shaders, helper scripts, docs).
File summaries
| File | Description |
|---|---|
| Apps/HeadlessScreenshotApp/CMakeLists.txt | Removes redundant CMakeExtensions FetchContent usage; relies on top-level CMakeExtensions include. |
| Dependencies/xr/CMakeLists.txt | Guards CMakeExtensions FetchContent usage based on whether FetchContent_MakeAvailable_With_Message is already available. |
| Dependencies/UrlLib/.gitignore | Adds ignore for build output in imported UrlLib subtree. |
| Dependencies/CMakeExtensions/* | Adds vendored CMake helper repository content used across the build. |
| Dependencies/AndroidExtensions/* | Adds vendored Android helper repository content. |
| Dependencies/JsRuntimeHost/* | Adds vendored JsRuntimeHost repository content (tests, polyfills, build scripts, docs). |
| Dependencies/SPIRV-Cross/* | Adds vendored SPIRV-Cross repository content including shaders/reference outputs and helper scripts. |
| Dependencies/glslang/* | Adds vendored glslang repository content including extensive test corpus and metadata files. |
| Dependencies/bgfx.cmake/* | Adds vendored bgfx.cmake repository content (CMake integration templates/config). |
| Dependencies/bgfx/* | Adds vendored bgfx repository content (sources, examples, tools, third-party). |
| Dependencies/bx/* | Adds vendored bx repository content (compat headers, config files). |
| Dependencies/bimg/* | Adds vendored bimg repository content (tools, 3rdparty artifacts/config). |
Review details
- Files reviewed: 109/12923 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+1
to
+4
| # JsRuntimeHost Documention | ||
|
|
||
| ## Debugging JavaScript on Android | ||
| [How to setup Chromium DevTools to debug JavaScript](WhenToUseBabylonNative.md) |
9a569c7759 Merge pull request BabylonJS#144 from BabylonJS/bump/bgfx-swapchain2-guid 96add67bf0 Bump bgfx for IID_IDXGISwapChain2 GUID fix ede5513a6b Merge pull request BabylonJS#143 from BabylonJS/bump/bgfx-uwp-frame-latency 67b4b74122 Bump bgfx for UWP IDXGISwapChain2 frame-latency fix 1a135dbf90 Updated bgfx and bx. (BabylonJS#142) 9e56bab412 Updated bgfx, bimg and bx. (BabylonJS#141) 865b8e6afe Updated bgfx. (BabylonJS#140) 06755e6bb8 Updated bgfx, bimg and bx. (BabylonJS#139) f7333d92a0 Forward the remaining allocation-sizing BGFX_CONFIG_ settings (BabylonJS#138) e7773eed1d Honor BGFX_CONFIG_ settings set by a parent project (BabylonJS#137) 5c98749de4 Merge pull request BabylonJS#135 from BabylonJS/sergio/sse4-minspec-x86-slices 92961f9ac4 Updated bgfx and bimg. (BabylonJS#136) 9d89f09347 Apply bx's SSE4.2 minspec to every x86 target, not just x86_64 6c5515826c Don't let -Xarch_x86_64 break Apple builds that use -Werror. (BabylonJS#134) 7062f1109a Fix arm64 builds: Apple SSE minspec and MSVC ARM64 (BabylonJS#133) 44adc64c88 Updated bgfx and bx. (BabylonJS#131) 8f7e445593 Merge pull request BabylonJS#130 from SergioRZMasson/fix-x86_64-sse-minspec dd5bb1c019 Bump bx submodule to include the Windows platform.h fixes 191b723258 Propagate bx's x86_64 SSE4.2 minspec to the bx target 3b67f0c0c5 Updated bx, and bimg. (BabylonJS#129) 4c244b1a9f Updated bgfx, bimg, bx. (BabylonJS#128) git-subtree-dir: Dependencies/bgfx.cmake git-subtree-split: 9a569c775917e3dd2a8cfb8836aeddbe790a8deb
…illemet-convert-to-monorepo-subtrees # Conflicts: # Dependencies/bgfx.cmake/bgfx # Dependencies/bgfx.cmake/bimg # Dependencies/bgfx.cmake/bx
…62700 0d26362700 Fix setInterval starving the JS dispatch queue (BabylonJS#220) 0c3d072401 XMLHttpRequest: stop truncating responses at the first NUL byte (BabylonJS#231) 9fa1f532b6 TextDecoder: support UTF-16LE and UTF-16BE (BabylonJS#230) cb988baadb Fix V8 N-API leaking every promise ever created (BabylonJS#227) 2390c63c34 QuickJS: report success from the napi_throw family (BabylonJS#225) dbd4620fbc Fix use-after-free: keep escaped handles alive when their escapable scope closes (BabylonJS#223) 9271f13b65 Add blob: URL support to URL.createObjectURL / revokeObjectURL (BabylonJS#207) git-subtree-dir: Dependencies/JsRuntimeHost git-subtree-split: 0d26362700edd52a48c38ab83b1090e53e7cfeba
…illemet-convert-to-monorepo-subtrees
0c991337a1 Add pluggable URL scheme resolver (e.g. blob:) to UrlRequest (BabylonJS#37) 425c9f1080 Win32: surface the real error when opening a URL fails (BabylonJS#36) 5683cc4d2f Make Abort() interrupt the libcurl and NSURLSession transports (BabylonJS#34) 80293c0e5a Fix macOS CI: move to Xcode 26.4 on the macos-26 runner ed1a9fdcfa Simplify CI workflows: drop redundant Linux compiler env and macOS build target a5a67c951e Add GitHub Actions CI (Win32, macOS, Linux) (BabylonJS#32) git-subtree-dir: Dependencies/UrlLib git-subtree-split: 0c991337a1160ba7a2d062bf8e342d0a66f48dc9
…illemet-convert-to-monorepo-subtrees
CedricGuillemet
marked this pull request as draft
September 2, 2026 12:28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Convert BabylonNative to a self-contained monorepo using squashed Git subtree imports instead of copying dependency sources.
Dependencies/CMakeExtensions631780e42886e5f12bfd1a5568c7395f1d657f43Dependencies/AndroidExtensions2e85a8d43b89246c460112c9e5546ad54b6e87b4Dependencies/bgfx.cmake9a569c775917e3dd2a8cfb8836aeddbe790a8debDependencies/bgfx0837ead970a66875dcba37d1bd8e104db0879561Dependencies/bimg371d90098b1fd017cd00205979d5ef74b8c3ed62Dependencies/bx080f466590c161664f2a3c5d21e05bd31cc9c8c8Dependencies/glslang284e4301e5a6b44b279635276588db7cdd942624Dependencies/JsRuntimeHost0d26362700edd52a48c38ab83b1090e53e7cfebaDependencies/SPIRV-Cross7c8705749fc1e234119c20695f82179b30d90914Dependencies/UrlLib0c991337a1160ba7a2d062bf8e342d0a66f48dc9bgfx,bimg, andbxare sibling subtrees becausebgfx.cmakerequires their source trees. Its obsolete nested gitlinks were removed.base-nandios-cmakeintentionally remain FetchContent dependencies. Other external or configuration-specific dependencies remain fetched as before.Working with bgfx changes
Example scenario: I need a NativeEngine change accompanied by a bgfx change. I also notice that
BabylonJS/bgfxhas upstream changes that I want locally. After validating both changes together, I want a BabylonNative PR and a separate bgfx PR.1. Configure dependency remotes once
If either remote already exists:
2. Pull bgfx upstream changes into BabylonNative
Start from a clean BabylonNative worktree. This creates a squashed subtree merge commit:
If local bgfx work already exists, commit it first, run the same pull, and resolve merge conflicts under
Dependencies/bgfxnormally.3. Make and validate the coordinated changes
Edit both areas in the same BabylonNative branch:
Commit the coordinated change:
git add Plugins/NativeEngine Dependencies/bgfx git commit -m "Update NativeEngine and bgfx integration"4. Push only the bgfx subtree to the bgfx fork
git subtree pushsynthesizes a branch containing only the history and files underDependencies/bgfx:Alternatively, split first to inspect the generated branch locally:
Open the related bgfx PR:
The initial import is squashed, so BabylonNative does not contain bgfx's full historical commit graph. Changes made after import can still be split and proposed upstream with this workflow.
5. Open or update the BabylonNative PR
Open the bgfx PR first and link it from the BabylonNative PR. If the bgfx PR changes during review, make the corresponding edits under
Dependencies/bgfx, commit them on the BabylonNative branch, and rungit subtree pushagain.After the bgfx PR merges, synchronize the BabylonNative subtree with the merged upstream branch:
Validation
A clean Win32 MSVC build was configured with QuickJS and D3D11:
All 28 native unit tests passed. The clean configure fetched only dependencies that intentionally remain external; none of the subtree-managed repositories were downloaded.