nir: Add nir_var_mem_image
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4743>
This commit is contained in:

committed by
Marge Bot

parent
872750bb96
commit
de3705edb0
@@ -115,9 +115,11 @@ gather_intrinsic(struct access_state *state, nir_intrinsic_instr *instr)
|
||||
state->images_written |= write;
|
||||
}
|
||||
|
||||
if (var->data.mode == nir_var_uniform && read)
|
||||
if ((var->data.mode == nir_var_uniform ||
|
||||
var->data.mode == nir_var_mem_image) && read)
|
||||
_mesa_set_add(state->vars_read, var);
|
||||
if (var->data.mode == nir_var_uniform && write)
|
||||
if ((var->data.mode == nir_var_uniform ||
|
||||
var->data.mode == nir_var_mem_image) && write)
|
||||
_mesa_set_add(state->vars_written, var);
|
||||
break;
|
||||
|
||||
@@ -187,7 +189,8 @@ process_variable(struct access_state *state, nir_variable *var)
|
||||
{
|
||||
const struct glsl_type *type = glsl_without_array(var->type);
|
||||
if (var->data.mode != nir_var_mem_ssbo &&
|
||||
!(var->data.mode == nir_var_uniform && glsl_type_is_image(type)))
|
||||
!(var->data.mode == nir_var_uniform && glsl_type_is_image(type)) &&
|
||||
var->data.mode != nir_var_mem_image)
|
||||
return false;
|
||||
|
||||
/* Ignore variables we've already marked */
|
||||
@@ -343,7 +346,8 @@ nir_opt_access(nir_shader *shader, const nir_opt_access_options *options)
|
||||
|
||||
nir_foreach_variable_with_modes(var, shader, nir_var_uniform |
|
||||
nir_var_mem_ubo |
|
||||
nir_var_mem_ssbo)
|
||||
nir_var_mem_ssbo |
|
||||
nir_var_mem_image)
|
||||
var_progress |= process_variable(&state, var);
|
||||
|
||||
nir_foreach_function(func, shader) {
|
||||
|
Reference in New Issue
Block a user