mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
vulkan/meta: Add a helper for image view types
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
parent
ecf5c5c46d
commit
c13c6d04d7
2 changed files with 18 additions and 18 deletions
|
|
@ -439,27 +439,10 @@ clear_image_level_layers(struct vk_command_buffer *cmd,
|
|||
VkCommandBuffer _cmd = vk_command_buffer_to_handle(cmd);
|
||||
VkResult result;
|
||||
|
||||
VkImageViewType view_type;
|
||||
switch (image->image_type) {
|
||||
case VK_IMAGE_TYPE_1D:
|
||||
view_type = layer_count == 1 ? VK_IMAGE_VIEW_TYPE_1D :
|
||||
VK_IMAGE_VIEW_TYPE_1D_ARRAY;
|
||||
break;
|
||||
|
||||
case VK_IMAGE_TYPE_2D:
|
||||
case VK_IMAGE_TYPE_3D:
|
||||
view_type = layer_count == 1 ? VK_IMAGE_VIEW_TYPE_2D :
|
||||
VK_IMAGE_VIEW_TYPE_2D_ARRAY;
|
||||
break;
|
||||
|
||||
default:
|
||||
unreachable("Invalid image type");
|
||||
}
|
||||
|
||||
const VkImageViewCreateInfo view_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
|
||||
.image = vk_image_to_handle(image),
|
||||
.viewType = view_type,
|
||||
.viewType = vk_image_render_view_type(image, layer_count),
|
||||
.format = format,
|
||||
.subresourceRange = {
|
||||
.aspectMask = aspects,
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
#ifndef VK_META_PRIVATE_H
|
||||
#define VK_META_PRIVATE_H
|
||||
|
||||
#include "vk_image.h"
|
||||
#include "vk_meta.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
@ -48,6 +49,22 @@ vk_meta_rendering_info_copy(struct vk_meta_rendering_info *dst,
|
|||
dst->stencil_attachment_format = src->stencil_attachment_format;
|
||||
}
|
||||
|
||||
static inline VkImageViewType
|
||||
vk_image_render_view_type(const struct vk_image *image, uint32_t layer_count)
|
||||
{
|
||||
switch (image->image_type) {
|
||||
case VK_IMAGE_TYPE_1D:
|
||||
return layer_count == 1 ? VK_IMAGE_VIEW_TYPE_1D :
|
||||
VK_IMAGE_VIEW_TYPE_1D_ARRAY;
|
||||
case VK_IMAGE_TYPE_2D:
|
||||
case VK_IMAGE_TYPE_3D:
|
||||
return layer_count == 1 ? VK_IMAGE_VIEW_TYPE_2D :
|
||||
VK_IMAGE_VIEW_TYPE_2D_ARRAY;
|
||||
default:
|
||||
unreachable("Invalid image type");
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue