summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/anv_image.c
diff options
context:
space:
mode:
authorNanley Chery <nanley.g.chery@intel.com>2016-03-22 10:53:37 -0700
committerNanley Chery <nanley.g.chery@intel.com>2016-03-24 16:15:00 -0700
commita5dc3c0f02aa523d1d3d123b62b9a187821079fe (patch)
tree36c486b5d659ebdbbaa96694ecabecf21770ff8c /src/intel/vulkan/anv_image.c
parent20417b2cb05ff0f710eb6b6fbd9299ba915f8fc1 (diff)
downloadexternal_mesa3d-a5dc3c0f02aa523d1d3d123b62b9a187821079fe.zip
external_mesa3d-a5dc3c0f02aa523d1d3d123b62b9a187821079fe.tar.gz
external_mesa3d-a5dc3c0f02aa523d1d3d123b62b9a187821079fe.tar.bz2
anv: Sanitize Image extents and offsets
Prepare Image extents and offsets for internal consumption by assigning the default values implicitly defned by the spec. Fixes textures on several Vulkan demos in which the VkImageCopy depth is set to zero when copying a 2D image. v2 (Jason Ekstrand): Replace "prep" with "sanitize" Make function static inline Pass structs instead of pointers Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
Diffstat (limited to 'src/intel/vulkan/anv_image.c')
-rw-r--r--src/intel/vulkan/anv_image.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index 143a084..b47425b 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -124,30 +124,16 @@ make_surface(const struct anv_device *dev,
struct anv_surface *anv_surf = get_surface(image, aspect);
- VkExtent3D extent;
- switch (vk_info->imageType) {
- case VK_IMAGE_TYPE_1D:
- extent = (VkExtent3D) { vk_info->extent.width, 1, 1 };
- break;
- case VK_IMAGE_TYPE_2D:
- extent = (VkExtent3D) { vk_info->extent.width, vk_info->extent.height, 1 };
- break;
- case VK_IMAGE_TYPE_3D:
- extent = vk_info->extent;
- break;
- default:
- unreachable("invalid image type");
- }
-
- image->extent = extent;
+ image->extent = anv_sanitize_image_extent(vk_info->imageType,
+ vk_info->extent);
ok = isl_surf_init(&dev->isl_dev, &anv_surf->isl,
.dim = vk_to_isl_surf_dim[vk_info->imageType],
.format = anv_get_isl_format(vk_info->format, aspect,
vk_info->tiling, NULL),
- .width = extent.width,
- .height = extent.height,
- .depth = extent.depth,
+ .width = image->extent.width,
+ .height = image->extent.height,
+ .depth = image->extent.depth,
.levels = vk_info->mipLevels,
.array_len = vk_info->arrayLayers,
.samples = vk_info->samples,