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;
|
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
|
struct anv_state
|
||||||
anv_cmd_buffer_alloc_dynamic_state(struct anv_cmd_buffer *cmd_buffer,
|
anv_cmd_buffer_alloc_dynamic_state(struct anv_cmd_buffer *cmd_buffer,
|
||||||
uint32_t size, uint32_t alignment)
|
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_framebuffer *fb = cmd_buffer->state.framebuffer;
|
||||||
struct anv_subpass *subpass = cmd_buffer->state.subpass;
|
struct anv_subpass *subpass = cmd_buffer->state.subpass;
|
||||||
struct anv_pipeline_layout *layout;
|
struct anv_pipeline_layout *layout;
|
||||||
uint32_t attachments, bias, size;
|
uint32_t attachments, bias;
|
||||||
|
|
||||||
if (stage == VK_SHADER_STAGE_COMPUTE)
|
if (stage == VK_SHADER_STAGE_COMPUTE)
|
||||||
layout = cmd_buffer->state.compute_pipeline->layout;
|
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)
|
if (attachments + surface_count == 0)
|
||||||
return VK_SUCCESS;
|
return VK_SUCCESS;
|
||||||
|
|
||||||
size = (bias + surface_count) * sizeof(uint32_t);
|
*bt_state = anv_cmd_buffer_alloc_binding_table(cmd_buffer,
|
||||||
*bt_state = anv_cmd_buffer_alloc_surface_state(cmd_buffer, size, 32);
|
bias + surface_count);
|
||||||
uint32_t *bt_map = bt_state->map;
|
uint32_t *bt_map = bt_state->map;
|
||||||
|
|
||||||
if (bt_state->map == NULL)
|
if (bt_state->map == NULL)
|
||||||
|
@@ -933,6 +933,9 @@ struct anv_state
|
|||||||
anv_cmd_buffer_alloc_surface_state(struct anv_cmd_buffer *cmd_buffer,
|
anv_cmd_buffer_alloc_surface_state(struct anv_cmd_buffer *cmd_buffer,
|
||||||
uint32_t size, uint32_t alignment);
|
uint32_t size, uint32_t alignment);
|
||||||
struct anv_state
|
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,
|
anv_cmd_buffer_alloc_dynamic_state(struct anv_cmd_buffer *cmd_buffer,
|
||||||
uint32_t size, uint32_t alignment);
|
uint32_t size, uint32_t alignment);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user