summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2016-10-17 14:23:10 -0700
committerKenneth Graunke <[email protected]>2016-11-22 00:29:24 -0800
commit38a8507f79b8da71b309654ce56854bbea1bcf94 (patch)
tree3b959d99efc0e2901b52c5127b856aeec00fa212 /src/mesa
parenta4d7a5bd1eb4cc11024697cf309df390fbd97624 (diff)
i965: Use NIR-based clip/cull lowering for OpenGL as well.
The old approach works fine, and this approach isn't necessarily better. But it at least has the advantage that Vulkan and GL use the same approach. I originally wrote it to gain additional testing for the new paths. shader-db statistics show 0 instruction count changes. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_compiler.c1
-rw-r--r--src/mesa/drivers/dri/i965/brw_nir.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_compiler.c b/src/mesa/drivers/dri/i965/brw_compiler.c
index 9387d64b054..1aa72bc6fff 100644
--- a/src/mesa/drivers/dri/i965/brw_compiler.c
+++ b/src/mesa/drivers/dri/i965/brw_compiler.c
@@ -126,7 +126,6 @@ brw_compiler_create(void *mem_ctx, const struct gen_device_info *devinfo)
compiler->glsl_compiler_options[i].EmitNoMainReturn = true;
compiler->glsl_compiler_options[i].EmitNoIndirectInput = true;
compiler->glsl_compiler_options[i].EmitNoIndirectUniform = false;
- compiler->glsl_compiler_options[i].LowerCombinedClipCullDistance = true;
bool is_scalar = compiler->scalar_stage[i];
diff --git a/src/mesa/drivers/dri/i965/brw_nir.c b/src/mesa/drivers/dri/i965/brw_nir.c
index a93d8252535..e4541804585 100644
--- a/src/mesa/drivers/dri/i965/brw_nir.c
+++ b/src/mesa/drivers/dri/i965/brw_nir.c
@@ -485,6 +485,8 @@ brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir)
/* Get rid of split copies */
nir = nir_optimize(nir, is_scalar);
+ OPT_V(nir_lower_clip_cull_distance_arrays);
+
OPT(nir_remove_dead_variables, nir_var_local);
return nir;