diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2019-12-11 13:27:49 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2019-12-12 12:41:20 +0100 |
commit | 4639660dedceba7c16e1a8110bba16eff30be312 (patch) | |
tree | ae5515772e13656c10149293805e9b400dbd1835 /sync.profile | |
parent | be270ac82bbbe8b0ed93c060120df748aa8bf98a (diff) |
rhi: metal: Skip inactive resources
The Quick3D-on-RHI PoC demonstrates a case which the Metal backend
fails to handle correctly: have an object with a lighting-enabled
material, but remove all lights from the scene.
Under the hood this means having a uniform block in the shader, but
without referencing it in any way in the actual shader code.
This leads to the resource being present (as far as shader reflection
is concerned), but with no native binding point available, meaning the
attempt to retrieve the Metal binding point for it returns -1, and that
is what the QShader carries in the nativeResourceBindingMap.
The backend should be prepared to silently skip the resource, whereas
currently we end up in an assertion due to attempting to batch the (native)
binding "-1", which is invalid.
Correct this.
Change-Id: I85ee58145f589aca45d46c23e0cdce837d598850
Fixes: QTBUG-80668
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Diffstat (limited to 'sync.profile')
0 files changed, 0 insertions, 0 deletions