Skip to content

Commit ea12d66

Browse files
authored
Add quad control device extensions (#124)
1 parent 655d955 commit ea12d66

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

src/vulkan/vk-api.h

+10
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,16 @@ struct VulkanExtendedFeatureProperties
334334
VkPhysicalDeviceRayTracingValidationFeaturesNV rayTracingValidationFeatures = {
335335
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV
336336
};
337+
338+
// Maximal reconvergence features.
339+
VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR shaderMaximalReconvergenceFeatures{
340+
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
341+
};
342+
343+
// Quad control features.
344+
VkPhysicalDeviceShaderQuadControlFeaturesKHR shaderQuadControlFeatures{
345+
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
346+
};
337347
};
338348

339349
struct VulkanApi

src/vulkan/vk-device.cpp

+21
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,12 @@ Result DeviceImpl::initVulkanInstanceAndDevice(const NativeHandle* handles, bool
547547
extendedFeatures.formats4444Features.pNext = deviceFeatures2.pNext;
548548
deviceFeatures2.pNext = &extendedFeatures.formats4444Features;
549549

550+
extendedFeatures.shaderMaximalReconvergenceFeatures.pNext = deviceFeatures2.pNext;
551+
deviceFeatures2.pNext = &extendedFeatures.shaderMaximalReconvergenceFeatures;
552+
553+
extendedFeatures.shaderQuadControlFeatures.pNext = deviceFeatures2.pNext;
554+
deviceFeatures2.pNext = &extendedFeatures.shaderQuadControlFeatures;
555+
550556
if (VK_MAKE_VERSION(majorVersion, minorVersion, 0) >= VK_API_VERSION_1_2)
551557
{
552558
extendedFeatures.vulkan12Features.pNext = deviceFeatures2.pNext;
@@ -773,6 +779,21 @@ Result DeviceImpl::initVulkanInstanceAndDevice(const NativeHandle* handles, bool
773779
);
774780
}
775781

782+
SIMPLE_EXTENSION_FEATURE(
783+
extendedFeatures.shaderMaximalReconvergenceFeatures,
784+
shaderMaximalReconvergence,
785+
VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME,
786+
"shader-maximal-reconvergence"
787+
);
788+
789+
SIMPLE_EXTENSION_FEATURE(
790+
extendedFeatures.shaderQuadControlFeatures,
791+
shaderQuadControl,
792+
VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME,
793+
"shader-quad-control"
794+
);
795+
796+
776797
#undef SIMPLE_EXTENSION_FEATURE
777798

778799
if (extendedFeatures.vulkan12Features.shaderBufferInt64Atomics)

0 commit comments

Comments
 (0)