anv/batch_chain: Add a _alloc_binding_table function
This commit is contained in:
@@ -488,6 +488,13 @@ anv_cmd_buffer_alloc_surface_state(struct anv_cmd_buffer *cmd_buffer,
|
||||
return state;
|
||||
}
|
||||
|
||||
struct anv_state
|
||||
anv_cmd_buffer_alloc_binding_table(struct anv_cmd_buffer *cmd_buffer,
|
||||
uint32_t entries)
|
||||
{
|
||||
return anv_cmd_buffer_alloc_surface_state(cmd_buffer, entries * 4, 32);
|
||||
}
|
||||
|
||||
struct anv_state
|
||||
anv_cmd_buffer_alloc_dynamic_state(struct anv_cmd_buffer *cmd_buffer,
|
||||
uint32_t size, uint32_t alignment)
|
||||
|
@@ -395,7 +395,7 @@ anv_cmd_buffer_emit_binding_table(struct anv_cmd_buffer *cmd_buffer,
|
||||
struct anv_framebuffer *fb = cmd_buffer->state.framebuffer;
|
||||
struct anv_subpass *subpass = cmd_buffer->state.subpass;
|
||||
struct anv_pipeline_layout *layout;
|
||||
uint32_t attachments, bias, size;
|
||||
uint32_t attachments, bias;
|
||||
|
||||
if (stage == VK_SHADER_STAGE_COMPUTE)
|
||||
layout = cmd_buffer->state.compute_pipeline->layout;
|
||||
@@ -418,8 +418,8 @@ anv_cmd_buffer_emit_binding_table(struct anv_cmd_buffer *cmd_buffer,
|
||||
if (attachments + surface_count == 0)
|
||||
return VK_SUCCESS;
|
||||
|
||||
size = (bias + surface_count) * sizeof(uint32_t);
|
||||
*bt_state = anv_cmd_buffer_alloc_surface_state(cmd_buffer, size, 32);
|
||||
*bt_state = anv_cmd_buffer_alloc_binding_table(cmd_buffer,
|
||||
bias + surface_count);
|
||||
uint32_t *bt_map = bt_state->map;
|
||||
|
||||
if (bt_state->map == NULL)
|
||||
|
@@ -933,6 +933,9 @@ struct anv_state
|
||||
anv_cmd_buffer_alloc_surface_state(struct anv_cmd_buffer *cmd_buffer,
|
||||
uint32_t size, uint32_t alignment);
|
||||
struct anv_state
|
||||
anv_cmd_buffer_alloc_binding_table(struct anv_cmd_buffer *cmd_buffer,
|
||||
uint32_t entries);
|
||||
struct anv_state
|
||||
anv_cmd_buffer_alloc_dynamic_state(struct anv_cmd_buffer *cmd_buffer,
|
||||
uint32_t size, uint32_t alignment);
|
||||
|
||||
|
Reference in New Issue
Block a user