On Sunday, January 04, 2015 04:04:24 PM Abdiel Janulgue wrote: > Update the hw-generated binding table for blorp SURFACE_STATE entries. > > Signed-off-by: Abdiel Janulgue <abdiel.janul...@linux.intel.com> > --- > src/mesa/drivers/dri/i965/gen6_blorp.cpp | 35 > ++++++++++++++++++++++++-------- > 1 file changed, 26 insertions(+), 9 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/gen6_blorp.cpp > b/src/mesa/drivers/dri/i965/gen6_blorp.cpp > index d4aa955..8e78450 100644 > --- a/src/mesa/drivers/dri/i965/gen6_blorp.cpp > +++ b/src/mesa/drivers/dri/i965/gen6_blorp.cpp > @@ -428,15 +428,32 @@ gen6_blorp_emit_binding_table(struct brw_context *brw, > uint32_t wm_surf_offset_texture) > { > uint32_t wm_bind_bo_offset; > - uint32_t *bind = (uint32_t *) > - brw_state_batch(brw, AUB_TRACE_BINDING_TABLE, > - sizeof(uint32_t) * > - BRW_BLORP_NUM_BINDING_TABLE_ENTRIES, > - 32, /* alignment */ > - &wm_bind_bo_offset); > - bind[BRW_BLORP_RENDERBUFFER_BINDING_TABLE_INDEX] = > - wm_surf_offset_renderbuffer; > - bind[BRW_BLORP_TEXTURE_BINDING_TABLE_INDEX] = wm_surf_offset_texture; > + uint32_t *bind; > + > + if (brw->hw_bt_pool.bo && brw->has_resource_streamer) {
It seems like checking brw->hw_bt_pool.bo != NULL should be sufficient. If there's no resource streamer, we shouldn't allocate the buffer. But I don't think we want to touch BLORP, so it may be moot... > + BEGIN_BATCH(4); > + OUT_BATCH(_3DSTATE_BINDING_TABLE_EDIT_PS << 16 | (4 - 2)); > + OUT_BATCH(0x3); > + { > + OUT_BATCH(BRW_BLORP_RENDERBUFFER_BINDING_TABLE_INDEX << 16 | > + (wm_surf_offset_renderbuffer >> 5)); > + OUT_BATCH(BRW_BLORP_TEXTURE_BINDING_TABLE_INDEX << 16 | > + (wm_surf_offset_texture >> 5)); > + } > + ADVANCE_BATCH(); > + wm_bind_bo_offset = brw->hw_bt_pool.next_offset; > + brw->hw_bt_pool.next_offset += (256 * sizeof(uint16_t)); > + } else { > + bind = (uint32_t *) > + brw_state_batch(brw, AUB_TRACE_BINDING_TABLE, > + sizeof(uint32_t) * > + BRW_BLORP_NUM_BINDING_TABLE_ENTRIES, > + 32, /* alignment */ > + &wm_bind_bo_offset); > + bind[BRW_BLORP_RENDERBUFFER_BINDING_TABLE_INDEX] = > + wm_surf_offset_renderbuffer; > + bind[BRW_BLORP_TEXTURE_BINDING_TABLE_INDEX] = wm_surf_offset_texture; > + } > > return wm_bind_bo_offset; > } >
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev