Skip to content

Test case to reproduce Mesa issue 11617

Ian Romanick requested to merge idr/crucible:review/issue-11617 into main

After a texture is sampled, the read values are stored into registers using a LOAD_PAYLOAD pseudo-op. Starting with mesa!30447 (merged), values that are only used as half-float are sampled as half-float. When all of the components read from the texture are used, all is well.

However, components that are never read are not copied using the LOAD_PAYLOAD. Instead, UNDEF values are used. In the bug, the UNDEF values have type UD. The causes compiler validation to think too much data is written. This is not real because the values are not read, so dead code elimination will delete the writes.

In all of the CTS, piglit, and crucible, nothing reproduced the case. It was only discovered by a compute shader in Q2RTX.

mesa#11617 (closed)

Edited by Ian Romanick

Merge request reports