summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2015-08-30 18:46:06 +0200
committerMarek Olšák <[email protected]>2015-09-01 21:51:15 +0200
commit2d8f7d3c153bf73fa7137b89e194d4e0e79d943d (patch)
tree17153b76f64453e48940ba64303c56610afeff65
parentdf12ddb55dc5c3d1887e7742bb9e2d4d4011f3fd (diff)
radeonsi: use an indirect buffer for init_config
Reviewed-by: Alex Deucher <[email protected]> Acked-by: Christian König <[email protected]>
-rw-r--r--src/gallium/drivers/radeonsi/si_state.c1
-rw-r--r--src/gallium/drivers/radeonsi/si_state_shaders.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index e31895d6933..1e2f32a8799 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -3392,5 +3392,6 @@ static void si_init_config(struct si_context *sctx)
si_pm4_add_bo(pm4, sctx->border_color_buffer, RADEON_USAGE_READ,
RADEON_PRIO_SHADER_DATA);
+ si_pm4_upload_indirect_buffer(sctx, pm4);
sctx->init_config = pm4;
}
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 78b68bc3dfe..db45cc181c6 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -1087,6 +1087,7 @@ static void si_init_gs_rings(struct si_context *sctx)
/* Flush the context to re-emit the init_config state.
* This is done only once in a lifetime of a context.
*/
+ si_pm4_upload_indirect_buffer(sctx, sctx->init_config);
sctx->b.initial_gfx_cs_size = 0; /* force flush */
si_context_gfx_flush(sctx, RADEON_FLUSH_ASYNC, NULL);
@@ -1288,6 +1289,7 @@ static void si_init_tess_factor_ring(struct si_context *sctx)
/* Flush the context to re-emit the init_config state.
* This is done only once in a lifetime of a context.
*/
+ si_pm4_upload_indirect_buffer(sctx, sctx->init_config);
sctx->b.initial_gfx_cs_size = 0; /* force flush */
si_context_gfx_flush(sctx, RADEON_FLUSH_ASYNC, NULL);