From d21e7e5a9f19fd0735cc27ff24ae2bc8007f0273 Mon Sep 17 00:00:00 2001 From: Nanley Chery Date: Wed, 28 May 2025 13:52:35 -0400 Subject: [PATCH] anv: Query sampler offset in set_image_clear_color() Enables set_image_clear_color() to be used in transition_depth_buffer() in a future commit. Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/vulkan/genX_cmd_buffer.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index f704dd7c1ce..b889fb2da44 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -966,12 +966,17 @@ set_image_clear_color(struct anv_cmd_buffer *cmd_buffer, uint32_t *dw = anv_batch_emitn(&cmd_buffer->batch, 3 + 6, GENX(MI_STORE_DATA_IMM), .StoreQword = true, .Address = addr); + + bool is_depth = aspect & VK_IMAGE_ASPECT_DEPTH_BIT; + uint64_t sampler_offset = + isl_get_sampler_clear_field_offset(cmd_buffer->device->info, + image->view_formats[i], is_depth); dw[3] = clear_color.u32[0]; dw[4] = clear_color.u32[1]; dw[5] = clear_color.u32[2]; dw[6] = clear_color.u32[3]; - dw[7] = pixel[0]; - dw[8] = pixel[1]; + dw[3 + sampler_offset / 4] = pixel[0]; + dw[4 + sampler_offset / 4] = pixel[1]; #else assert(cmd_buffer->device->isl_dev.ss.clear_color_state_size == 0); assert(cmd_buffer->device->isl_dev.ss.clear_value_size == 16);