Mesa (main): vulkan,anv: Move the image offset/extent sanitize helpers to common code
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jun 7 18:25:03 UTC 2022
Module: Mesa
Branch: main
Commit: 2c2b3e68e13ee3c1b2b2e47d35e132cd4ded902d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2c2b3e68e13ee3c1b2b2e47d35e132cd4ded902d
Author: Jason Ekstrand <jason at jlekstrand.net>
Date: Sat Jun 4 22:22:15 2022 -0500
vulkan,anv: Move the image offset/extent sanitize helpers to common code
Reviewed-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16873>
---
src/intel/vulkan/anv_blorp.c | 10 +++++-----
src/intel/vulkan/anv_private.h | 32 --------------------------------
src/vulkan/runtime/vk_image.h | 32 ++++++++++++++++++++++++++++++++
3 files changed, 37 insertions(+), 37 deletions(-)
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;
More information about the mesa-commit
mailing list