nir/gather: add support for fbfetch and bindless image loads.

If a driver calls gather after lowering the uses_fbfetch_output
needs to be set properly if we have bindless image loads.

Fixes a regression seen calling gather info later in some llvmpipe
work.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24987>
This commit is contained in:
Dave Airlie 2023-08-31 12:07:33 +10:00
parent 19a7d9615c
commit 07ef39ddc6

View file

@ -488,6 +488,15 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader,
break;
}
case nir_intrinsic_bindless_image_load: {
enum glsl_sampler_dim dim = nir_intrinsic_image_dim(instr);
if (dim != GLSL_SAMPLER_DIM_SUBPASS &&
dim != GLSL_SAMPLER_DIM_SUBPASS_MS)
break;
shader->info.fs.uses_fbfetch_output = true;
break;
}
case nir_intrinsic_load_input:
case nir_intrinsic_load_per_vertex_input:
case nir_intrinsic_load_input_vertex: