diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a466d0c0a..28fcaae2e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,147 +6,12 @@ on: pull_request: branches: [master] +# Temporarily reduced to only Ubuntu_GCC_JSC for LPT flake validation. +# Revert this file before merging. jobs: - # ── Apple: macOS ────────────────────────────────────────────── - MacOS: - uses: ./.github/workflows/build-macos.yml - - MacOS_Ninja: - uses: ./.github/workflows/build-macos.yml - with: - generator: 'Ninja Multi-Config' - - MacOS_Sanitizers: - uses: ./.github/workflows/build-macos.yml - with: - enable-sanitizers: true - - # ── Apple: iOS ──────────────────────────────────────────────── - iOS_iOS180: - uses: ./.github/workflows/build-ios.yml - with: - deployment-target: '18.0' - - iOS_iOS175: - uses: ./.github/workflows/build-ios.yml - with: - deployment-target: '17.5' - - # ── Apple: Xcode 26 ────────────────────────────────────────── - MacOS_Xcode26: - uses: ./.github/workflows/build-macos.yml - with: - xcode-version: '26.4' - runs-on: macos-26 - - iOS_Xcode26: - uses: ./.github/workflows/build-ios.yml - with: - deployment-target: '26.0' - xcode-version: '26.4' - runs-on: macos-26 - - # ── Win32───────────────────────────────────────────────────── - Win32_x64_D3D11: - uses: ./.github/workflows/build-win32.yml - with: - platform: x64 - - Win32_x64_JSI_D3D11: - uses: ./.github/workflows/build-win32.yml - with: - platform: x64 - napi-type: jsi - - Win32_x64_V8_D3D11: - uses: ./.github/workflows/build-win32.yml - with: - platform: x64 - napi-type: V8 - - Win32_x64_D3D11_Sanitizers: - uses: ./.github/workflows/build-win32.yml - with: - platform: x64 - enable-sanitizers: true - - Win32_x64_D3D12: - uses: ./.github/workflows/build-win32.yml - with: - platform: x64 - graphics-api: D3D12 - - Win32_x64_D3D11_PrecompiledShaderTest: - uses: ./.github/workflows/build-win32-shader.yml - - # ── UWP ─────────────────────────────────────────────────────── - UWP_x64: - uses: ./.github/workflows/build-uwp.yml - with: - platform: x64 - - UWP_arm64: - uses: ./.github/workflows/build-uwp.yml - with: - platform: arm64 - - UWP_arm64_JSI: - uses: ./.github/workflows/build-uwp.yml - with: - platform: arm64 - napi-type: jsi - - # ── Ubuntu / Linux ──────────────────────────────────────────── - Ubuntu_Clang_JSC: - uses: ./.github/workflows/build-linux.yml - with: - cc: clang - cxx: clang++ - js-engine: JavaScriptCore - Ubuntu_GCC_JSC: uses: ./.github/workflows/build-linux.yml with: cc: gcc cxx: g++ js-engine: JavaScriptCore - - # ── Android ─────────────────────────────────────────────────── - Android_Ubuntu_JSC: - uses: ./.github/workflows/build-android.yml - with: - runs-on: ubuntu-latest - js-engine: JavaScriptCore - - Android_Ubuntu_V8: - uses: ./.github/workflows/build-android.yml - with: - runs-on: ubuntu-latest - js-engine: V8 - - Android_MacOS_JSC: - uses: ./.github/workflows/build-android.yml - with: - runs-on: macos-latest - js-engine: JavaScriptCore - - Android_MacOS_V8: - uses: ./.github/workflows/build-android.yml - with: - runs-on: macos-latest - js-engine: V8 - - # ── Installation Tests ──────────────────────────────────────── - iOS_Installation: - uses: ./.github/workflows/test-install-ios.yml - with: - deployment-target: '17.2' - - Linux_Installation: - uses: ./.github/workflows/test-install-linux.yml - - MacOS_Installation: - uses: ./.github/workflows/test-install-macos.yml - - Win32_Installation: - uses: ./.github/workflows/test-install-win32.yml diff --git a/Apps/Playground/Scripts/config.json b/Apps/Playground/Scripts/config.json index f3328016f..1a44b9c4b 100644 --- a/Apps/Playground/Scripts/config.json +++ b/Apps/Playground/Scripts/config.json @@ -1,581 +1,125 @@ { - "root": "https://cdn.babylonjs.com", - "tests": [ - { - "title": "Gaussian Splatting Compressed ply SH", - "playgroundId": "#U8O4EP#1", - "renderCount": 15, - "referenceImage": "gsplat-compressedply-sh.png" - }, - { - "title": "Gaussian Splatting Update Data", - "playgroundId": "#Q0LBM8#2", - "renderCount": 15, - "referenceImage": "gsplat-update-data.png" - }, - { - "title": "Native Canvas", - "playgroundId": "#TKVFSA#7", - "referenceImage": "native-canvas.png" - }, - { - "title": "EXR Loader", - "playgroundId": "#4RN0VF#151", - "referenceImage": "exr-loader.png" - }, - { - "title": "NME Shadow Map", - "playgroundId": "#M3QR7E#83", - "referenceImage": "nmeshadowmap.png" - }, - { - "title": "Procedural texture with NME", - "renderCount": 2, - "playgroundId": "#8S19ZC#3", - "referenceImage": "procedural-nme.png" - }, - { - "title": "GLTF Extension EXT_mesh_gpu_instancing", - "playgroundId": "#QFIGLW#9", - "renderCount": 10, - "errorRatio": 25, - "referenceImage": "gltfExtensionExtMeshGpuInstancingTest.png" - }, - { - "title": "GLTF ext MSFT_LOD", - "playgroundId": "#2YZFA0#422", - "referenceImage": "gltfMSFTLOD.png" - }, - { - "title": "GLTF Texture Linear Interpolation Test", - "playgroundId": "#WGZLGJ#3009", - "referenceImage": "gltfTextureLinearInterpolation.png", - "renderCount": 10 - }, - { - "title": "GLTF Extension KHR_materials_volume with attenuation", - "playgroundId": "#YG3BBF#18", - "referenceImage": "gltfExtensionKhrMaterialsVolumeAttenuation.png", - "excludedGraphicsApis": [ "Metal" ], - "errorRatio": 10, - "renderCount": 10, - "comments": { - "Metal": "No object rendered" - } - }, - { - "title": "GLTF ClearCoat", - "playgroundId": "#YG3BBF#33", - "referenceImage": "glTFClearCoat.png" - }, - { - "title": "Iridescence GLTF", - "playgroundId": "#2FDQT5#1508", - "referenceImage": "iridescence_gltf.png" - }, - { - "title": "EXT_texture_webp", - "playgroundId": "#LSAUH2#6", - "referenceImage": "webp.png" - }, - { - "title": "GLTF Animation Skin Type", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Animation_SkinType, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfAnimationSkinType.png" - }, - { - "reason": "https://github.com/BabylonJS/BabylonNative/issues/1111", - "title": "Thin Instances", - "errorRatio": 25, - "playgroundId": "#V1JE4Z#1", - "referenceImage": "thinInstances.png" - }, - { - "title": "GLTF Sheen", - "playgroundId": "#YG3BBF#2", - "referenceImage": "glTFSheen.png" - }, - { - "title": "GLTF Serializer multimaterial with raw texture", - "playgroundId": "#KU72PX", - "referenceImage": "glTFSerializerMultimaterial.png" - }, - { - "title": "GLTF Extension KHR_materials_specular", - "playgroundId": "#RNT7K4#9", - "referenceImage": "gltfExtensionKhrMaterialsSpecular.png" - }, - { - "title": "GLTF Extension KHR_texture_transform", - "playgroundId": "#RNT7K4#2", - "referenceImage": "gltfExtensionKhrTextureTransform.png" - }, - { - "title": "GLTF Extension KHR_materials_variants", - "playgroundId": "#BKGTKL#3", - "referenceImage": "gltfExtensionKhrMaterialsVariants.png" - }, - { - "title": "Visibility", - "playgroundId": "#PXC9CF#6", - "referenceImage": "visibility.png" - }, - { - "title": "Edges", - "playgroundId": "#TYAHX#244", - "referenceImage": "edges.png" - }, - { - "title": "Outline", - "playgroundId": "#10WJ5S#14", - "referenceImage": "outline.png" - }, - { - "title": "Glow layer and LODs", - "playgroundId": "#UNS6ZV#2", - "renderCount": 50, - "excludedGraphicsApis": [ "Metal" ], - "referenceImage": "glowlayerandlods.png", - "comments": { - "Metal": "Result doesn't match reference" - } - }, - { - "title": "Nested BBG", - "playgroundId": "#ZG0C8B#6", - "renderCount": 10, - "referenceImage": "nested_BBG.png" - }, - { - "title": "Dynamic Texture context clip", - "playgroundId": "#FU0ES5#47", - "referenceImage": "dynamicTextureClip.png" - }, - { - "title": "GUI3D SpherePanel", - "playgroundId": "#HB4C01#9", - "renderCount": 50, - "referenceImage": "spherepanel.png" - }, - { - "title": "Kernel Blur", - "playgroundId": "#Y0WKT0#0", - "referenceImage": "KernelBlur.png" - }, - { - "title": "GLTF Mesh Primitive Attribute", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Mesh_PrimitiveAttribute, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMeshPrimitiveAttribute.png" - }, - { - "title": "GLTF Mesh Primitive Vertex Color", - "renderCount": 5, - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Mesh_PrimitiveVertexColor, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMeshPrimitiveVertexColor.png" - }, - { - "title": "GLTF Alpha Blend", - "playgroundId": "#SYQW69#579", - "referenceImage": "glTFAlphaBlend.png", - "renderCount": 1 - }, - { - "title": "GLTF Node Attribute (1)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Node_Attribute, __page__, 1, __disableSRGBBuffers__, 0", - "referenceImage": "gltfNodeAttribute1.png" - }, - { - "title": "Soft Shadows", - "playgroundId": "#0YYQ3N#0", - "errorRatio": 50, - "excludedGraphicsApis": [ "Metal" ], - "referenceImage": "softShadows.png", - "comments": { - "Metal": "Nothing rendered" - } - }, - { - "title": "Soft Shadows (Right Handed)", - "playgroundId": "#0YYQ3N#2", - "errorRatio": 50, - "excludedGraphicsApis": [ "Metal" ], - "referenceImage": "softShadowsRightHanded.png", - "comments": { - "Metal": "Nothing rendered" - } - }, - { - "title": "RenderingGroupId", - "playgroundId": "#1J6IGD#0", - "referenceImage": "RenderingGroupId.png" - }, - { - "title": "Light Projection Texture", - "playgroundId": "#CQNGRK#0", - "renderCount": 2, - "referenceImage": "LightProjectionTexture.png" - }, - { - "title": "Point light shadows", - "playgroundId": "#U2F7P9#4", - "excludedGraphicsApis": [ "Metal" ], - "referenceImage": "point-light-shadows.png", - "comments": { - "Metal": "Rendered result doesn't match reference" - } - }, - { - "title": "Texture cache", - "playgroundId": "#3TFH5I#0", - "referenceImage": "texture cache.png" - }, - { - "title": "Sharpen", - "playgroundId": "#NAW8EA#1", - "renderCount": 20, - "referenceImage": "sharpen.png" - }, - { - "title": "GLTF BoomBox with Unlit Material", - "playgroundId": "#GYM97C#2", - "referenceImage": "gltfUnlit.png" - }, - { - "title": "Ribbon morphing", - "playgroundId": "#ACKC2#1", - "renderCount": 50, - "referenceImage": "ribbon morphing.png" - }, - { - "title": "Solid particle system", - "playgroundId": "#WCDZS#92", - "renderCount": 150, - "referenceImage": "sps.png", - "errorRatio": 60.0 - }, - { - "title": "LightFalloff", - "playgroundId": "#20OAV9#11218", - "referenceImage": "lightFalloff.png" - }, - { - "title": "Chromatic aberration", - "playgroundId": "#NAW8EA#0", - "renderCount": 20, - "referenceImage": "chromaticAberration.png" - }, - { - "title": "Normals", - "playgroundId": "#WXKLLJ#2", - "referenceImage": "normals.png" - }, - { - "title": "LOD", - "renderCount": 10, - "playgroundId": "#FFMFW5#0", - "referenceImage": "lod.png", - "errorRatio": 9.0 - }, - { - "title": "Capsule", - "renderCount": 10, - "playgroundId": "#JAFIIU#4", - "referenceImage": "CreateCapsule.png" - }, - { - "title": "Fresnel", - "playgroundId": "#603JUZ#1", - "errorRatio": 50, - "referenceImage": "fresnel.png" - }, - { - "title": "Unindexed mesh", - "playgroundId": "#4IHSY2#0", - "referenceImage": "unindexedmesh.png" - }, - { - "title": "Black and White post-process", - "playgroundId": "#N55Q2M#0", - "renderCount": 20, - "referenceImage": "bwpp.png" - }, - { - "title": "Multi camera rendering", - "playgroundId": "#1LK70I#22", - "errorRatio": 50, - "referenceImage": "multiCameraRendering.png" - }, - { - "title": "Multi cameras and output render target", - "renderCount": 2, - "playgroundId": "#BCYE7J#31", - "excludedGraphicsApis": [ "Metal" ], - "referenceImage": "multiCamerasOutputRenderTarget.png", - "comments": { - "Metal": "Result does not match reference" - } - }, - { - "title": "Multi camera rendering with scissors", - "playgroundId": "#1LK70I#35", - "errorRatio": 50, - "referenceImage": "multiCameraRenderingWithScissors.png" - }, - { - "title": "Scissor test", - "playgroundId": "#W7E7CF#34", - "referenceImage": "scissor-test.png" - }, - { - "title": "Scissor test with 0.9 hardware scaling", - "playgroundId": "#W7E7CF#34", - "replace": "//options//, hardwareScalingLevel = 0.9;", - "referenceImage": "scissor-test-2.png", - "errorRatio": 50 - }, - { - "title": "Scissor test with 1.5 hardware scaling", - "playgroundId": "#W7E7CF#34", - "replace": "//options//, hardwareScalingLevel = 1.5;", - "referenceImage": "scissor-test-3.png" - }, - { - "title": "Scissor test with negative x and y", - "playgroundId": "#3L5BCD#2", - "referenceImage": "scissorTestNegativeXandY.png" - }, - { - "title": "Scissor test with out of bounds width and height", - "playgroundId": "#3L5BCD#3", - "referenceImage": "scissorTestOobWidthAndHeight.png" - }, - { - "title": "setParent", - "playgroundId": "#JD49CT#2", - "referenceImage": "setParent.png" - }, - { - "title": "Billboard", - "playgroundId": "#UJEIL#13", - "renderCount": 20, - "referenceImage": "Billboard.png" - }, - { - "title": "Up Vector", - "playgroundId": "#2FNBTG#27", - "referenceImage": "upVector.png" - }, - { - "title": "GLTF Normals", - "playgroundId": "#SMEAEB#0", - "referenceImage": "gltfnormals.png" - }, - { - "title": "GLTF Animation Node", - "renderCount": 2, - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Animation_Node, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfAnimationNode.png" - }, - { - "title": "GLTF Animation Node Misc", - "renderCount": 2, - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Animation_NodeMisc, __page__, 0, __disableSRGBBuffers__, 1", - "referenceImage": "gltfAnimationNodeMisc.png" - }, - { - "title": "GLTF Animation Skin (0)", - "renderCount": 2, - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Animation_Skin, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfAnimationSkin0.png" - }, - { - "title": "GLTF Animation Skin (1)", - "renderCount": 2, - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Animation_Skin, __page__, 1, __disableSRGBBuffers__, 0", - "referenceImage": "gltfAnimationSkin1.png" - }, - { - "title": "GLTF Buffer Interleaved", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Buffer_Interleaved, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfBufferInterleaved.png" - }, - { - "title": "GLTF Material", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Material, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMaterial.png" - }, - { - "title": "GLTF Material Alpha Blend", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Material_AlphaBlend, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMaterialAlphaBlend.png", - "errorRatio": 8.0 - }, - { - "title": "GLTF Material Alpha Mask", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Material_AlphaMask, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMaterialAlphaMask.png" - }, - { - "title": "GLTF Material Double Sided (Front)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Material_DoubleSided, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMaterialDoubleSidedFront.png" - }, - { - "title": "GLTF Material Double Sided (Back)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Material_DoubleSided, __page__, 0, alpha = Math.PI / 2, alpha = -Math.PI / 2, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMaterialDoubleSidedBack.png" - }, - { - "title": "GLTF Material Metallic Roughness (0)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Material_MetallicRoughness, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMaterialMetallicRoughness0.png", - "errorRatio": 5.0 - }, - { - "title": "GLTF Material Metallic Roughness (1)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Material_MetallicRoughness, __page__, 1, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMaterialMetallicRoughness1.png" - }, - { - "title": "GLTF Material Mixed", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Material_Mixed, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMaterialMixed.png" - }, - { - "title": "GLTF Material Specular Glossiness (0)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Material_SpecularGlossiness, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMaterialSpecularGlossiness0.png", - "errorRatio": 5.0 - }, - { - "title": "GLTF Material Specular Glossiness (1)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Material_SpecularGlossiness, __page__, 1, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMaterialSpecularGlossiness1.png", - "errorRatio": 5.0 - }, - { - "title": "GLTF Mesh Primitive Mode (0)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Mesh_PrimitiveMode, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMeshPrimitiveMode0.png", - "errorRatio": 8.0 - }, - { - "title": "GLTF Mesh Primitive Mode (1)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Mesh_PrimitiveMode, __page__, 1, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMeshPrimitiveMode1.png", - "errorRatio": 8.0 - }, - { - "title": "GLTF Mesh Primitives", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Mesh_Primitives, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMeshPrimitives.png" - }, - { - "title": "GLTF Mesh Primitives UV (0)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Mesh_PrimitivesUV, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMeshPrimitivesUV0.png", - "errorRatio": 5.0 - }, - { - "title": "GLTF Mesh Primitives UV (1)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Mesh_PrimitivesUV, __page__, 1, __disableSRGBBuffers__, 0", - "referenceImage": "gltfMeshPrimitivesUV1.png" - }, - { - "title": "GLTF Node Attribute (0)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Node_Attribute, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfNodeAttribute0.png" - }, - { - "title": "GLTF Node NegativeScale (0)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Node_NegativeScale, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfNodeNegativeScale0.png", - "errorRatio": 5.0 - }, - { - "title": "GLTF Node NegativeScale (1)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Node_NegativeScale, __page__, 1, __disableSRGBBuffers__, 0", - "referenceImage": "gltfNodeNegativeScale1.png" - }, - { - "title": "GLTF Texture Sampler (0)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Texture_Sampler, __page__, 0, __disableSRGBBuffers__, 0", - "referenceImage": "gltfTextureSampler0.png", - "errorRatio": 8.0 - }, - { - "title": "GLTF Texture Sampler (1)", - "playgroundId": "#DS8AA7#27", - "replace": "__folder__, Texture_Sampler, __page__, 1, __disableSRGBBuffers__, 0", - "referenceImage": "gltfTextureSampler1.png" - }, - { - "title": "GLTF Alien", - "playgroundId": "#XN37SR#5", - "referenceImage": "gltfAlien.png" - }, - { - "title": "Interleaved buffers test", - "playgroundId": "#AVFNTW#5", - "referenceImage": "interleaved-buffers-1.png" - }, - { - "title": "Interleaved buffers test (integerPositionsAndNormals = true)", - "playgroundId": "#AVFNTW#5", - "replace": "//options//, integerPositionsAndNormals = true;", - "referenceImage": "interleaved-buffers-2.png" - }, - { - "title": "Interleaved buffers test (updateUVs = true)", - "playgroundId": "#AVFNTW#5", - "replace": "//options//, updateUVs = true;", - "referenceImage": "interleaved-buffers-3.png" - }, - { - "title": "Interleaved buffers test (updateUVs = true, updateAfterRender = true)", - "playgroundId": "#AVFNTW#5", - "replace": "//options//, updateUVs = true; updateAfterRender = true;", - "referenceImage": "interleaved-buffers-4.png", - "renderCount": 2 - }, - { - "title": "CesiumMan from Khronos Sample Assets", - "playgroundId": "#4GWX8M", - "errorRatio": 2, - "referenceImage": "CesiumMan.png" - }, - { - "title": "Two vertex buffers pointing to one buffer", - "playgroundId": "#RZNHXT#7", - "referenceImage": "two-vertex-buffers.png" - } - ] + "root": "https://cdn.babylonjs.com", + "tests": [ + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #1", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #2", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #3", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #4", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #5", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #6", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #7", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #8", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #9", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #10", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #11", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #12", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #13", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #14", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #15", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #16", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #17", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #18", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #19", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + }, + { + "playgroundId": "#CQNGRK#0", + "title": "Light Projection Texture #20", + "renderCount": 2, + "referenceImage": "LightProjectionTexture.png" + } + ] } diff --git a/Apps/Playground/Scripts/validation_native.js b/Apps/Playground/Scripts/validation_native.js index a4070e51c..5741ce68d 100644 --- a/Apps/Playground/Scripts/validation_native.js +++ b/Apps/Playground/Scripts/validation_native.js @@ -7,6 +7,33 @@ const testHeight = 400; const generateReferences = false; + // -- TEMPORARY VALIDATION PATCH for BabylonJS PR #18355 -- + // Mirrors the fix in packages/dev/core/src/Meshes/Builders/groundBuilder.ts + // by registering pending scene data around the async heightmap load so that + // scene.isReady() correctly waits for it. Remove this block before merging; + // once the BJS fix ships in a published version and BN bumps to it, the + // patch becomes redundant. + (function patchCreateGroundFromHeightMap() { + const original = BABYLON.Mesh.CreateGroundFromHeightMap; + BABYLON.Mesh.CreateGroundFromHeightMap = function (name, url) { + const ground = original.apply(this, arguments); + if (typeof url !== "string") { + return ground; + } + const scene = ground.getScene(); + scene.addPendingData(ground); + const originalSetReady = ground._setReady.bind(ground); + ground._setReady = function (ready) { + originalSetReady(ready); + if (ready) { + scene.removePendingData(ground); + ground._setReady = originalSetReady; + } + }; + return ground; + }; + })(); + const engine = new BABYLON.NativeEngine(); engine.getCaps().parallelShaderCompile = undefined; diff --git a/Apps/PrecompiledShaderTest/JavaScript/package-lock.json b/Apps/PrecompiledShaderTest/JavaScript/package-lock.json index 5b501ab85..9cf8b246f 100644 --- a/Apps/PrecompiledShaderTest/JavaScript/package-lock.json +++ b/Apps/PrecompiledShaderTest/JavaScript/package-lock.json @@ -12,7 +12,7 @@ "@babel/cli": "^7.28.3", "@babel/core": "^7.28.3", "@babel/preset-env": "^7.28.3", - "@babylonjs/core": "^9.0.0", + "@babylonjs/core": "^9.3.3", "@types/node": "^24.7.1", "rimraf": "^6.0.1", "terser-webpack-plugin": "^5.3.10", @@ -1571,9 +1571,9 @@ } }, "node_modules/@babylonjs/core": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.0.0.tgz", - "integrity": "sha512-Y4xbHFUw28X4EC5C7NOSzPCOaenxZQgztCB1QZ64y0C85FjZaq5DfWd6gy+EUYklbigmcMIFzCpLj78Wc8EwVw==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.3.3.tgz", + "integrity": "sha512-7/H736aO2NRi9/ocOWKUpzwt0rrL9fWmDIeLvM0F9g2cGURLLO26ZwqzoJmA19UvBAgrud8XgVZdZ6TaFl0OFQ==", "dev": true, "license": "Apache-2.0" }, diff --git a/Apps/PrecompiledShaderTest/JavaScript/package.json b/Apps/PrecompiledShaderTest/JavaScript/package.json index 3e3bcf8fa..3d93dddad 100644 --- a/Apps/PrecompiledShaderTest/JavaScript/package.json +++ b/Apps/PrecompiledShaderTest/JavaScript/package.json @@ -11,18 +11,17 @@ "prepare:shaders": "tsx ./tools/prepareShaders.ts" }, "license": "MIT", - "dependencies": {}, "devDependencies": { "@babel/cli": "^7.28.3", "@babel/core": "^7.28.3", "@babel/preset-env": "^7.28.3", - "@babylonjs/core": "^9.0.0", + "@babylonjs/core": "^9.3.3", "@types/node": "^24.7.1", "rimraf": "^6.0.1", + "terser-webpack-plugin": "^5.3.10", "ts-loader": "^9.5.4", "tsx": "^4.20.6", "typescript": "^5.5.4", - "terser-webpack-plugin": "^5.3.10", "webpack": "^5.101.3", "webpack-cli": "^6.0.1" }, diff --git a/Apps/UnitTests/JavaScript/package.json b/Apps/UnitTests/JavaScript/package.json index 94bc7298e..997e2c28e 100644 --- a/Apps/UnitTests/JavaScript/package.json +++ b/Apps/UnitTests/JavaScript/package.json @@ -7,8 +7,8 @@ "watch": "webpack -watch" }, "dependencies": { - "babylonjs": "^9.0.0", - "babylonjs-materials": "^9.0.0", + "babylonjs": "^9.3.3", + "babylonjs-materials": "^9.3.3", "chai": "^5.2.0", "jsc-android": "^241213.1.0", "mocha": "^11.1.0", @@ -27,8 +27,8 @@ "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.27.1", "@babel/runtime": "^7.28.2", - "@babylonjs/core": "^9.0.0", - "@babylonjs/materials": "^9.0.0", + "@babylonjs/core": "^9.3.3", + "@babylonjs/materials": "^9.3.3", "babel-loader": "^10.0.0", "buffer": "^6.0.3", "core-js": "^3.45.0", diff --git a/Apps/package-lock.json b/Apps/package-lock.json index 1b579bc90..52937475a 100644 --- a/Apps/package-lock.json +++ b/Apps/package-lock.json @@ -11,12 +11,12 @@ "UnitTests/JavaScript" ], "dependencies": { - "babylonjs": "^9.0.0", - "babylonjs-gltf2interface": "^9.0.0", - "babylonjs-gui": "^9.0.0", - "babylonjs-loaders": "^9.0.0", - "babylonjs-materials": "^9.0.0", - "babylonjs-serializers": "^9.0.0", + "babylonjs": "^9.3.3", + "babylonjs-gltf2interface": "^9.3.3", + "babylonjs-gui": "^9.3.3", + "babylonjs-loaders": "^9.3.3", + "babylonjs-materials": "^9.3.3", + "babylonjs-serializers": "^9.3.3", "jsc-android": "^241213.1.0", "v8-android": "^7.8.2" } @@ -1921,6 +1921,23 @@ "node": ">=6.9.0" } }, + "node_modules/@babylonjs/core": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.3.3.tgz", + "integrity": "sha512-7/H736aO2NRi9/ocOWKUpzwt0rrL9fWmDIeLvM0F9g2cGURLLO26ZwqzoJmA19UvBAgrud8XgVZdZ6TaFl0OFQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@babylonjs/materials": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.3.3.tgz", + "integrity": "sha512-QyW0Sgn0E0jBsbcgXmGtpeWUNLTvQRAE8Ax+bzqjOZ6rgaAN/X8EWdMywqJrVxc/YglixaQC2IZo9ShzIa+tgA==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "@babylonjs/core": "^9.0.0" + } + }, "node_modules/@discoveryjs/json-ext": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", @@ -2578,54 +2595,54 @@ } }, "node_modules/babylonjs": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/babylonjs/-/babylonjs-9.0.0.tgz", - "integrity": "sha512-NlHOf9R6GwHMoYZ+9uT0VxzhFwjoMqc9HT0o/TpEAymZZKZOa15IS2be8QTBpgHCOq0T3t3gwWq9ecpw3IQlIw==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/babylonjs/-/babylonjs-9.3.3.tgz", + "integrity": "sha512-DubXimIGJtle2wC5H0U+usqHPPeyIh7N6fVBPl4k9evdJ95jVisbIaE+jfocYOnno6zBtBH5Qd2LOKRA17F/6Q==", "hasInstallScript": true, "license": "Apache-2.0" }, "node_modules/babylonjs-gltf2interface": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.0.0.tgz", - "integrity": "sha512-k2B6B39stVxJcATNqPGJp19732pQouZPGiMsa1uke3812ZPd2M3h2Xm+QHpRo9n8wPMFC2tPUVu+dSka0skR1w==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-9.3.3.tgz", + "integrity": "sha512-v4x7AX7ugx6auVitzHzYnQTsznlsDzIefXBSZLC9t4LjH0jgghzm+nUSG2lQGokwt591NUh6Rvlmv/RFFI1bpA==", "license": "Apache-2.0" }, "node_modules/babylonjs-gui": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/babylonjs-gui/-/babylonjs-gui-9.0.0.tgz", - "integrity": "sha512-kBZUHZpJmB/pgs95RXVMGQJjHYC1hEPyE/9emjjGvQAGHARCUTsyJdN4lVY+VoeazM/3oy3vXMZCysAwg0eDew==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/babylonjs-gui/-/babylonjs-gui-9.3.3.tgz", + "integrity": "sha512-h+Kg5NzcBugHZcA8UAY2VpXNqZfq6dukSXUxCiglmjjLMyDfpr1jraCnwY+OYGGb7/upRJVxkQga6B13E6q3Ww==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "9.0.0" + "babylonjs": "9.3.3" } }, "node_modules/babylonjs-loaders": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/babylonjs-loaders/-/babylonjs-loaders-9.0.0.tgz", - "integrity": "sha512-hrbXvHi8gvdOcqdMk9Zyx9A7WQ7SJ+Svt4s1IP5bUVLabWIrqo8oBHWpV4Ybw5spK48SE8EjvRPe4xwK0IbNEA==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/babylonjs-loaders/-/babylonjs-loaders-9.3.3.tgz", + "integrity": "sha512-lJbhaUIsBMKUpVB8EBHhQe61NbMa1yTBOMsZCAiB1gLMwITBslw1iBvME9d5ufxHdk/w0FvFUU0AmKwSbOl2PA==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "9.0.0", - "babylonjs-gltf2interface": "9.0.0" + "babylonjs": "9.3.3", + "babylonjs-gltf2interface": "9.3.3" } }, "node_modules/babylonjs-materials": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/babylonjs-materials/-/babylonjs-materials-9.0.0.tgz", - "integrity": "sha512-4Ua2xfM3Oe7xE5CnZiEyyRWdwBajPOgV5dNlJkLBn5MZUCUU8mptHClYGTnIhDnCIMZg1FWNpqgC3StD3k7XQQ==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/babylonjs-materials/-/babylonjs-materials-9.3.3.tgz", + "integrity": "sha512-XCDI4lj0+sW2DFF2/pB2YHmA6+rSBH2I2/gUrP4aNrahuKruqRgJn7QLOfr0ibsm+cGkqR9ycCcf2VHYcaFdJA==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "9.0.0" + "babylonjs": "9.3.3" } }, "node_modules/babylonjs-serializers": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/babylonjs-serializers/-/babylonjs-serializers-9.0.0.tgz", - "integrity": "sha512-YoDDmVLwtapsbeg+UZ3SCF/vv/qMioNJhNbIKrR4WzwD7IDYNsbBKHDcUEvnmj1B8K4Z2LgUVUv2yawjsrCNqQ==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/babylonjs-serializers/-/babylonjs-serializers-9.3.3.tgz", + "integrity": "sha512-qbCggcOSoSMx4/aTPpWn0X8tEX26mPK773aGDeAvR2BbmhgRGQk/dyeVgM5EVHlrqlGawTspLwXwty0Tm2MtlQ==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "9.0.0", - "babylonjs-gltf2interface": "9.0.0" + "babylonjs": "9.3.3", + "babylonjs-gltf2interface": "9.3.3" } }, "node_modules/balanced-match": { @@ -5594,8 +5611,8 @@ "name": "UnitTests", "version": "0.0.1", "dependencies": { - "babylonjs": "^9.0.0", - "babylonjs-materials": "^9.0.0", + "babylonjs": "^9.3.3", + "babylonjs-materials": "^9.3.3", "chai": "^5.2.0", "jsc-android": "^241213.1.0", "mocha": "^11.1.0", @@ -5614,8 +5631,8 @@ "@babel/preset-react": "^7.27.1", "@babel/preset-typescript": "^7.27.1", "@babel/runtime": "^7.28.2", - "@babylonjs/core": "^9.0.0", - "@babylonjs/materials": "^9.0.0", + "@babylonjs/core": "^9.3.3", + "@babylonjs/materials": "^9.3.3", "babel-loader": "^10.0.0", "buffer": "^6.0.3", "core-js": "^3.45.0", @@ -5626,23 +5643,6 @@ "webpack": "^5.101.0", "webpack-cli": "^6.0.1" } - }, - "UnitTests/JavaScript/node_modules/@babylonjs/core": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-9.0.0.tgz", - "integrity": "sha512-Y4xbHFUw28X4EC5C7NOSzPCOaenxZQgztCB1QZ64y0C85FjZaq5DfWd6gy+EUYklbigmcMIFzCpLj78Wc8EwVw==", - "dev": true, - "license": "Apache-2.0" - }, - "UnitTests/JavaScript/node_modules/@babylonjs/materials": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@babylonjs/materials/-/materials-9.0.0.tgz", - "integrity": "sha512-wATGzT/IQZ9/h9VhjgrZt8W59ZWXZ/mEZdCP2zHdopz3fqKP3gpJlbGt8UpAQUQF6XFKJrGuzVe7Vesrg36vyw==", - "dev": true, - "license": "Apache-2.0", - "peerDependencies": { - "@babylonjs/core": "^9.0.0" - } } } } diff --git a/Apps/package.json b/Apps/package.json index a7f233741..b8609e7d0 100644 --- a/Apps/package.json +++ b/Apps/package.json @@ -9,12 +9,12 @@ "getNightly": "node scripts/getNightly.js" }, "dependencies": { - "babylonjs": "^9.0.0", - "babylonjs-gltf2interface": "^9.0.0", - "babylonjs-gui": "^9.0.0", - "babylonjs-loaders": "^9.0.0", - "babylonjs-materials": "^9.0.0", - "babylonjs-serializers": "^9.0.0", + "babylonjs": "^9.3.3", + "babylonjs-gltf2interface": "^9.3.3", + "babylonjs-gui": "^9.3.3", + "babylonjs-loaders": "^9.3.3", + "babylonjs-materials": "^9.3.3", + "babylonjs-serializers": "^9.3.3", "jsc-android": "^241213.1.0", "v8-android": "^7.8.2" }