Move the computation of the state offset into a smaller helper to reduce churn later.
Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/mesa/drivers/dri/i965/brw_state_dump.c | 62 ++++++++++++++++-------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_state_dump.c b/src/mesa/drivers/dri/i965/brw_state_dump.c index c5885650a6..d8e37f9bff 100644 --- a/src/mesa/drivers/dri/i965/brw_state_dump.c +++ b/src/mesa/drivers/dri/i965/brw_state_dump.c @@ -68,6 +68,11 @@ static const char *surface_tiling[] = { "Y-tiled" }; +static void *batch_in(struct brw_context *brw, unsigned offset) +{ + return (void *)brw->batch.bo->virtual + offset; +} + static void batch_out(struct brw_context *brw, const char *name, uint32_t offset, int index, char *fmt, ...) PRINTFLIKE(5, 6); @@ -76,7 +81,7 @@ static void batch_out(struct brw_context *brw, const char *name, uint32_t offset, int index, char *fmt, ...) { - uint32_t *data = brw->batch.bo->virtual + offset; + uint32_t *data = batch_in(brw, offset); va_list va; fprintf(stderr, "0x%08x: 0x%08x: %8s: ", @@ -90,7 +95,7 @@ static void batch_out64(struct brw_context *brw, const char *name, uint32_t offset, int index, char *fmt, ...) { - uint32_t *tmp = brw->batch.bo->virtual + offset; + uint32_t *tmp = batch_in(brw, offset); /* Swap the dwords since we want to handle this as a 64b value, but the data * is typically emitted as dwords. @@ -122,7 +127,7 @@ get_965_surfacetype(unsigned int surfacetype) static void dump_vs_state(struct brw_context *brw, uint32_t offset) { const char *name = "VS_STATE"; - struct brw_vs_unit_state *vs = brw->batch.bo->virtual + offset; + struct brw_vs_unit_state *vs = batch_in(brw, offset); batch_out(brw, name, offset, 0, "thread0\n"); batch_out(brw, name, offset, 1, "thread1\n"); @@ -137,7 +142,7 @@ static void dump_vs_state(struct brw_context *brw, uint32_t offset) static void dump_gs_state(struct brw_context *brw, uint32_t offset) { const char *name = "GS_STATE"; - struct brw_gs_unit_state *gs = brw->batch.bo->virtual + offset; + struct brw_gs_unit_state *gs = batch_in(brw, offset); batch_out(brw, name, offset, 0, "thread0\n"); batch_out(brw, name, offset, 1, "thread1\n"); @@ -152,7 +157,7 @@ static void dump_gs_state(struct brw_context *brw, uint32_t offset) static void dump_clip_state(struct brw_context *brw, uint32_t offset) { const char *name = "CLIP_STATE"; - struct brw_clip_unit_state *clip = brw->batch.bo->virtual + offset; + struct brw_clip_unit_state *clip = batch_in(brw, offset); batch_out(brw, name, offset, 0, "thread0\n"); batch_out(brw, name, offset, 1, "thread1\n"); @@ -171,7 +176,7 @@ static void dump_clip_state(struct brw_context *brw, uint32_t offset) static void dump_sf_state(struct brw_context *brw, uint32_t offset) { const char *name = "SF_STATE"; - struct brw_sf_unit_state *sf = brw->batch.bo->virtual + offset; + struct brw_sf_unit_state *sf = batch_in(brw, offset); batch_out(brw, name, offset, 0, "thread0\n"); batch_out(brw, name, offset, 1, "thread1\n"); @@ -187,7 +192,7 @@ static void dump_sf_state(struct brw_context *brw, uint32_t offset) static void dump_wm_state(struct brw_context *brw, uint32_t offset) { const char *name = "WM_STATE"; - struct brw_wm_unit_state *wm = brw->batch.bo->virtual + offset; + struct brw_wm_unit_state *wm = batch_in(brw, offset); batch_out(brw, name, offset, 0, "thread0\n"); batch_out(brw, name, offset, 1, "thread1\n"); @@ -214,7 +219,7 @@ static void dump_wm_state(struct brw_context *brw, uint32_t offset) static void dump_surface_state(struct brw_context *brw, uint32_t offset) { const char *name = "SURF"; - uint32_t *surf = brw->batch.bo->virtual + offset; + uint32_t *surf = batch_in(brw, offset); batch_out(brw, name, offset, 0, "%s %s\n", get_965_surfacetype(GET_FIELD(surf[0], BRW_SURFACE_TYPE)), @@ -238,7 +243,7 @@ static void dump_surface_state(struct brw_context *brw, uint32_t offset) static void dump_gen7_surface_state(struct brw_context *brw, uint32_t offset) { const char *name = "SURF"; - uint32_t *surf = brw->batch.bo->virtual + offset; + uint32_t *surf = batch_in(brw, offset); batch_out(brw, name, offset, 0, "%s %s %s\n", get_965_surfacetype(GET_FIELD(surf[0], BRW_SURFACE_TYPE)), @@ -277,7 +282,7 @@ static float q_to_float(uint32_t data, int integer_end, int integer_start, static void dump_gen8_surface_state(struct brw_context *brw, uint32_t offset, int index) { - uint32_t *surf = brw->batch.bo->virtual + offset; + uint32_t *surf = batch_in(brw, offset); int aux_mode = surf[6] & INTEL_MASK(2, 0); const char *aux_str; char *name; @@ -354,8 +359,7 @@ dump_sdc(struct brw_context *brw, uint32_t offset) const char *name = "SDC"; if (brw->gen >= 5 && brw->gen <= 6) { - struct gen5_sampler_default_color *sdc = (brw->batch.bo->virtual + - offset); + struct gen5_sampler_default_color *sdc = batch_in(brw, offset); batch_out(brw, name, offset, 0, "unorm rgba\n"); batch_out(brw, name, offset, 1, "r %f\n", sdc->f[0]); batch_out(brw, name, offset, 2, "b %f\n", sdc->f[1]); @@ -369,7 +373,7 @@ dump_sdc(struct brw_context *brw, uint32_t offset) batch_out(brw, name, offset, 10, "s16 ba\n"); batch_out(brw, name, offset, 11, "s8 rgba\n"); } else { - float *sdc = brw->batch.bo->virtual + offset; + float *sdc = batch_in(brw, offset); batch_out(brw, name, offset, 0, "r %f\n", sdc[0]); batch_out(brw, name, offset, 1, "g %f\n", sdc[1]); batch_out(brw, name, offset, 2, "b %f\n", sdc[2]); @@ -381,7 +385,7 @@ static void dump_sampler_state(struct brw_context *brw, uint32_t offset, uint32_t size) { unsigned i; - uint32_t *samp = brw->batch.bo->virtual + offset; + uint32_t *samp = batch_in(brw, offset); for (i = 0; i < size / 16; i++) { char name[20]; @@ -400,7 +404,7 @@ static void dump_sampler_state(struct brw_context *brw, static void gen7_dump_sampler_state(struct brw_context *brw, uint32_t offset, uint32_t size) { - const uint32_t *samp = brw->batch.bo->virtual + offset; + const uint32_t *samp = batch_in(brw, offset); char name[20]; for (int i = 0; i < size / 16; i++) { @@ -441,7 +445,7 @@ static void dump_sf_viewport_state(struct brw_context *brw, uint32_t offset) { const char *name = "SF VP"; - struct brw_sf_viewport *vp = brw->batch.bo->virtual + offset; + struct brw_sf_viewport *vp = batch_in(brw, offset); assert(brw->gen < 7); @@ -462,7 +466,7 @@ static void dump_clip_viewport_state(struct brw_context *brw, uint32_t offset) { const char *name = "CLIP VP"; - struct brw_clipper_viewport *vp = brw->batch.bo->virtual + offset; + struct brw_clipper_viewport *vp = batch_in(brw, offset); assert(brw->gen < 7); @@ -476,7 +480,7 @@ static void dump_sf_clip_viewport_state(struct brw_context *brw, uint32_t offset) { const char *name = "SF_CLIP VP"; - struct gen7_sf_clip_viewport *vp = brw->batch.bo->virtual + offset; + struct gen7_sf_clip_viewport *vp = batch_in(brw, offset); assert(brw->gen >= 7); @@ -491,7 +495,7 @@ static void dump_sf_clip_viewport_state(struct brw_context *brw, batch_out(brw, name, offset, 9, "guardband ymin = %f\n", vp->guardband.ymin); batch_out(brw, name, offset, 10, "guardband ymax = %f\n", vp->guardband.ymax); if (brw->gen >= 8) { - float *cc_vp = brw->batch.bo->virtual + offset; + float *cc_vp = batch_in(brw, offset); batch_out(brw, name, offset, 12, "Min extents: %.2fx%.2f\n", cc_vp[12], cc_vp[14]); batch_out(brw, name, offset, 14, "Max extents: %.2fx%.2f\n", @@ -503,7 +507,7 @@ static void dump_sf_clip_viewport_state(struct brw_context *brw, static void dump_cc_viewport_state(struct brw_context *brw, uint32_t offset) { const char *name = "CC VP"; - struct brw_cc_viewport *vp = brw->batch.bo->virtual + offset; + struct brw_cc_viewport *vp = batch_in(brw, offset); batch_out(brw, name, offset, 0, "min_depth = %f\n", vp->min_depth); batch_out(brw, name, offset, 1, "max_depth = %f\n", vp->max_depth); @@ -512,7 +516,7 @@ static void dump_cc_viewport_state(struct brw_context *brw, uint32_t offset) static void dump_depth_stencil_state(struct brw_context *brw, uint32_t offset) { const char *name = "D_S"; - struct gen6_depth_stencil_state *ds = brw->batch.bo->virtual + offset; + struct gen6_depth_stencil_state *ds = batch_in(brw, offset); batch_out(brw, name, offset, 0, "stencil %sable, func %d, write %sable\n", @@ -546,7 +550,7 @@ static void dump_cc_state_gen4(struct brw_context *brw, uint32_t offset) static void dump_cc_state_gen6(struct brw_context *brw, uint32_t offset) { const char *name = "CC"; - struct gen6_color_calc_state *cc = brw->batch.bo->virtual + offset; + struct gen6_color_calc_state *cc = batch_in(brw, offset); batch_out(brw, name, offset, 0, "alpha test format %s, round disable %d, stencil ref %d, " @@ -573,7 +577,7 @@ static void dump_blend_state(struct brw_context *brw, uint32_t offset) static void gen8_dump_blend_state(struct brw_context *brw, uint32_t offset, uint32_t size) { - const uint32_t *blend = brw->batch.bo->virtual + offset; + const uint32_t *blend = batch_in(brw, offset); const char *logicop[] = { "LOGICOP_CLEAR (BLACK)", @@ -660,7 +664,7 @@ static void dump_scissor(struct brw_context *brw, uint32_t offset) { const char *name = "SCISSOR"; - struct gen6_scissor_rect *scissor = brw->batch.bo->virtual + offset; + struct gen6_scissor_rect *scissor = batch_in(brw, offset); batch_out(brw, name, offset, 0, "xmin %d, ymin %d\n", scissor->xmin, scissor->ymin); @@ -672,8 +676,8 @@ static void dump_vs_constants(struct brw_context *brw, uint32_t offset, uint32_t size) { const char *name = "VS_CONST"; - uint32_t *as_uint = brw->batch.bo->virtual + offset; - float *as_float = brw->batch.bo->virtual + offset; + uint32_t *as_uint = batch_in(brw, offset); + float *as_float = batch_in(brw, offset); int i; for (i = 0; i < size / 4; i += 4) { @@ -688,8 +692,8 @@ static void dump_wm_constants(struct brw_context *brw, uint32_t offset, uint32_t size) { const char *name = "WM_CONST"; - uint32_t *as_uint = brw->batch.bo->virtual + offset; - float *as_float = brw->batch.bo->virtual + offset; + uint32_t *as_uint = batch_in(brw, offset); + float *as_float = batch_in(brw, offset); int i; for (i = 0; i < size / 4; i += 4) { @@ -705,7 +709,7 @@ static void dump_binding_table(struct brw_context *brw, uint32_t offset, { char name[20]; int i; - uint32_t *data = brw->batch.bo->virtual + offset; + uint32_t *data = batch_in(brw, offset); for (i = 0; i < size / 4; i++) { if (data[i] == 0) -- 2.11.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev