i965: Don't set EmitNoMainReturn.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 5 Jan 2017 18:46:39 +0000 (10:46 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 6 Jan 2017 07:15:39 +0000 (23:15 -0800)
A while ago, we stopped using Luca's GLSL IR lower_jumps pass in favor
of nir_lower_returns().  Marek's commit d3cb79e043338b0e55a3fba8df652f3
put it in do_common_optimization, which resulted in us calling it again.

Dropping the EmitNoMainReturn setting makes us skip that pass again.

Apparently that pass doesn't work properly, because this fixes Piglit's
tests/spec/glsl-1.10/execution/vs-nested-return-sibling-loop.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99287
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
src/mesa/drivers/dri/i965/brw_compiler.c

index fa8a772a104fa843a01c9b2bfaed7b84ad5fa09d..f3dafecae04ce60daa9f41b167d201672ef31788 100644 (file)
@@ -126,7 +126,6 @@ brw_compiler_create(void *mem_ctx, const struct gen_device_info *devinfo)
       compiler->glsl_compiler_options[i].MaxIfDepth =
          devinfo->gen < 6 ? 16 : UINT_MAX;
 
-      compiler->glsl_compiler_options[i].EmitNoMainReturn = true;
       compiler->glsl_compiler_options[i].EmitNoIndirectInput = true;
       compiler->glsl_compiler_options[i].EmitNoIndirectUniform = false;