-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.8, 6.9, 6.10
-
None
QCPainter, that uses one QShaderResourceBindingSet but possibly with multiple pipelines in a frame, exhibits a problem with the D3D11 backend of QRhi (not with any other backend).
SPIR-V style bindings:
0 vertex ubuf 1
1 vertex fragment ubuf
4 vertex ubuf 2
Previous draw call gets the following bound for D3D, its shader does not use the buffer at binding 1:
b0 (from SPIR-V binding 0) vertex ubuf 2
b1 (from SPIR-V binding 4) vertex ubuf 1
The following problematic draw call:
b0 (from SPIR-V binding 0) vertex ubuf 2
b1 (from SPIR-V binding 1) vertex fragment ubuf
b2 (from SPIR-V binding 4) vertex ubuf 1
where b1 and b2 are effectively swapped. It should be the other way round. (b1 vertex ubuf 1, b2 vertex fragment ubuf)
This is due to two problems in the d3d11 backend. One is the (simulated) command buffer entries referencing an srb, instead of copying the relevant data from it.
For Gerrit Dashboard: QTBUG-140795 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
681275,8 | rhi: Fix using the same srb with different pipelines | dev | qt/qtbase | Status: NEW | +1 | +1 |