diff options
author | Jordan Justen <[email protected]> | 2018-09-18 14:23:58 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-02-21 10:26:09 -0800 |
commit | ea416d0b5dc6907045d55bc1074d4908a04d2ad3 (patch) | |
tree | 0b6efb3329dd0e0efdf09c853473df6bcaa10429 | |
parent | c7cfa4000fcef12ef0e5a2394d8780ae4112a800 (diff) |
iris/program: Don't try to push ubo ranges for compute
We only can push constants for compute shaders from one range.
Gallium glsl-to-nir (src/mesa/state_tracker/st_glsl_to_nir.cpp) lowers
all uniform accesses to a ubo.
Unfortunately we also load the subgroup-id as a uniform in the
compiler. Since we use the 1 push range for this subgroup-id, we then
lose the ability to actually push the ubo with all the normal user
uniform values.
In other words, there is lots of room for performance improvement, but
at least retrieving the uniforms as pull-constants is functional for
now.
Signed-off-by: Jordan Justen <[email protected]>
-rw-r--r-- | src/gallium/drivers/iris/iris_program.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c index a62b2d0fb42..4aba8d0bfe3 100644 --- a/src/gallium/drivers/iris/iris_program.c +++ b/src/gallium/drivers/iris/iris_program.c @@ -429,7 +429,8 @@ iris_setup_uniforms(const struct brw_compiler *compiler, } // XXX: vs clip planes? - brw_nir_analyze_ubo_ranges(compiler, nir, NULL, prog_data->ubo_ranges); + if (nir->info.stage != MESA_SHADER_COMPUTE) + brw_nir_analyze_ubo_ranges(compiler, nir, NULL, prog_data->ubo_ranges); } /** |