mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-06 07:50:30 +01:00
radv: move vertex binding out of cmd state.
This isn't required to be cleared, since buffers are only linked by vertex elements, so if elements are clear then no buffers should be referenced. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
7365626d78
commit
b48063a2f2
2 changed files with 4 additions and 4 deletions
|
|
@ -1790,13 +1790,13 @@ radv_cmd_buffer_update_vertex_descriptors(struct radv_cmd_buffer *cmd_buffer, bo
|
|||
uint32_t *desc = &((uint32_t *)vb_ptr)[i * 4];
|
||||
uint32_t offset;
|
||||
int vb = velems->binding[i];
|
||||
struct radv_buffer *buffer = cmd_buffer->state.vertex_bindings[vb].buffer;
|
||||
struct radv_buffer *buffer = cmd_buffer->vertex_bindings[vb].buffer;
|
||||
uint32_t stride = cmd_buffer->state.pipeline->binding_stride[vb];
|
||||
|
||||
device->ws->cs_add_buffer(cmd_buffer->cs, buffer->bo, 8);
|
||||
va = radv_buffer_get_va(buffer->bo);
|
||||
|
||||
offset = cmd_buffer->state.vertex_bindings[vb].offset + velems->offset[i];
|
||||
offset = cmd_buffer->vertex_bindings[vb].offset + velems->offset[i];
|
||||
va += offset + buffer->offset;
|
||||
desc[0] = va;
|
||||
desc[1] = S_008F04_BASE_ADDRESS_HI(va >> 32) | S_008F04_STRIDE(stride);
|
||||
|
|
@ -2256,7 +2256,7 @@ void radv_CmdBindVertexBuffers(
|
|||
const VkDeviceSize* pOffsets)
|
||||
{
|
||||
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
struct radv_vertex_binding *vb = cmd_buffer->state.vertex_bindings;
|
||||
struct radv_vertex_binding *vb = cmd_buffer->vertex_bindings;
|
||||
bool changed = false;
|
||||
|
||||
/* We have to defer setting up vertex buffer since we need the buffer
|
||||
|
|
|
|||
|
|
@ -822,7 +822,6 @@ struct radv_cmd_state {
|
|||
struct radv_render_pass * pass;
|
||||
const struct radv_subpass * subpass;
|
||||
struct radv_dynamic_state dynamic;
|
||||
struct radv_vertex_binding vertex_bindings[MAX_VBS];
|
||||
struct radv_descriptor_set * descriptors[MAX_SETS];
|
||||
struct radv_attachment_state * attachments;
|
||||
VkRect2D render_area;
|
||||
|
|
@ -871,6 +870,7 @@ struct radv_cmd_buffer {
|
|||
VkCommandBufferLevel level;
|
||||
struct radeon_winsys_cs *cs;
|
||||
struct radv_cmd_state state;
|
||||
struct radv_vertex_binding vertex_bindings[MAX_VBS];
|
||||
uint32_t queue_family_index;
|
||||
|
||||
uint8_t push_constants[MAX_PUSH_CONSTANTS_SIZE];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue