Module: Mesa
Branch: master
Commit: 9f0944d15b9d2cd85f501f80eea7e6b6fc7f3487
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f0944d15b9d2cd85f501f80eea7e6b6fc7f3487

Author: Kenneth Graunke <[email protected]>
Date:   Wed Dec  9 21:42:56 2015 -0800

i965: Make TES inputs match TCS outputs.

Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>

---

 src/mesa/drivers/dri/i965/brw_nir.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_nir.c 
b/src/mesa/drivers/dri/i965/brw_nir.c
index 38706a0..2b90966 100644
--- a/src/mesa/drivers/dri/i965/brw_nir.c
+++ b/src/mesa/drivers/dri/i965/brw_nir.c
@@ -636,6 +636,17 @@ brw_create_nir(struct brw_context *brw,
    /* First, lower the GLSL IR or Mesa IR to NIR */
    if (shader_prog) {
       nir = glsl_to_nir(shader_prog, stage, options);
+
+      if (nir->stage == MESA_SHADER_TESS_EVAL &&
+          shader_prog->_LinkedShaders[MESA_SHADER_TESS_CTRL]) {
+         const struct gl_program *tcs =
+            shader_prog->_LinkedShaders[MESA_SHADER_TESS_CTRL]->Program;
+         /* Work around the TCS having bonus outputs used as shared memory
+          * segments, which makes OutputsWritten not match InputsRead
+          */
+         nir->info.inputs_read = tcs->OutputsWritten;
+         nir->info.patch_inputs_read = tcs->PatchOutputsWritten;
+      }
    } else {
       nir = prog_to_nir(prog, options);
       OPT_V(nir_convert_to_ssa); /* turn registers into SSA */

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to