From 00b7d04181e63cd3b11aa67871a4818936d14e38 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 17 Aug 2017 01:28:56 -0700 Subject: [PATCH] i965: Inline brw_update_renderbuffer_surfaces(). Less baklava layers. Reviewed-by: Topi Pohjolainen --- src/mesa/drivers/dri/i965/brw_state.h | 5 -- .../drivers/dri/i965/brw_wm_surface_state.c | 57 +++++++------------ 2 files changed, 22 insertions(+), 40 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_state.h b/src/mesa/drivers/dri/i965/brw_state.h index c9fd9414826..a07e70341df 100644 --- a/src/mesa/drivers/dri/i965/brw_state.h +++ b/src/mesa/drivers/dri/i965/brw_state.h @@ -221,11 +221,6 @@ void brw_update_texture_surface(struct gl_context *ctx, unsigned unit, uint32_t *surf_offset, bool for_gather, uint32_t plane); -void brw_update_renderbuffer_surfaces(struct brw_context *brw, - const struct gl_framebuffer *fb, - uint32_t render_target_start, - uint32_t *surf_offset); - /* brw_sampler_state.c */ void brw_emit_sampler_state(struct brw_context *brw, uint32_t *sampler_state, diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c index a70553e24f5..f33fc70e6f6 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -985,37 +985,6 @@ gen4_update_renderbuffer_surface(struct brw_context *brw, return offset; } -/** - * Construct SURFACE_STATE objects for renderbuffers/draw buffers. - */ -void -brw_update_renderbuffer_surfaces(struct brw_context *brw, - const struct gl_framebuffer *fb, - uint32_t render_target_start, - uint32_t *surf_offset) -{ - GLuint i; - - /* Update surfaces for drawing buffers */ - if (fb->_NumColorDrawBuffers >= 1) { - for (i = 0; i < fb->_NumColorDrawBuffers; i++) { - const uint32_t surf_index = render_target_start + i; - struct gl_renderbuffer *rb = fb->_ColorDrawBuffers[i]; - - if (intel_renderbuffer(rb)) { - surf_offset[surf_index] = brw->gen >= 6 ? - gen6_update_renderbuffer_surface(brw, rb, i, surf_index) : - gen4_update_renderbuffer_surface(brw, rb, i, surf_index); - } else { - emit_null_surface_state(brw, fb, &surf_offset[surf_index]); - } - } - } else { - const uint32_t surf_index = render_target_start; - emit_null_surface_state(brw, fb, &surf_offset[surf_index]); - } -} - static void update_renderbuffer_surfaces(struct brw_context *brw) { @@ -1027,10 +996,28 @@ update_renderbuffer_surfaces(struct brw_context *brw) /* _NEW_BUFFERS | _NEW_COLOR */ const struct gl_framebuffer *fb = ctx->DrawBuffer; - brw_update_renderbuffer_surfaces( - brw, fb, - wm_prog_data->binding_table.render_target_start, - brw->wm.base.surf_offset); + + const unsigned rt_start = wm_prog_data->binding_table.render_target_start; + + uint32_t *surf_offsets = brw->wm.base.surf_offset; + + /* Update surfaces for drawing buffers */ + if (fb->_NumColorDrawBuffers >= 1) { + for (unsigned i = 0; i < fb->_NumColorDrawBuffers; i++) { + struct gl_renderbuffer *rb = fb->_ColorDrawBuffers[i]; + + if (intel_renderbuffer(rb)) { + surf_offsets[rt_start + i] = brw->gen >= 6 ? + gen6_update_renderbuffer_surface(brw, rb, i, rt_start + i) : + gen4_update_renderbuffer_surface(brw, rb, i, rt_start + i); + } else { + emit_null_surface_state(brw, fb, &surf_offsets[rt_start + i]); + } + } + } else { + emit_null_surface_state(brw, fb, &surf_offsets[rt_start]); + } + brw->ctx.NewDriverState |= BRW_NEW_SURFACES; }