summaryrefslogtreecommitdiff
path: root/tools/gfx/vulkan/vk-api.h
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2021-07-09 11:00:44 -0700
committerGitHub <noreply@github.com>2021-07-09 11:00:44 -0700
commitfa565f96823f3985cffa3a899742fdf1449d5876 (patch)
treee8aeddb87cd077bf9b28ca4b799756c0ee77e48a /tools/gfx/vulkan/vk-api.h
parent09a251e0f3a31c826eaa91eef64b04eb01c4393a (diff)
Enable testing with Swiftshader. (#1906)
Diffstat (limited to 'tools/gfx/vulkan/vk-api.h')
-rw-r--r--tools/gfx/vulkan/vk-api.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/tools/gfx/vulkan/vk-api.h b/tools/gfx/vulkan/vk-api.h
index 5d044944f..746648470 100644
--- a/tools/gfx/vulkan/vk-api.h
+++ b/tools/gfx/vulkan/vk-api.h
@@ -191,6 +191,44 @@ namespace gfx {
#define VK_API_DECLARE_PROC(NAME) PFN_##NAME NAME = nullptr;
+
+struct VulkanExtendedFeatureProperties
+{
+ // Float16 features
+ VkPhysicalDeviceFloat16Int8FeaturesKHR float16Features = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR};
+ // 16 bit storage features
+ VkPhysicalDevice16BitStorageFeatures storage16BitFeatures = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR};
+ // AtomicInt64 features
+ VkPhysicalDeviceShaderAtomicInt64FeaturesKHR atomicInt64Features = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR};
+ // Atomic Float features
+ VkPhysicalDeviceShaderAtomicFloatFeaturesEXT atomicFloatFeatures = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT};
+ // Timeline Semaphore features
+ VkPhysicalDeviceTimelineSemaphoreFeatures timelineFeatures = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES};
+ // Extended dynamic state features
+ VkPhysicalDeviceExtendedDynamicStateFeaturesEXT extendedDynamicStateFeatures = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT};
+ // Subgroup extended type features
+ VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures shaderSubgroupExtendedTypeFeatures = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES};
+ // Acceleration structure features
+ VkPhysicalDeviceAccelerationStructureFeaturesKHR accelerationStructureFeatures = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR};
+ // Ray query (inline ray-tracing) features
+ VkPhysicalDeviceRayQueryFeaturesKHR rayQueryFeatures = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR};
+ // Buffer device address features
+ VkPhysicalDeviceBufferDeviceAddressFeatures bufferDeviceAddressFeatures = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES};
+ // Inline uniform block features
+ VkPhysicalDeviceInlineUniformBlockFeaturesEXT inlineUniformBlockFeatures = {
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES};
+};
+
struct VulkanApi
{
VK_API_ALL_PROCS(VK_API_DECLARE_PROC)
@@ -232,6 +270,7 @@ struct VulkanApi
VkPhysicalDeviceProperties m_deviceProperties;
VkPhysicalDeviceFeatures m_deviceFeatures;
VkPhysicalDeviceMemoryProperties m_deviceMemoryProperties;
+ VulkanExtendedFeatureProperties m_extendedFeatures;
};
} // renderer_test