Skip to content

iris: Pin pixel hashing table BO from iris_batch submission instead of from iris_state.

iris: Pin pixel hashing table BO from iris_batch submission instead of from iris_state.

This fixes sporadic rendering corruption reported on MTL with ChromeOS in cases where multiple processes including Chrome were utilizing the GPU concurrently, and one of the processes happened to submit a BLORP-only batch buffer right after a switch from a different context.

In such a scenario we would fail to add the BO that holds the pixel hashing tables to the execbuf IOCTL for the BLORP batch, because it was being pinned from iris_restore_render_saved_bos() which isn't called for BLORP operations, potentially causing it to use garbage as pixel pipe hashing tables, which led to corruption of the BLORP rendering.

Technically this could have affected DG2 as well, but it has only been reported on MTL so far.

Cc: @sushmave

Merge request reports