From 9141d8855555e45a057970e78969e1518ad3617d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Tue, 30 Dec 2014 23:49:59 +0100 Subject: [PATCH] radeonsi: reduce the size of si_pm4_state MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit - the relocs array is unused, remove it - ndw is at most 115 (init), set 140 as the maximum - compute needs 4 buffers per state, graphics only needs 1; set 4 as the maximum Reviewed-by: Michel Dänzer --- src/gallium/drivers/radeonsi/si_pm4.c | 6 +----- src/gallium/drivers/radeonsi/si_pm4.h | 9 ++------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_pm4.c b/src/gallium/drivers/radeonsi/si_pm4.c index 954eb6e5ff1..21ab9f24b21 100644 --- a/src/gallium/drivers/radeonsi/si_pm4.c +++ b/src/gallium/drivers/radeonsi/si_pm4.c @@ -145,17 +145,13 @@ unsigned si_pm4_dirty_dw(struct si_context *sctx) void si_pm4_emit(struct si_context *sctx, struct si_pm4_state *state) { struct radeon_winsys_cs *cs = sctx->b.rings.gfx.cs; + for (int i = 0; i < state->nbo; ++i) { r600_context_bo_reloc(&sctx->b, &sctx->b.rings.gfx, state->bo[i], state->bo_usage[i], state->bo_priority[i]); } memcpy(&cs->buf[cs->cdw], state->pm4, state->ndw * 4); - - for (int i = 0; i < state->nrelocs; ++i) { - cs->buf[cs->cdw + state->relocs[i]] += cs->cdw << 2; - } - cs->cdw += state->ndw; #if SI_TRACE_CS diff --git a/src/gallium/drivers/radeonsi/si_pm4.h b/src/gallium/drivers/radeonsi/si_pm4.h index 8680a9ef11c..388bb4b47f1 100644 --- a/src/gallium/drivers/radeonsi/si_pm4.h +++ b/src/gallium/drivers/radeonsi/si_pm4.h @@ -29,9 +29,8 @@ #include "radeon/drm/radeon_winsys.h" -#define SI_PM4_MAX_DW 256 -#define SI_PM4_MAX_BO 32 -#define SI_PM4_MAX_RELOCS 4 +#define SI_PM4_MAX_DW 140 +#define SI_PM4_MAX_BO 4 // forward defines struct si_context; @@ -54,10 +53,6 @@ struct si_pm4_state enum radeon_bo_usage bo_usage[SI_PM4_MAX_BO]; enum radeon_bo_priority bo_priority[SI_PM4_MAX_BO]; - /* relocs for shader data */ - unsigned nrelocs; - unsigned relocs[SI_PM4_MAX_RELOCS]; - bool compute_pkt; }; -- 2.30.2