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

Author: Marek Olšák <marek.ol...@amd.com>
Date:   Mon May 18 14:56:34 2015 +0200

radeonsi: fix scratch buffer setup for geometry shaders

Cc: 10.6 <mesa-sta...@lists.freedesktop.org>
Reviewed-by: Michel Dänzer <michel.daen...@amd.com>

---

 src/gallium/drivers/radeonsi/si_state_shaders.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c 
b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 25811ab..610af94 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -841,8 +841,15 @@ static void si_update_spi_tmpring_size(struct si_context 
*sctx)
                        si_pm4_bind_state(sctx, ps, 
sctx->ps_shader->current->pm4);
                if (si_update_scratch_buffer(sctx, sctx->gs_shader))
                        si_pm4_bind_state(sctx, gs, 
sctx->gs_shader->current->pm4);
-               if (si_update_scratch_buffer(sctx, sctx->vs_shader))
-                       si_pm4_bind_state(sctx, vs, 
sctx->vs_shader->current->pm4);
+
+               /* VS can be bound as ES or VS. */
+               if (sctx->gs_shader) {
+                       if (si_update_scratch_buffer(sctx, sctx->vs_shader))
+                               si_pm4_bind_state(sctx, es, 
sctx->vs_shader->current->pm4);
+               } else {
+                       if (si_update_scratch_buffer(sctx, sctx->vs_shader))
+                               si_pm4_bind_state(sctx, vs, 
sctx->vs_shader->current->pm4);
+               }
        }
 
        /* The LLVM shader backend should be reporting aligned scratch_sizes. */

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to