Skip to content

Commit e598eef

Browse files
authored
Add all of the 1.1 - 1.4 vulkan features to api-query (#222)
This defines all of the features enums for vulkan 1.1 through 1.4, and wires them up so that api-query can list which ones are available.
1 parent 191469b commit e598eef

File tree

2 files changed

+115
-1
lines changed

2 files changed

+115
-1
lines changed

lib/API/VK/Device.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,16 @@ class VKDevice : public offloadtest::Device {
181181
Features11.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES;
182182
VkPhysicalDeviceVulkan12Features Features12{};
183183
Features12.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;
184+
VkPhysicalDeviceVulkan13Features Features13{};
185+
Features13.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES;
186+
VkPhysicalDeviceVulkan14Features Features14{};
187+
Features14.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES;
184188

185189
Features.pNext = &Features11;
186190
Features11.pNext = &Features12;
191+
Features12.pNext = &Features13;
192+
Features13.pNext = &Features14;
193+
Features14.pNext = NULL;
187194
vkGetPhysicalDeviceFeatures2(Device, &Features);
188195

189196
Caps.insert(std::make_pair(
@@ -202,10 +209,15 @@ class VKDevice : public offloadtest::Device {
202209
#define VULKAN11_FEATURE_BOOL(Name) \
203210
Caps.insert( \
204211
std::make_pair(#Name, make_capability<bool>(#Name, Features11.Name)));
205-
#include "VKFeatures.def"
206212
#define VULKAN12_FEATURE_BOOL(Name) \
207213
Caps.insert( \
208214
std::make_pair(#Name, make_capability<bool>(#Name, Features12.Name)));
215+
#define VULKAN13_FEATURE_BOOL(Name) \
216+
Caps.insert( \
217+
std::make_pair(#Name, make_capability<bool>(#Name, Features13.Name)));
218+
#define VULKAN14_FEATURE_BOOL(Name) \
219+
Caps.insert( \
220+
std::make_pair(#Name, make_capability<bool>(#Name, Features14.Name)));
209221
#include "VKFeatures.def"
210222
}
211223

lib/API/VK/VKFeatures.def

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,112 @@ VULKAN_FEATURE_BOOL(inheritedQueries)
5959
#endif
6060

6161
#ifdef VULKAN11_FEATURE_BOOL
62+
VULKAN11_FEATURE_BOOL(storageBuffer16BitAccess)
63+
VULKAN11_FEATURE_BOOL(uniformAndStorageBuffer16BitAccess)
64+
VULKAN11_FEATURE_BOOL(storagePushConstant16)
65+
VULKAN11_FEATURE_BOOL(storageInputOutput16)
66+
VULKAN11_FEATURE_BOOL(multiview)
67+
VULKAN11_FEATURE_BOOL(multiviewGeometryShader)
68+
VULKAN11_FEATURE_BOOL(multiviewTessellationShader)
69+
VULKAN11_FEATURE_BOOL(variablePointersStorageBuffer)
70+
VULKAN11_FEATURE_BOOL(variablePointers)
71+
VULKAN11_FEATURE_BOOL(protectedMemory)
72+
VULKAN11_FEATURE_BOOL(samplerYcbcrConversion)
73+
VULKAN11_FEATURE_BOOL(shaderDrawParameters)
6274
#undef VULKAN11_FEATURE_BOOL
6375
#endif
6476

6577
#ifdef VULKAN12_FEATURE_BOOL
78+
VULKAN12_FEATURE_BOOL(samplerMirrorClampToEdge)
79+
VULKAN12_FEATURE_BOOL(drawIndirectCount)
80+
VULKAN12_FEATURE_BOOL(storageBuffer8BitAccess)
81+
VULKAN12_FEATURE_BOOL(uniformAndStorageBuffer8BitAccess)
82+
VULKAN12_FEATURE_BOOL(storagePushConstant8)
83+
VULKAN12_FEATURE_BOOL(shaderBufferInt64Atomics)
84+
VULKAN12_FEATURE_BOOL(shaderSharedInt64Atomics)
6685
VULKAN12_FEATURE_BOOL(shaderFloat16)
86+
VULKAN12_FEATURE_BOOL(shaderInt8)
87+
VULKAN12_FEATURE_BOOL(descriptorIndexing)
88+
VULKAN12_FEATURE_BOOL(shaderInputAttachmentArrayDynamicIndexing)
89+
VULKAN12_FEATURE_BOOL(shaderUniformTexelBufferArrayDynamicIndexing)
90+
VULKAN12_FEATURE_BOOL(shaderStorageTexelBufferArrayDynamicIndexing)
91+
VULKAN12_FEATURE_BOOL(shaderUniformBufferArrayNonUniformIndexing)
92+
VULKAN12_FEATURE_BOOL(shaderSampledImageArrayNonUniformIndexing)
93+
VULKAN12_FEATURE_BOOL(shaderStorageBufferArrayNonUniformIndexing)
94+
VULKAN12_FEATURE_BOOL(shaderStorageImageArrayNonUniformIndexing)
95+
VULKAN12_FEATURE_BOOL(shaderInputAttachmentArrayNonUniformIndexing)
96+
VULKAN12_FEATURE_BOOL(shaderUniformTexelBufferArrayNonUniformIndexing)
97+
VULKAN12_FEATURE_BOOL(shaderStorageTexelBufferArrayNonUniformIndexing)
98+
VULKAN12_FEATURE_BOOL(descriptorBindingUniformBufferUpdateAfterBind)
99+
VULKAN12_FEATURE_BOOL(descriptorBindingSampledImageUpdateAfterBind)
100+
VULKAN12_FEATURE_BOOL(descriptorBindingStorageImageUpdateAfterBind)
101+
VULKAN12_FEATURE_BOOL(descriptorBindingStorageBufferUpdateAfterBind)
102+
VULKAN12_FEATURE_BOOL(descriptorBindingUniformTexelBufferUpdateAfterBind)
103+
VULKAN12_FEATURE_BOOL(descriptorBindingStorageTexelBufferUpdateAfterBind)
104+
VULKAN12_FEATURE_BOOL(descriptorBindingUpdateUnusedWhilePending)
105+
VULKAN12_FEATURE_BOOL(descriptorBindingPartiallyBound)
106+
VULKAN12_FEATURE_BOOL(descriptorBindingVariableDescriptorCount)
107+
VULKAN12_FEATURE_BOOL(runtimeDescriptorArray)
108+
VULKAN12_FEATURE_BOOL(samplerFilterMinmax)
109+
VULKAN12_FEATURE_BOOL(scalarBlockLayout)
110+
VULKAN12_FEATURE_BOOL(imagelessFramebuffer)
111+
VULKAN12_FEATURE_BOOL(uniformBufferStandardLayout)
112+
VULKAN12_FEATURE_BOOL(shaderSubgroupExtendedTypes)
113+
VULKAN12_FEATURE_BOOL(separateDepthStencilLayouts)
114+
VULKAN12_FEATURE_BOOL(hostQueryReset)
115+
VULKAN12_FEATURE_BOOL(timelineSemaphore)
116+
VULKAN12_FEATURE_BOOL(bufferDeviceAddress)
117+
VULKAN12_FEATURE_BOOL(bufferDeviceAddressCaptureReplay)
118+
VULKAN12_FEATURE_BOOL(bufferDeviceAddressMultiDevice)
119+
VULKAN12_FEATURE_BOOL(vulkanMemoryModel)
120+
VULKAN12_FEATURE_BOOL(vulkanMemoryModelDeviceScope)
121+
VULKAN12_FEATURE_BOOL(vulkanMemoryModelAvailabilityVisibilityChains)
122+
VULKAN12_FEATURE_BOOL(shaderOutputViewportIndex)
123+
VULKAN12_FEATURE_BOOL(shaderOutputLayer)
124+
VULKAN12_FEATURE_BOOL(subgroupBroadcastDynamicId)
67125
#undef VULKAN12_FEATURE_BOOL
68126
#endif
127+
128+
#ifdef VULKAN13_FEATURE_BOOL
129+
VULKAN13_FEATURE_BOOL(robustImageAccess)
130+
VULKAN13_FEATURE_BOOL(inlineUniformBlock)
131+
VULKAN13_FEATURE_BOOL(descriptorBindingInlineUniformBlockUpdateAfterBind)
132+
VULKAN13_FEATURE_BOOL(pipelineCreationCacheControl)
133+
VULKAN13_FEATURE_BOOL(privateData)
134+
VULKAN13_FEATURE_BOOL(shaderDemoteToHelperInvocation)
135+
VULKAN13_FEATURE_BOOL(shaderTerminateInvocation)
136+
VULKAN13_FEATURE_BOOL(subgroupSizeControl)
137+
VULKAN13_FEATURE_BOOL(computeFullSubgroups)
138+
VULKAN13_FEATURE_BOOL(synchronization2)
139+
VULKAN13_FEATURE_BOOL(textureCompressionASTC_HDR)
140+
VULKAN13_FEATURE_BOOL(shaderZeroInitializeWorkgroupMemory)
141+
VULKAN13_FEATURE_BOOL(dynamicRendering)
142+
VULKAN13_FEATURE_BOOL(shaderIntegerDotProduct)
143+
VULKAN13_FEATURE_BOOL(maintenance4)
144+
#undef VULKAN13_FEATURE_BOOL
145+
#endif
146+
147+
#ifdef VULKAN14_FEATURE_BOOL
148+
VULKAN14_FEATURE_BOOL(globalPriorityQuery)
149+
VULKAN14_FEATURE_BOOL(shaderSubgroupRotate)
150+
VULKAN14_FEATURE_BOOL(shaderSubgroupRotateClustered)
151+
VULKAN14_FEATURE_BOOL(shaderFloatControls2)
152+
VULKAN14_FEATURE_BOOL(shaderExpectAssume)
153+
VULKAN14_FEATURE_BOOL(rectangularLines)
154+
VULKAN14_FEATURE_BOOL(bresenhamLines)
155+
VULKAN14_FEATURE_BOOL(smoothLines)
156+
VULKAN14_FEATURE_BOOL(stippledRectangularLines)
157+
VULKAN14_FEATURE_BOOL(stippledBresenhamLines)
158+
VULKAN14_FEATURE_BOOL(stippledSmoothLines)
159+
VULKAN14_FEATURE_BOOL(vertexAttributeInstanceRateDivisor)
160+
VULKAN14_FEATURE_BOOL(vertexAttributeInstanceRateZeroDivisor)
161+
VULKAN14_FEATURE_BOOL(indexTypeUint8)
162+
VULKAN14_FEATURE_BOOL(dynamicRenderingLocalRead)
163+
VULKAN14_FEATURE_BOOL(maintenance5)
164+
VULKAN14_FEATURE_BOOL(maintenance6)
165+
VULKAN14_FEATURE_BOOL(pipelineProtectedAccess)
166+
VULKAN14_FEATURE_BOOL(pipelineRobustness)
167+
VULKAN14_FEATURE_BOOL(hostImageCopy)
168+
VULKAN14_FEATURE_BOOL(pushDescriptor)
169+
#undef VULKAN14_FEATURE_BOOL
170+
#endif

0 commit comments

Comments
 (0)