Re: [Mesa-dev] [PATCH 2/7] glsl: only call dead code pass when new inputs/outputs demoted

2015-11-23 Thread Juha-Pekka Heikkila

Reviewed-by: Juha-Pekka Heikkila 

On 21.11.2015 10:02, Timothy Arceri wrote:

From: Timothy Arceri 

This will help avoid eliminating inputs/outputs needed by SSOs.

Cc: Gregory Hainaut 
---
  src/glsl/linker.cpp | 24 ++--
  1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index eac2536..5ff433c 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -4327,13 +4327,14 @@ link_shaders(struct gl_context *ctx, struct 
gl_shader_program *prog)
do_dead_builtin_varyings(ctx, sh, NULL,
 num_tfeedback_decls, tfeedback_decls);

-  if (!prog->SeparateShader)
+  if (!prog->SeparateShader) {
   demote_shader_inputs_and_outputs(sh, ir_var_shader_out);
-
-  /* Eliminate code that is now dead due to unused outputs being demoted.
-   */
-  while (do_dead_code(sh->ir, false))
- ;
+ /* Eliminate code that is now dead due to unused outputs being
+  * demoted.
+  */
+ while (do_dead_code(sh->ir, false))
+;
+  }
 }
 else if (first == MESA_SHADER_FRAGMENT) {
/* If the program only contains a fragment shader...
@@ -4350,11 +4351,14 @@ link_shaders(struct gl_context *ctx, struct 
gl_shader_program *prog)
 0 /* num_tfeedback_decls */,
 NULL /* tfeedback_decls */))
  goto done;
-  } else
+  } else {
   demote_shader_inputs_and_outputs(sh, ir_var_shader_in);
-
-  while (do_dead_code(sh->ir, false))
- ;
+ /* Eliminate code that is now dead due to unused inputs being
+  * demoted.
+  */
+ while (do_dead_code(sh->ir, false))
+;
+  }
 }

 next = last;



___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 2/7] glsl: only call dead code pass when new inputs/outputs demoted

2015-11-21 Thread Timothy Arceri
From: Timothy Arceri 

This will help avoid eliminating inputs/outputs needed by SSOs.

Cc: Gregory Hainaut 
---
 src/glsl/linker.cpp | 24 ++--
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index eac2536..5ff433c 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -4327,13 +4327,14 @@ link_shaders(struct gl_context *ctx, struct 
gl_shader_program *prog)
   do_dead_builtin_varyings(ctx, sh, NULL,
num_tfeedback_decls, tfeedback_decls);
 
-  if (!prog->SeparateShader)
+  if (!prog->SeparateShader) {
  demote_shader_inputs_and_outputs(sh, ir_var_shader_out);
-
-  /* Eliminate code that is now dead due to unused outputs being demoted.
-   */
-  while (do_dead_code(sh->ir, false))
- ;
+ /* Eliminate code that is now dead due to unused outputs being
+  * demoted.
+  */
+ while (do_dead_code(sh->ir, false))
+;
+  }
}
else if (first == MESA_SHADER_FRAGMENT) {
   /* If the program only contains a fragment shader...
@@ -4350,11 +4351,14 @@ link_shaders(struct gl_context *ctx, struct 
gl_shader_program *prog)
0 /* num_tfeedback_decls */,
NULL /* tfeedback_decls */))
 goto done;
-  } else
+  } else {
  demote_shader_inputs_and_outputs(sh, ir_var_shader_in);
-
-  while (do_dead_code(sh->ir, false))
- ;
+ /* Eliminate code that is now dead due to unused inputs being
+  * demoted.
+  */
+ while (do_dead_code(sh->ir, false))
+;
+  }
}
 
next = last;
-- 
2.4.3

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev