mesa/src/virtio/vulkan/vn_descriptor.h

71 lines
2.4 KiB
C

/*
* Copyright 2026 Google LLC
* SPDX-License-Identifier: MIT
*/
#ifndef VN_DESCRIPTOR_H
#define VN_DESCRIPTOR_H
#include "vn_common.h"
enum vn_descriptor_type {
VN_DESCRIPTOR_TYPE_SAMPLER,
VN_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
VN_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
VN_DESCRIPTOR_TYPE_STORAGE_IMAGE,
VN_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
VN_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
VN_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
VN_DESCRIPTOR_TYPE_STORAGE_BUFFER,
VN_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
VN_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
VN_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
VN_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
VN_DESCRIPTOR_TYPE_MUTABLE_EXT,
VN_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
/* add new enum types before this line */
VN_NUM_DESCRIPTOR_TYPES,
};
/* Map VkDescriptorType to contiguous enum vn_descriptor_type */
static enum vn_descriptor_type
vn_descriptor_type(VkDescriptorType type)
{
switch (type) {
case VK_DESCRIPTOR_TYPE_SAMPLER:
return VN_DESCRIPTOR_TYPE_SAMPLER;
case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:
return VN_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:
return VN_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:
return VN_DESCRIPTOR_TYPE_STORAGE_IMAGE;
case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:
return VN_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:
return VN_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER;
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:
return VN_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:
return VN_DESCRIPTOR_TYPE_STORAGE_BUFFER;
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:
return VN_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;
case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:
return VN_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC;
case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
return VN_DESCRIPTOR_TYPE_INPUT_ATTACHMENT;
case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:
return VN_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK;
case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:
return VN_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR;
case VK_DESCRIPTOR_TYPE_MUTABLE_EXT:
return VN_DESCRIPTOR_TYPE_MUTABLE_EXT;
default:
break;
}
UNREACHABLE("bad VkDescriptorType");
}
#endif /* VN_DESCRIPTOR_H */