On Fri, Oct 28, 2016 at 12:27 PM, Pohjolainen, Topi < topi.pohjolai...@gmail.com> wrote:
> On Sat, Oct 22, 2016 at 10:50:52AM -0700, Jason Ekstrand wrote: > > --- > > src/intel/vulkan/anv_blorp.c | 24 ++++++++++++++++++++++++ > > src/intel/vulkan/anv_private.h | 5 +++++ > > src/intel/vulkan/genX_blorp_exec.c | 18 ++---------------- > > 3 files changed, 31 insertions(+), 16 deletions(-) > > > > diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c > > index 5361c4b..f495815 100644 > > --- a/src/intel/vulkan/anv_blorp.c > > +++ b/src/intel/vulkan/anv_blorp.c > > @@ -868,6 +868,30 @@ void anv_CmdClearDepthStencilImage( > > blorp_batch_finish(&batch); > > } > > > > +struct anv_state > > +anv_cmd_buffer_alloc_blorp_binding_table(struct anv_cmd_buffer > *cmd_buffer, > > + uint32_t num_entries, > > + uint32_t *state_offset) > > +{ > > + struct anv_state bt_state = > > + anv_cmd_buffer_alloc_binding_table(cmd_buffer, num_entries, > > + state_offset); > > + if (bt_state.map == NULL) { > > + /* We ran out of space. Grab a new binding table block. */ > > + VkResult result = anv_cmd_buffer_new_binding_ > table_block(cmd_buffer); > > + assert(result == VK_SUCCESS); > > + > > + /* Re-emit state base addresses so we get the new surface state > base > > + * address before we start emitting binding tables etc. > > + */ > > + anv_cmd_buffer_emit_state_base_address(cmd_buffer); > > + > > + bt_state = anv_cmd_buffer_alloc_binding_table(cmd_buffer, > num_entries, > > + state_offset); > > + assert(bt_state.map != NULL); > > + } > > This is not returning the state. > Thanks for catching this. I've got it fixed now. > > +} > > + > > static void > > clear_color_attachment(struct anv_cmd_buffer *cmd_buffer, > > struct blorp_batch *batch, > > diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_ > private.h > > index 5664a6e..44fe606 100644 > > --- a/src/intel/vulkan/anv_private.h > > +++ b/src/intel/vulkan/anv_private.h > > @@ -1271,6 +1271,11 @@ void anv_cmd_buffer_resolve_subpass(struct > anv_cmd_buffer *cmd_buffer); > > const struct anv_image_view * > > anv_cmd_buffer_get_depth_stencil_view(const struct anv_cmd_buffer > *cmd_buffer); > > > > +struct anv_state > > +anv_cmd_buffer_alloc_blorp_binding_table(struct anv_cmd_buffer > *cmd_buffer, > > + uint32_t num_entries, > > + uint32_t *state_offset); > > + > > void anv_cmd_buffer_dump(struct anv_cmd_buffer *cmd_buffer); > > > > struct anv_fence { > > diff --git a/src/intel/vulkan/genX_blorp_exec.c > b/src/intel/vulkan/genX_blorp_exec.c > > index 185aff6..a705de0 100644 > > --- a/src/intel/vulkan/genX_blorp_exec.c > > +++ b/src/intel/vulkan/genX_blorp_exec.c > > @@ -87,22 +87,8 @@ blorp_alloc_binding_table(struct blorp_batch *batch, > unsigned num_entries, > > > > uint32_t state_offset; > > struct anv_state bt_state = > > - anv_cmd_buffer_alloc_binding_table(cmd_buffer, num_entries, > > - &state_offset); > > - if (bt_state.map == NULL) { > > - /* We ran out of space. Grab a new binding table block. */ > > - VkResult result = anv_cmd_buffer_new_binding_ > table_block(cmd_buffer); > > - assert(result == VK_SUCCESS); > > - > > - /* Re-emit state base addresses so we get the new surface state > base > > - * address before we start emitting binding tables etc. > > - */ > > - genX(cmd_buffer_emit_state_base_address)(cmd_buffer); > > - > > - bt_state = anv_cmd_buffer_alloc_binding_table(cmd_buffer, > num_entries, > > - &state_offset); > > - assert(bt_state.map != NULL); > > - } > > + anv_cmd_buffer_alloc_blorp_binding_table(cmd_buffer, num_entries, > > + &state_offset); > > > > uint32_t *bt_map = bt_state.map; > > *bt_offset = bt_state.offset; > > -- > > 2.5.0.400.gff86faf > > > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev