nir/gather_info: flag fbfetch on subpass image loads

might not be able to determine which output is being read, but these
are definitely fbfetch uses (from lavapipe)

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16346>
This commit is contained in:
Mike Blumenkrantz
2022-05-05 09:54:18 -04:00
committed by Marge Bot
parent 359e60cf5e
commit 5c24eb721a

View File

@@ -525,6 +525,18 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader,
shader->info.writes_memory = true;
break;
}
case nir_intrinsic_image_deref_load: {
nir_deref_instr *deref = nir_src_as_deref(instr->src[0]);
nir_variable *var = nir_deref_instr_get_variable(deref);
enum glsl_sampler_dim dim = glsl_get_sampler_dim(glsl_without_array(var->type));
if (dim != GLSL_SAMPLER_DIM_SUBPASS &&
dim != GLSL_SAMPLER_DIM_SUBPASS_MS)
break;
var->data.fb_fetch_output = true;
shader->info.fs.uses_fbfetch_output = true;
break;
}
case nir_intrinsic_load_input:
case nir_intrinsic_load_per_vertex_input: