diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c index 99d11871b9a..a57ca421e0a 100644 --- a/src/compiler/nir/nir.c +++ b/src/compiler/nir/nir.c @@ -115,6 +115,7 @@ nir_shader_add_variable(nir_shader *shader, nir_variable *var) case nir_var_mem_ssbo: case nir_var_mem_shared: case nir_var_system_value: + case nir_var_mem_push_const: case nir_var_mem_constant: break; @@ -122,10 +123,6 @@ nir_shader_add_variable(nir_shader *shader, nir_variable *var) assert(!"nir_shader_add_variable cannot be used for global memory"); return; - case nir_var_mem_push_const: - assert(!"nir_var_push_constant is not supposed to be used for variables"); - return; - default: assert(!"invalid mode"); return; diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c index fa1b7044160..c84c70ac9b7 100644 --- a/src/compiler/nir/nir_print.c +++ b/src/compiler/nir/nir_print.c @@ -465,6 +465,8 @@ get_variable_mode_str(nir_variable_mode mode, bool want_local_global_mode) return "shared"; case nir_var_mem_global: return "global"; + case nir_var_mem_push_const: + return "push_const"; case nir_var_mem_constant: return "constant"; case nir_var_shader_temp: diff --git a/src/compiler/nir/nir_validate.c b/src/compiler/nir/nir_validate.c index 90576b0a08f..0be74297858 100644 --- a/src/compiler/nir/nir_validate.c +++ b/src/compiler/nir/nir_validate.c @@ -457,7 +457,8 @@ validate_deref_instr(nir_deref_instr *instr, validate_state *state) if (instr->mode == nir_var_mem_ubo || instr->mode == nir_var_mem_ssbo || instr->mode == nir_var_mem_shared || - instr->mode == nir_var_mem_global) { + instr->mode == nir_var_mem_global || + instr->mode == nir_var_mem_push_const) { /* Shared variables and UBO/SSBOs have a bit more relaxed rules * because we need to be able to handle array derefs on vectors. * Fortunately, nir_lower_io handles these just fine. @@ -1410,6 +1411,7 @@ nir_validate_shader(nir_shader *shader, const char *when) nir_var_system_value | nir_var_mem_ssbo | nir_var_mem_shared | + nir_var_mem_push_const | nir_var_mem_constant; exec_list_validate(&shader->variables);