Checklist
Describe the issue
When running the GaussianSplat example, the application crashes with the following assertion:
[Open3D DEBUG] GaussianSplat Vulkan: created shared image 'gs.color' 768x744 GL=23
[Open3D DEBUG] GaussianSplat Vulkan: created shared image 'gs.scene_depth' 768x744 GL=24
PanicLog
in void __cdecl utils::panic(const char *,const char *,int,const char *) noexcept:34
in file D:\a\filament\filament\libs\utils\src\debug.cpp
reason: D:\a\filament\filament\filament\src\details/View.h:211:
failed assertion
'!renderTarget || !mMultiSampleAntiAliasingOptions.enabled || !renderTarget->hasSampleableDepth()'
After debugging, I believe this is caused by the order of operations in
GaussianSplatVulkanBackend::PrepareOutputTextures.
The current code is:
view.SetRenderTarget(targets.render_target);
auto* native = view.GetNativeView();
auto msaa = native->getMultiSampleAntiAliasingOptions();
msaa.enabled = false;
native->setMultiSampleAntiAliasingOptions(msaa);
view.SetPostProcessing(false);
The crash occurs because MSAA is still enabled when View::setRenderTarget() is called,
and Filament validates MSAA and render target compatibility inside setRenderTarget(),
which triggers the assertion when using a render target with a sampleable depth texture.
Steps to reproduce the bug
run GaussianSplat Example
Error message
[Open3D DEBUG] GaussianSplat Vulkan: created shared image 'gs.color' 768x744 GL=23
[Open3D DEBUG] GaussianSplat Vulkan: created shared image 'gs.scene_depth' 768x744 GL=24
PanicLog
in void __cdecl utils::panic(const char *,const char *,int,const char *) noexcept:34
in file D:\a\filament\filament\libs\utils\src\debug.cpp
reason: D:\a\filament\filament\filament\src\details/View.h:211: failed assertion '!renderTarget || !mMultiSampleAntiAliasingOptions.enabled || !renderTarget->hasSampleableDepth()'
Expected behavior
No response
Open3D, Python and System information
- Operating system: Windows 10 64-bit
- Open3D version:
- System architecture: x86
- Is this a remote workstation?: no
- How did you install Open3D?: build from source
- Compiler version (if built from source): MSVC 19.xx (Visual Studio 2022, v143 toolset)
Additional information
No response
Checklist
mainbranch).Describe the issue
When running the GaussianSplat example, the application crashes with the following assertion:
After debugging, I believe this is caused by the order of operations in
GaussianSplatVulkanBackend::PrepareOutputTextures.The current code is:
The crash occurs because MSAA is still enabled when View::setRenderTarget() is called,
and Filament validates MSAA and render target compatibility inside setRenderTarget(),
which triggers the assertion when using a render target with a sampleable depth texture.
Steps to reproduce the bug
Error message
[Open3D DEBUG] GaussianSplat Vulkan: created shared image 'gs.color' 768x744 GL=23
[Open3D DEBUG] GaussianSplat Vulkan: created shared image 'gs.scene_depth' 768x744 GL=24
PanicLog
in void __cdecl utils::panic(const char *,const char *,int,const char *) noexcept:34
in file D:\a\filament\filament\libs\utils\src\debug.cpp
reason: D:\a\filament\filament\filament\src\details/View.h:211: failed assertion '!renderTarget || !mMultiSampleAntiAliasingOptions.enabled || !renderTarget->hasSampleableDepth()'
Expected behavior
No response
Open3D, Python and System information
Additional information
No response