Closed cleak closed 5 years ago
Thanks for the report. I must say I am flabbergasted as to why RG16F would be commonly supported but not RGB16F (edit: alignment I suppose, 32 bit vs 48 bit).
@bejado @prideout It sounds like the TextureReshaper used for Metal would be a good solution here? We'd just have to use RGBA16F I think. If that format isn't widely supported either we'll have to use two DFG LUTs
Actually is this format truly not supported or is that our driver being paranoid @prideout?
According to gpuinfo.org, only 16% of all implementations support this, so yeah I need to use our reshaping stuff and update the getVkFormat function.
It's extremely convenient to use an RGB16F texture for the DFG LUT — especially as I keep working on a new sheen
parameter for the standard material model — but it opens a few questions:
@romainguy crazy idea, instead of using two RG16F samplers (b/c samplers are a limited resource), why not use a 3D texture? e.g. three R16F layers? or even two RG16F ones -- this way we don't pay the price when the 3d channel is not used (compared to RGBA16F). Now, granted, filament doesn't support 3D textures yet, but we really should and it wouldn't be too hard to add.
Another option would be to use a mip level -- it would have a lower resolution, but does it really matter?
Describe the bug DFG lookup tables use RGB16F which is widely unsupported. This is generally fine for OpenGL, but Vulkan will refuse to create such textures. When running
material_sandbox
with Vulkan, this will trigger an assertion failure like:To Reproduce Run material sandbox like:
Expected behavior
material_sandbox
should run.Desktop (please complete the following information):
Additional context It looks like this is a recent problem resulting from #853. Previously DFG used
RG16F
which has good support.