Skip to content

intel/compiler: Fix illegal mutation in get_nir_image_intrinsic_image

Kenneth Graunke requested to merge kwg/mesa:brw-image-def-fix into master

get_nir_image_intrinsic_image() was incorrectly mutating the value held by the register which holds the intrinsic's first source (image index).

If this happened to be the register for an SSA def which is also used elsewhere in the program, this meant that we would clobber that value in subsequent uses.

Note that this only affects i965, because neither anv nor iris use the binding table start sections, so nothing is ever added here.

Fixes KHR-GL46.compute_shader.resources-max on i965 with Eric Anholt's MR !3240 (merged) applied. That MR reorders SSBOs and ABOs, so that test uses image 0 and SSBO 0, causing this code to brilliantly add binding table index 45 to both the image (correct) and the SSBO (bzzt, wrong!).

Fixes: 09f1de97 ("anv,i965: Lower away image derefs in the driver")

Merge request reports