google / filament

Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
https://google.github.io/filament/
Apache License 2.0
17.44k stars 1.84k forks source link

vk: fix broken gltf renderings #7680

Closed poweifeng closed 4 months ago

poweifeng commented 4 months ago

This is due to color attachments being set to store=discard when they are multi-sampled. It's unclear why that condition exists. For now, removing it will fix the rendering issues with transparent object + MSAA. We'll keep it as such until an issue surfaces.

Fixes #7674

poweifeng commented 4 months ago

At least with Metal, for MSAA passes we use "memoryless" textures (which don't store their contents). These then get resolved to a "real" non-MSAA texture. Maybe Vulkan was doing the same?

Thanks for the useful background. I think that was the intention here, but wasn't implemented completly (as per ARM's example). I'll file an issue for tracking implementing it correctly.