i965: Inline brw_update_renderbuffer_surfaces().

Less baklava layers.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
Kenneth Graunke 2017-08-17 01:28:56 -07:00
parent 7af023edc0
commit 00b7d04181
2 changed files with 22 additions and 40 deletions

View File

@ -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,

View File

@ -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;
}