radv: slightly rework initializing the default graphics state
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

All these parameters are only used for graphics.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41136>
This commit is contained in:
Samuel Pitoiset 2026-04-23 17:06:21 +02:00 committed by Marge Bot
parent 461154fd5c
commit 669d3915c6

View file

@ -7800,11 +7800,32 @@ radv_handle_rendering_image_transition(struct radv_cmd_buffer *cmd_buffer, struc
}
static void
radv_init_default_dynamic_graphics_state(struct radv_cmd_buffer *cmd_buffer)
radv_init_default_state(struct radv_cmd_buffer *cmd_buffer)
{
vk_dynamic_graphics_state_init(&cmd_buffer->state.dynamic.vk);
const struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
const struct radv_physical_device *pdev = radv_device_physical(device);
cmd_buffer->state.dynamic.color_write_enable = 0xffffffffu;
cmd_buffer->state.predication_type = -1;
if (cmd_buffer->qf == RADV_QUEUE_GENERAL) {
vk_dynamic_graphics_state_init(&cmd_buffer->state.dynamic.vk);
cmd_buffer->state.dynamic.color_write_enable = 0xffffffffu;
cmd_buffer->state.last_index_type = -1;
cmd_buffer->state.last_primitive_restart_en = pdev->info.gfx_level >= GFX11 ? false : -1;
cmd_buffer->state.last_num_instances = -1;
cmd_buffer->state.last_first_instance = -1;
cmd_buffer->state.last_drawid = -1;
cmd_buffer->state.last_subpass_color_count = MAX_RTS;
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_GUARDBAND | RADV_CMD_DIRTY_OCCLUSION_QUERY |
RADV_CMD_DIRTY_DB_SHADER_CONTROL | RADV_CMD_DIRTY_FRAGMENT_OUTPUT;
if (pdev->info.rbplus_allowed)
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_RBPLUS;
cmd_buffer->state.dirty_dynamic |= RADV_DYNAMIC_ALL;
}
}
VKAPI_ATTR VkResult VKAPI_CALL
@ -7820,25 +7841,9 @@ radv_BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBegi
if (cmd_buffer->qf == RADV_QUEUE_SPARSE)
return result;
cmd_buffer->state.last_index_type = -1;
cmd_buffer->state.last_primitive_restart_en = pdev->info.gfx_level >= GFX11 ? false : -1;
cmd_buffer->state.last_num_instances = -1;
cmd_buffer->state.last_first_instance = -1;
cmd_buffer->state.last_drawid = -1;
cmd_buffer->state.last_subpass_color_count = MAX_RTS;
cmd_buffer->state.predication_type = -1;
cmd_buffer->usage_flags = pBeginInfo->flags;
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_GUARDBAND | RADV_CMD_DIRTY_OCCLUSION_QUERY |
RADV_CMD_DIRTY_DB_SHADER_CONTROL | RADV_CMD_DIRTY_FRAGMENT_OUTPUT;
if (pdev->info.rbplus_allowed)
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_RBPLUS;
cmd_buffer->state.dirty_dynamic |= RADV_DYNAMIC_ALL;
if (cmd_buffer->qf == RADV_QUEUE_GENERAL)
radv_init_default_dynamic_graphics_state(cmd_buffer);
radv_init_default_state(cmd_buffer);
if (cmd_buffer->qf == RADV_QUEUE_COMPUTE || device->vk.enabled_features.taskShader) {
uint32_t pred_value = 0;