diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index ae9ff9287ae..d25f4647ffd 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -152,7 +152,7 @@ radv_bind_dynamic_state(struct radv_cmd_buffer *cmd_buffer, const struct radv_dy uint64_t copy_mask = src->mask; uint64_t dest_mask = 0; - dest->discard_rectangle.count = src->discard_rectangle.count; + dest->vk.dr.rectangle_count = src->vk.dr.rectangle_count; dest->sample_location.count = src->sample_location.count; if (copy_mask & RADV_DYNAMIC_VIEWPORT) { @@ -190,10 +190,9 @@ radv_bind_dynamic_state(struct radv_cmd_buffer *cmd_buffer, const struct radv_dy } if (copy_mask & RADV_DYNAMIC_DISCARD_RECTANGLE) { - if (memcmp(&dest->discard_rectangle.rectangles, &src->discard_rectangle.rectangles, - src->discard_rectangle.count * sizeof(VkRect2D))) { - typed_memcpy(dest->discard_rectangle.rectangles, src->discard_rectangle.rectangles, - src->discard_rectangle.count); + if (memcmp(&dest->vk.dr.rectangles, &src->vk.dr.rectangles, + src->vk.dr.rectangle_count * sizeof(VkRect2D))) { + typed_memcpy(dest->vk.dr.rectangles, src->vk.dr.rectangles, src->vk.dr.rectangle_count); dest_mask |= RADV_DYNAMIC_DISCARD_RECTANGLE; } } @@ -2079,13 +2078,13 @@ radv_emit_discard_rectangle(struct radv_cmd_buffer *cmd_buffer) { const struct radv_dynamic_state *d = &cmd_buffer->state.dynamic; - if (!d->discard_rectangle.count) + if (!d->vk.dr.rectangle_count) return; radeon_set_context_reg_seq(cmd_buffer->cs, R_028210_PA_SC_CLIPRECT_0_TL, - d->discard_rectangle.count * 2); - for (unsigned i = 0; i < d->discard_rectangle.count; ++i) { - VkRect2D rect = d->discard_rectangle.rectangles[i]; + d->vk.dr.rectangle_count * 2); + for (unsigned i = 0; i < d->vk.dr.rectangle_count; ++i) { + VkRect2D rect = d->vk.dr.rectangles[i]; radeon_emit(cmd_buffer->cs, S_028210_TL_X(rect.offset.x) | S_028210_TL_Y(rect.offset.y)); radeon_emit(cmd_buffer->cs, S_028214_BR_X(rect.offset.x + rect.extent.width) | S_028214_BR_Y(rect.offset.y + rect.extent.height)); @@ -6308,8 +6307,8 @@ radv_CmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer, uint32_t firstDisc assert(firstDiscardRectangle < MAX_DISCARD_RECTANGLES); assert(total_count >= 1 && total_count <= MAX_DISCARD_RECTANGLES); - typed_memcpy(&state->dynamic.discard_rectangle.rectangles[firstDiscardRectangle], - pDiscardRectangles, discardRectangleCount); + typed_memcpy(&state->dynamic.vk.dr.rectangles[firstDiscardRectangle], pDiscardRectangles, + discardRectangleCount); state->dirty |= RADV_CMD_DIRTY_DYNAMIC_DISCARD_RECTANGLE; } diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index bf2a08ca7a4..65070981ffd 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -1637,10 +1637,9 @@ radv_pipeline_init_dynamic_state(struct radv_graphics_pipeline *pipeline, } if (needed_states & RADV_DYNAMIC_DISCARD_RECTANGLE) { - dynamic->discard_rectangle.count = state->dr->rectangle_count; + dynamic->vk.dr.rectangle_count = state->dr->rectangle_count; if (states & RADV_DYNAMIC_DISCARD_RECTANGLE) { - typed_memcpy(dynamic->discard_rectangle.rectangles, state->dr->rectangles, - state->dr->rectangle_count); + typed_memcpy(dynamic->vk.dr.rectangles, state->dr->rectangles, state->dr->rectangle_count); } } diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index 58d18f690bb..90a0f19cbee 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -1298,11 +1298,6 @@ struct radv_streamout_state { bool streamout_enabled; }; -struct radv_discard_rectangle_state { - uint32_t count; - VkRect2D rectangles[MAX_DISCARD_RECTANGLES]; -}; - struct radv_sample_locations_state { VkSampleCountFlagBits per_pixel; VkExtent2D grid_size; @@ -1372,8 +1367,6 @@ struct radv_dynamic_state { uint32_t back; } stencil_reference; - struct radv_discard_rectangle_state discard_rectangle; - struct radv_sample_locations_state sample_location; struct {