radv: simplify creating image views for src resolve images
The Vulkan spec says: "If samples is not VK_SAMPLE_COUNT_1_BIT, then imageType must be VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, mipLevels must be equal to 1..." So, the source image is always 2D with no mipmaps. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26316>
This commit is contained in:
committed by
Marge Bot
parent
3816e5dae7
commit
e425f92f3e
@@ -353,8 +353,6 @@ radv_meta_resolve_hardware_image(struct radv_cmd_buffer *cmd_buffer, struct radv
|
||||
assert(vk_image_subresource_layer_count(&src_image->vk, ®ion->srcSubresource) ==
|
||||
vk_image_subresource_layer_count(&dst_image->vk, ®ion->dstSubresource));
|
||||
|
||||
const uint32_t src_base_layer = radv_meta_get_iview_layer(src_image, ®ion->srcSubresource, ®ion->srcOffset);
|
||||
|
||||
const uint32_t dst_base_layer = radv_meta_get_iview_layer(dst_image, ®ion->dstSubresource, ®ion->dstOffset);
|
||||
|
||||
/**
|
||||
@@ -418,14 +416,14 @@ radv_meta_resolve_hardware_image(struct radv_cmd_buffer *cmd_buffer, struct radv
|
||||
&(VkImageViewCreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
|
||||
.image = radv_image_to_handle(src_image),
|
||||
.viewType = radv_meta_get_view_type(src_image),
|
||||
.viewType = VK_IMAGE_VIEW_TYPE_2D,
|
||||
.format = src_image->vk.format,
|
||||
.subresourceRange =
|
||||
{
|
||||
.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
|
||||
.baseMipLevel = region->srcSubresource.mipLevel,
|
||||
.baseMipLevel = 0,
|
||||
.levelCount = 1,
|
||||
.baseArrayLayer = src_base_layer + layer,
|
||||
.baseArrayLayer = region->srcSubresource.baseArrayLayer + layer,
|
||||
.layerCount = 1,
|
||||
},
|
||||
},
|
||||
@@ -828,8 +826,6 @@ void
|
||||
radv_decompress_resolve_src(struct radv_cmd_buffer *cmd_buffer, struct radv_image *src_image,
|
||||
VkImageLayout src_image_layout, const VkImageResolve2 *region)
|
||||
{
|
||||
const uint32_t src_base_layer = radv_meta_get_iview_layer(src_image, ®ion->srcSubresource, ®ion->srcOffset);
|
||||
|
||||
VkImageMemoryBarrier2 barrier = {
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
|
||||
.srcStageMask = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,
|
||||
@@ -841,9 +837,9 @@ radv_decompress_resolve_src(struct radv_cmd_buffer *cmd_buffer, struct radv_imag
|
||||
.image = radv_image_to_handle(src_image),
|
||||
.subresourceRange = (VkImageSubresourceRange){
|
||||
.aspectMask = region->srcSubresource.aspectMask,
|
||||
.baseMipLevel = region->srcSubresource.mipLevel,
|
||||
.baseMipLevel = 0,
|
||||
.levelCount = 1,
|
||||
.baseArrayLayer = src_base_layer,
|
||||
.baseArrayLayer = region->srcSubresource.baseArrayLayer,
|
||||
.layerCount = vk_image_subresource_layer_count(&src_image->vk, ®ion->srcSubresource),
|
||||
}};
|
||||
|
||||
|
||||
@@ -611,8 +611,6 @@ radv_meta_resolve_compute_image(struct radv_cmd_buffer *cmd_buffer, struct radv_
|
||||
assert(vk_image_subresource_layer_count(&src_image->vk, ®ion->srcSubresource) ==
|
||||
vk_image_subresource_layer_count(&dst_image->vk, ®ion->dstSubresource));
|
||||
|
||||
const uint32_t src_base_layer = radv_meta_get_iview_layer(src_image, ®ion->srcSubresource, ®ion->srcOffset);
|
||||
|
||||
const uint32_t dst_base_layer = radv_meta_get_iview_layer(dst_image, ®ion->dstSubresource, ®ion->dstOffset);
|
||||
|
||||
const struct VkExtent3D extent = vk_image_sanitize_extent(&src_image->vk, region->extent);
|
||||
@@ -627,14 +625,14 @@ radv_meta_resolve_compute_image(struct radv_cmd_buffer *cmd_buffer, struct radv_
|
||||
&(VkImageViewCreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
|
||||
.image = radv_image_to_handle(src_image),
|
||||
.viewType = radv_meta_get_view_type(src_image),
|
||||
.viewType = VK_IMAGE_VIEW_TYPE_2D,
|
||||
.format = src_format,
|
||||
.subresourceRange =
|
||||
{
|
||||
.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
|
||||
.baseMipLevel = region->srcSubresource.mipLevel,
|
||||
.baseMipLevel = 0,
|
||||
.levelCount = 1,
|
||||
.baseArrayLayer = src_base_layer + layer,
|
||||
.baseArrayLayer = region->srcSubresource.baseArrayLayer + layer,
|
||||
.layerCount = 1,
|
||||
},
|
||||
},
|
||||
@@ -743,12 +741,12 @@ radv_depth_stencil_resolve_rendering_cs(struct radv_cmd_buffer *cmd_buffer, VkIm
|
||||
&(VkImageViewCreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
|
||||
.image = radv_image_to_handle(src_image),
|
||||
.viewType = radv_meta_get_view_type(src_image),
|
||||
.viewType = VK_IMAGE_VIEW_TYPE_2D,
|
||||
.format = src_iview->vk.format,
|
||||
.subresourceRange =
|
||||
{
|
||||
.aspectMask = aspects,
|
||||
.baseMipLevel = src_iview->vk.base_mip_level,
|
||||
.baseMipLevel = 0,
|
||||
.levelCount = 1,
|
||||
.baseArrayLayer = src_iview->vk.base_array_layer,
|
||||
.layerCount = layer_count,
|
||||
|
||||
@@ -729,8 +729,6 @@ radv_meta_resolve_fragment_image(struct radv_cmd_buffer *cmd_buffer, struct radv
|
||||
assert(vk_image_subresource_layer_count(&src_image->vk, ®ion->srcSubresource) ==
|
||||
vk_image_subresource_layer_count(&dst_image->vk, ®ion->dstSubresource));
|
||||
|
||||
const uint32_t src_base_layer = radv_meta_get_iview_layer(src_image, ®ion->srcSubresource, ®ion->srcOffset);
|
||||
|
||||
const uint32_t dst_base_layer = radv_meta_get_iview_layer(dst_image, ®ion->dstSubresource, ®ion->dstOffset);
|
||||
|
||||
const struct VkExtent3D extent = vk_image_sanitize_extent(&src_image->vk, region->extent);
|
||||
@@ -761,14 +759,14 @@ radv_meta_resolve_fragment_image(struct radv_cmd_buffer *cmd_buffer, struct radv
|
||||
&(VkImageViewCreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
|
||||
.image = radv_image_to_handle(src_image),
|
||||
.viewType = radv_meta_get_view_type(src_image),
|
||||
.viewType = VK_IMAGE_VIEW_TYPE_2D,
|
||||
.format = src_image->vk.format,
|
||||
.subresourceRange =
|
||||
{
|
||||
.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
|
||||
.baseMipLevel = region->srcSubresource.mipLevel,
|
||||
.baseMipLevel = 0,
|
||||
.levelCount = 1,
|
||||
.baseArrayLayer = src_base_layer + layer,
|
||||
.baseArrayLayer = region->srcSubresource.baseArrayLayer + layer,
|
||||
.layerCount = 1,
|
||||
},
|
||||
},
|
||||
@@ -941,7 +939,7 @@ radv_depth_stencil_resolve_rendering_fs(struct radv_cmd_buffer *cmd_buffer, VkIm
|
||||
&(VkImageViewCreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
|
||||
.image = radv_image_to_handle(src_image),
|
||||
.viewType = radv_meta_get_view_type(src_image),
|
||||
.viewType = VK_IMAGE_VIEW_TYPE_2D,
|
||||
.format = src_iview->vk.format,
|
||||
.subresourceRange =
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user