diff options
Diffstat (limited to 'src/gallium/drivers/radeon')
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c index 62bd5f6a98f..b327fd106a8 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -724,6 +724,10 @@ bool si_common_context_init(struct r600_common_context *rctx, rctx->dma_clear_buffer = r600_dma_clear_buffer_fallback; rctx->b.buffer_subdata = si_buffer_subdata; + /* Set a reasonable default to avoid a performance regression in r600 + * on stable branches. */ + rctx->current_rast_prim = PIPE_PRIM_TRIANGLES; + if (rscreen->info.drm_major == 2 && rscreen->info.drm_minor >= 43) { rctx->b.get_device_reset_status = r600_get_reset_status; rctx->gpu_reset_counter = diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h index debedd402b4..f6ded92dc5b 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.h +++ b/src/gallium/drivers/radeon/r600_pipe_common.h @@ -599,6 +599,7 @@ struct r600_common_context { /* Additional context states. */ unsigned flags; /* flush flags */ + enum pipe_prim_type current_rast_prim; /* primitive type after TES, GS */ /* Queries. */ /* Maintain the list of active queries for pausing between IBs. */ |