Skip to content

Address cube, validation, and Meshopt review follow-ups - #1910

Open
bkaradzic-microsoft wants to merge 2 commits into
BabylonJS:masterfrom
bkaradzic-microsoft:pr/review-followups
Open

bkaradzic-microsoft wants to merge 2 commits into
BabylonJS:masterfrom
bkaradzic-microsoft:pr/review-followups

Conversation

@bkaradzic-microsoft

@bkaradzic-microsoft bkaradzic-microsoft commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Follow-up for review comments on #1885, #1890, and #1897, rebased onto 3428526f after #1913 merged.

  • Reject multisampled cube targets and zero-initialize every cube face before its first clear.
  • Bound validation convergence by elapsed time; inspect output-target, rig-camera, and scheduled custom-target passes. Track automatically rendering utility layers and poll every associated scene.
  • Clarify that _native.decodeMeshopt is a compatibility export unused by stock Babylon.js.

Preserves the newer texture-layer validation, Draco isolation, and GUI readiness fixes from #1913. Windows V8/D3D11: all 371 enabled validation scenes pass, along with 12 cube/texture regressions and the scheduling self-check. No reference, tolerance, exclusion, or CI changes.

Copilot AI balanced review requested due to automatic review settings October 2, 2026 00:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Copilot review overview

Review effort: Lite
Findings: 2 High severity · 4 Medium severity

Open (6)
What changed in this PR

Follow-up changes addressing prior review feedback around cube render targets, native validation readiness/convergence logic, and Meshopt export documentation.

Changes:

  • Reject multisampled cube render targets and ensure cube render-target faces are zero-initialized.
  • Make native validation convergence time-based (60s) and broaden readiness checks across render passes / cameras / utility layers.
  • Clarify _native.decodeMeshopt as a compatibility export in code comments/docs.
File Description
Plugins/​NativeMeshopt/​Source/​NativeMeshopt.cpp Updates comments clarifying decodeMeshopt as a compatibility export.
Plugins/​NativeMeshopt/​README.md Updates documentation of the compatibility entry point behavior/usage.
Plugins/​NativeMeshopt/​Include/​Babylon/​Plugins/​NativeMeshopt.h Updates header comments to match current Babylon.js Meshopt behavior.
Plugins/​NativeEngine/​Source/​NativeEngine.cpp Adds explicit rejection of multisampled cube render targets during init and framebuffer creation.
Documentation/​AddingNewValidationTests.md Updates guidance to reflect new convergence and render-pass readiness behavior.
Core/​Graphics/​Source/​Texture.cpp Zero-fills cube RT memory on creation to match WebGL semantics.
Apps/​UnitTests/​Source/​Tests.NativeEngine.CubeRenderTargets.cpp Adds a unit test for multisample rejection + zero-fill behavior.
Apps/​Playground/​Scripts/​validation_native.js Reworks convergence logic and render-pass enumeration; adds scheduling self-check.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread Apps/UnitTests/Source/Tests.NativeEngine.CubeRenderTargets.cpp
Comment thread Plugins/NativeEngine/Source/NativeEngine.cpp
Comment thread Apps/Playground/Scripts/validation_native.js Outdated
Comment thread Apps/Playground/Scripts/validation_native.js
Comment thread Apps/Playground/Scripts/validation_native.js
Comment thread Apps/Playground/Scripts/validation_native.js Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread Apps/Playground/Scripts/validation_native.js
Comment thread Plugins/NativeEngine/Source/NativeEngine.cpp
Comment thread Plugins/NativeEngine/Source/NativeEngine.cpp
bkaradzic-microsoft and others added 2 commits October 6, 2026 22:04
Reject multisampled cube render targets instead of creating framebuffers that read back as zeros. Zero-fill cube render-target faces to match WebGL texImage2D(null), and read them before any clear.

Bound validation convergence by elapsed time, inspect every render pass the next frame can use, and enroll only utility layers that render automatically. Poll every associated scene before combining readiness.

Describe decodeMeshopt as a compatibility export that pinned Babylon.js 9.21.2 and current MeshoptCompression do not consume.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e6c3c123-c355-4790-a3d4-94337ed6e052
Fail the cube readback test if the promise is not fulfilled within 30 seconds. Reject a multisampled cube used as the depth attachment as well as a color attachment. Deduplicate render passes with a Set, and report scheduling self-check failures without aborting the validation suite.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e6c3c123-c355-4790-a3d4-94337ed6e052
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants