Fix Gaussian splat Vulkan render target setup - #7525
Conversation
|
Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes. |
fa3a2e8 to
49e6b90
Compare
|
Hi @jeevan6996 thanks for taking a look at this! I cannot reproduce the bug from the original report. How did you reproduce it? MSAA is supposed to be disabled. |
|
Thanks for checking. I should clarify one validation gap: I did not personally reproduce the Windows/Vulkan crash locally; my host is macOS, where this backend path is not available. The reason I opened the PR is that #7495 includes a concrete Filament assertion, and the current code path appears consistent with it: If there is another setup path that should already disable MSAA before this point, then I may be missing that context. I’m happy to close or rework this based on your guidance. We could also ask the original reporter to confirm whether this patch resolves their Windows/Vulkan reproduction. |
49e6b90 to
b2ce323
Compare
|
I have rebased this PR onto the current I cannot reproduce the Windows/Vulkan crash locally because my host is macOS and does not expose this backend. The proposed change is based on the assertion and call-order evidence in #7495: I also checked the latest CI failures: the Linux/Windows build jobs completed compilation and tests, then failed in the artifact-attestation step due to the workflow missing If the original reporter can confirm the Windows/Vulkan reproduction, that would provide the platform-specific validation this host cannot provide. If another initialization path already disables MSAA before this function, I am happy to adjust or close the PR. |
Type
Motivation and Context
The Gaussian Splat Vulkan backend creates a render target with sampleable depth. Filament validates render-target compatibility when
setRenderTargetis called and rejects that target while view MSAA is enabled. The backend was disabling MSAA only after binding the target, so the validation failed first.Checklist:
python util/check_style.py --applyto apply Open3D code style to my code.Description
Move the existing MSAA disable operation before
SetRenderTargetin the Gaussian Splat Vulkan output setup. This satisfies Filament's sampleable-depth/MSAA invariant at the point where it is synchronously checked. Render-target creation, shared depth usage, and post-processing behavior are otherwise unchanged.Plan summary
GaussianSplatbuild, and rely on Linux/Windows CI for the platform-specific translation unit.Validation
PATH="$PWD/.venv/bin:$PATH" .venv/bin/python util/check_style.py --apply --no_parallel- passed for C++/CUDA, Python, and Jupyter files with the repository-pinned formatter versions.git diff --check- passed.BUILD_GUI=ON,BUILD_EXAMPLES=ON, andBUILD_UNIT_TESTS=ON- passed using Clang 22.1.8 and system OpenBLAS.cmake --build build-llvm --target GaussianSplat --parallel 8- compiled host shader tools and dependencies, then stopped during Metal AIR generation because the standalone Apple Command Line Tools installation does not providexcrun metal; full Xcode is required for this macOS target.No mock-only unit test is added. The ordering is inside the concrete GPU backend, existing visualization tests do not expose a hardware-independent seam, and introducing a production abstraction solely for this two-call ordering regression would expand the change beyond the reported fix. The changed Vulkan source is compiled by Linux/Windows CI.