diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c index a7c64cf73a6..e2c7ed32d06 100644 --- a/src/intel/vulkan/anv_blorp.c +++ b/src/intel/vulkan/anv_blorp.c @@ -306,11 +306,11 @@ copy_image(struct anv_cmd_buffer *cmd_buffer, const VkImageCopy2 *region) { VkOffset3D srcOffset = - anv_sanitize_image_offset(src_image->vk.image_type, region->srcOffset); + vk_image_sanitize_offset(&src_image->vk, region->srcOffset); VkOffset3D dstOffset = - anv_sanitize_image_offset(dst_image->vk.image_type, region->dstOffset); + vk_image_sanitize_offset(&dst_image->vk, region->dstOffset); VkExtent3D extent = - anv_sanitize_image_extent(src_image->vk.image_type, region->extent); + vk_image_sanitize_extent(&src_image->vk, region->extent); const uint32_t dst_level = region->dstSubresource.mipLevel; unsigned dst_base_layer, layer_count; @@ -490,11 +490,11 @@ copy_buffer_to_image(struct anv_cmd_buffer *cmd_buffer, image_layout, ISL_AUX_USAGE_NONE, &image.surf); image.offset = - anv_sanitize_image_offset(anv_image->vk.image_type, region->imageOffset); + vk_image_sanitize_offset(&anv_image->vk, region->imageOffset); image.level = region->imageSubresource.mipLevel; VkExtent3D extent = - anv_sanitize_image_extent(anv_image->vk.image_type, region->imageExtent); + vk_image_sanitize_extent(&anv_image->vk, region->imageExtent); if (anv_image->vk.image_type != VK_IMAGE_TYPE_3D) { image.offset.z = region->imageSubresource.baseArrayLayer; extent.depth = diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index c2e7f8edeaf..144b8492e09 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -4226,38 +4226,6 @@ enum isl_format anv_isl_format_for_descriptor_type(const struct anv_device *device, VkDescriptorType type); -static inline VkExtent3D -anv_sanitize_image_extent(const VkImageType imageType, - const VkExtent3D imageExtent) -{ - switch (imageType) { - case VK_IMAGE_TYPE_1D: - return (VkExtent3D) { imageExtent.width, 1, 1 }; - case VK_IMAGE_TYPE_2D: - return (VkExtent3D) { imageExtent.width, imageExtent.height, 1 }; - case VK_IMAGE_TYPE_3D: - return imageExtent; - default: - unreachable("invalid image type"); - } -} - -static inline VkOffset3D -anv_sanitize_image_offset(const VkImageType imageType, - const VkOffset3D imageOffset) -{ - switch (imageType) { - case VK_IMAGE_TYPE_1D: - return (VkOffset3D) { imageOffset.x, 0, 0 }; - case VK_IMAGE_TYPE_2D: - return (VkOffset3D) { imageOffset.x, imageOffset.y, 0 }; - case VK_IMAGE_TYPE_3D: - return imageOffset; - default: - unreachable("invalid image type"); - } -} - static inline uint32_t anv_rasterization_aa_mode(VkPolygonMode raster_mode, VkLineRasterizationModeEXT line_mode) diff --git a/src/vulkan/runtime/vk_image.h b/src/vulkan/runtime/vk_image.h index fe8ed1e493f..95dc3d63803 100644 --- a/src/vulkan/runtime/vk_image.h +++ b/src/vulkan/runtime/vk_image.h @@ -125,6 +125,38 @@ vk_image_subresource_level_count(const struct vk_image *image, image->mip_levels - range->baseMipLevel : range->levelCount; } +static inline VkExtent3D +vk_image_sanitize_extent(const struct vk_image *image, + const VkExtent3D imageExtent) +{ + switch (image->image_type) { + case VK_IMAGE_TYPE_1D: + return (VkExtent3D) { imageExtent.width, 1, 1 }; + case VK_IMAGE_TYPE_2D: + return (VkExtent3D) { imageExtent.width, imageExtent.height, 1 }; + case VK_IMAGE_TYPE_3D: + return imageExtent; + default: + unreachable("invalid image type"); + } +} + +static inline VkOffset3D +vk_image_sanitize_offset(const struct vk_image *image, + const VkOffset3D imageOffset) +{ + switch (image->image_type) { + case VK_IMAGE_TYPE_1D: + return (VkOffset3D) { imageOffset.x, 0, 0 }; + case VK_IMAGE_TYPE_2D: + return (VkOffset3D) { imageOffset.x, imageOffset.y, 0 }; + case VK_IMAGE_TYPE_3D: + return imageOffset; + default: + unreachable("invalid image type"); + } +} + struct vk_image_view { struct vk_object_base base;