nir: Allow uniform in nir_lower_vars_to_explicit_types

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6472>
This commit is contained in:
Jason Ekstrand
2020-08-27 16:00:00 -05:00
committed by Marge Bot
parent 3719b69dfc
commit 9641f483e9

View File

@@ -1698,6 +1698,10 @@ lower_vars_to_explicit(nir_shader *shader,
bool progress = false;
unsigned offset;
switch (mode) {
case nir_var_uniform:
assert(shader->info.stage == MESA_SHADER_KERNEL);
offset = 0;
break;
case nir_var_function_temp:
case nir_var_shader_temp:
offset = shader->scratch_size;
@@ -1728,6 +1732,10 @@ lower_vars_to_explicit(nir_shader *shader,
}
switch (mode) {
case nir_var_uniform:
assert(shader->info.stage == MESA_SHADER_KERNEL);
shader->num_uniforms = offset;
break;
case nir_var_shader_temp:
case nir_var_function_temp:
shader->scratch_size = offset;
@@ -1758,11 +1766,13 @@ nir_lower_vars_to_explicit_types(nir_shader *shader,
*/
ASSERTED nir_variable_mode supported =
nir_var_mem_shared | nir_var_mem_global |
nir_var_shader_temp | nir_var_function_temp;
nir_var_shader_temp | nir_var_function_temp | nir_var_uniform;
assert(!(modes & ~supported) && "unsupported");
bool progress = false;
if (modes & nir_var_uniform)
progress |= lower_vars_to_explicit(shader, &shader->variables, nir_var_uniform, type_info);
if (modes & nir_var_mem_shared)
progress |= lower_vars_to_explicit(shader, &shader->variables, nir_var_mem_shared, type_info);
if (modes & nir_var_shader_temp)