From: Dave Airlie <[email protected]>

When tess/gs are enabled, the geom shader ring needs
to bind to the tess eval not the vertex shader.

Signed-off-by: Dave Airlie <[email protected]>
---
 src/gallium/drivers/r600/r600_state_common.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_state_common.c 
b/src/gallium/drivers/r600/r600_state_common.c
index 84d85fb..ab3313f 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -1354,13 +1354,20 @@ static void update_gs_block_state(struct r600_context 
*rctx, unsigned enable)
                if (enable) {
                        r600_set_constant_buffer(&rctx->b.b, 
PIPE_SHADER_GEOMETRY,
                                        R600_GS_RING_CONST_BUFFER, 
&rctx->gs_rings.esgs_ring);
-                       r600_set_constant_buffer(&rctx->b.b, PIPE_SHADER_VERTEX,
-                                       R600_GS_RING_CONST_BUFFER, 
&rctx->gs_rings.gsvs_ring);
+                       if (rctx->tes_shader) {
+                               r600_set_constant_buffer(&rctx->b.b, 
PIPE_SHADER_TESS_EVAL,
+                                                        
R600_GS_RING_CONST_BUFFER, &rctx->gs_rings.gsvs_ring);
+                       } else {
+                               r600_set_constant_buffer(&rctx->b.b, 
PIPE_SHADER_VERTEX,
+                                                        
R600_GS_RING_CONST_BUFFER, &rctx->gs_rings.gsvs_ring);
+                       }
                } else {
                        r600_set_constant_buffer(&rctx->b.b, 
PIPE_SHADER_GEOMETRY,
                                        R600_GS_RING_CONST_BUFFER, NULL);
                        r600_set_constant_buffer(&rctx->b.b, PIPE_SHADER_VERTEX,
                                        R600_GS_RING_CONST_BUFFER, NULL);
+                       r600_set_constant_buffer(&rctx->b.b, 
PIPE_SHADER_TESS_EVAL,
+                                       R600_GS_RING_CONST_BUFFER, NULL);
                }
        }
 }
-- 
2.5.0

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

Reply via email to