Description
The Quick3D custom material tests hit a problem with the D3D11 backend: we simply map SPIR-V bindings to sampler slots. This works until the binding values are in range 0..D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT-1, but will result in failures once the binding is >= 16. Such a value does not mean that we hit the limit of 16 sampler slots, the total number is typically less, but the problem is that the binding values are not guaranteed to be in range 0..15, esp. since they share the same namespacefor uniform buffers etc.
So the D3D11 backend should rather do some sort of mapping, but this is not possible without having the HLSL shaders adjusted. Perhaps try something in shadertools with spvc_hlsl_resource_binding_init() and the native resource binding map we already use for Metal.
Attachments
Issue Links
- is required for
-
QTBUG-82245 Quick3D custom materials with RHI (excl. blits/multipass)
- Closed
For Gerrit Dashboard: QTBUG-82472 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
292049,2 | Update SPIRV-Cross | dev | qt/qtshadertools | Status: MERGED | +2 | 0 |
292096,7 | hlsl: Use unique register namespaces for resources | dev | qt/qtshadertools | Status: MERGED | +2 | 0 |
292097,7 | rhi: d3d: Use native resource binding mapping table when present | 5.15 | qt/qtbase | Status: MERGED | +2 | 0 |