When the state is marked as dirty with markAllStateDirty, ANGLE resets the
applied shaders to NULL however it does not unbind them from the D3D11 pipeline.
Hence ANGLE is tricked into believing that no shader is bound to some stages
when actually they are.
This is a problem with geometry shaders (3D texture transfer, point sprite) and
transform feedback (with no PS associated).
For instance, dEQP functional.texture.specification.teximage3d_pbo.*_3d are
failing because:
PixelTransfer11::copyBufferToTexture copies using a GS
PixelTransfer11::copyBufferToTexture calls markAllStateDirty
then the next draw call — which should only use a VS/PS — fails with:
ID3D11DeviceContext::DrawIndexed: Vertex Shader - Geometry Shader linkage
error: Signatures between stages are incompatible. Semantic 'TEXCOORD' is
defined for mismatched hardware registers between the output stage and input
stage. [ EXECUTION ERROR #343: DEVICE_SHADER_LINKAGE_REGISTERINDEX]
Original issue reported on code.google.com by Gregory....@imgtec.com on 16 Jan 2015 at 4:57
Original issue reported on code.google.com by
Gregory....@imgtec.com
on 16 Jan 2015 at 4:57