Skip to content

Commit

Permalink
Updated to Vulkan headers 1.3.296
Browse files Browse the repository at this point in the history
Adds support for:
- VK_EXT_device_generated_commands
- VK_EXT_depth_clamp_control
  • Loading branch information
SaschaWillems committed Oct 1, 2024
1 parent bb8d5e2 commit 59ddcbd
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 2 deletions.
58 changes: 58 additions & 0 deletions VulkanDeviceInfoExtensions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -613,6 +613,26 @@ void VulkanDeviceInfoExtensions::readPhysicalProperties_EXT() {
pushProperty2(extension, "nativeUnalignedPerformance", QVariant(bool(extProps->nativeUnalignedPerformance)));
delete extProps;
}
if (extensionSupported("VK_EXT_device_generated_commands")) {
const char* extension("VK_EXT_device_generated_commands");
VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT* extProps = new VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT{};
extProps->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT;
deviceProps2 = initDeviceProperties2(extProps);
vulkanContext.vkGetPhysicalDeviceProperties2KHR(device, &deviceProps2);
pushProperty2(extension, "maxIndirectPipelineCount", QVariant(extProps->maxIndirectPipelineCount));
pushProperty2(extension, "maxIndirectShaderObjectCount", QVariant(extProps->maxIndirectShaderObjectCount));
pushProperty2(extension, "maxIndirectSequenceCount", QVariant(extProps->maxIndirectSequenceCount));
pushProperty2(extension, "maxIndirectCommandsTokenCount", QVariant(extProps->maxIndirectCommandsTokenCount));
pushProperty2(extension, "maxIndirectCommandsTokenOffset", QVariant(extProps->maxIndirectCommandsTokenOffset));
pushProperty2(extension, "maxIndirectCommandsIndirectStride", QVariant(extProps->maxIndirectCommandsIndirectStride));
pushProperty2(extension, "supportedIndirectCommandsInputModes", QVariant(extProps->supportedIndirectCommandsInputModes));
pushProperty2(extension, "supportedIndirectCommandsShaderStages", QVariant(extProps->supportedIndirectCommandsShaderStages));
pushProperty2(extension, "supportedIndirectCommandsShaderStagesPipelineBinding", QVariant(extProps->supportedIndirectCommandsShaderStagesPipelineBinding));
pushProperty2(extension, "supportedIndirectCommandsShaderStagesShaderBinding", QVariant(extProps->supportedIndirectCommandsShaderStagesShaderBinding));
pushProperty2(extension, "deviceGeneratedCommandsTransformFeedback", QVariant(bool(extProps->deviceGeneratedCommandsTransformFeedback)));
pushProperty2(extension, "deviceGeneratedCommandsMultiDrawIndirectCount", QVariant(bool(extProps->deviceGeneratedCommandsMultiDrawIndirectCount)));
delete extProps;
}
}
void VulkanDeviceInfoExtensions::readPhysicalProperties_HUAWEI() {
VkPhysicalDeviceProperties2 deviceProps2{};
Expand Down Expand Up @@ -942,6 +962,15 @@ void VulkanDeviceInfoExtensions::readPhysicalProperties_KHR() {
pushProperty2(extension, "cooperativeMatrixSupportedStages", QVariant(extProps->cooperativeMatrixSupportedStages));
delete extProps;
}
if (extensionSupported("VK_KHR_compute_shader_derivatives")) {
const char* extension("VK_KHR_compute_shader_derivatives");
VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR* extProps = new VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR{};
extProps->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR;
deviceProps2 = initDeviceProperties2(extProps);
vulkanContext.vkGetPhysicalDeviceProperties2KHR(device, &deviceProps2);
pushProperty2(extension, "meshAndTaskShaderDerivatives", QVariant(bool(extProps->meshAndTaskShaderDerivatives)));
delete extProps;
}
if (extensionSupported("VK_KHR_vertex_attribute_divisor")) {
const char* extension("VK_KHR_vertex_attribute_divisor");
VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR* extProps = new VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR{};
Expand Down Expand Up @@ -2226,6 +2255,25 @@ void VulkanDeviceInfoExtensions::readPhysicalFeatures_EXT() {
pushFeature2(extension, "shaderReplicatedComposites", extFeatures->shaderReplicatedComposites);
delete extFeatures;
}
if (extensionSupported("VK_EXT_device_generated_commands")) {
const char* extension("VK_EXT_device_generated_commands");
VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT* extFeatures = new VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT{};
extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT;
deviceFeatures2 = initDeviceFeatures2(extFeatures);
vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2);
pushFeature2(extension, "deviceGeneratedCommands", extFeatures->deviceGeneratedCommands);
pushFeature2(extension, "dynamicGeneratedPipelineLayout", extFeatures->dynamicGeneratedPipelineLayout);
delete extFeatures;
}
if (extensionSupported("VK_EXT_depth_clamp_control")) {
const char* extension("VK_EXT_depth_clamp_control");
VkPhysicalDeviceDepthClampControlFeaturesEXT* extFeatures = new VkPhysicalDeviceDepthClampControlFeaturesEXT{};
extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT;
deviceFeatures2 = initDeviceFeatures2(extFeatures);
vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2);
pushFeature2(extension, "depthClampControl", extFeatures->depthClampControl);
delete extFeatures;
}
}
void VulkanDeviceInfoExtensions::readPhysicalFeatures_HUAWEI() {
VkPhysicalDeviceFeatures2 deviceFeatures2{};
Expand Down Expand Up @@ -2717,6 +2765,16 @@ void VulkanDeviceInfoExtensions::readPhysicalFeatures_KHR() {
pushFeature2(extension, "cooperativeMatrixRobustBufferAccess", extFeatures->cooperativeMatrixRobustBufferAccess);
delete extFeatures;
}
if (extensionSupported("VK_KHR_compute_shader_derivatives")) {
const char* extension("VK_KHR_compute_shader_derivatives");
VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR* extFeatures = new VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR{};
extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR;
deviceFeatures2 = initDeviceFeatures2(extFeatures);
vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2);
pushFeature2(extension, "computeDerivativeGroupQuads", extFeatures->computeDerivativeGroupQuads);
pushFeature2(extension, "computeDerivativeGroupLinear", extFeatures->computeDerivativeGroupLinear);
delete extFeatures;
}
if (extensionSupported("VK_KHR_video_maintenance1")) {
const char* extension("VK_KHR_video_maintenance1");
VkPhysicalDeviceVideoMaintenance1FeaturesKHR* extFeatures = new VkPhysicalDeviceVideoMaintenance1FeaturesKHR{};
Expand Down
2 changes: 1 addition & 1 deletion VulkanDeviceInfoExtensions.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class VulkanDeviceInfoExtensions
void readPhysicalFeatures_VALVE();

public:
const uint32_t vkHeaderVersion = 295;
const uint32_t vkHeaderVersion = 296;
std::vector<Feature2> features2;
std::vector<Property2> properties2;
std::vector<VkExtensionProperties> extensions;
Expand Down
2 changes: 2 additions & 0 deletions extensionlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ VK_EXT_pipeline_library_group_handles
VK_EXT_dynamic_rendering_unused_attachments
VK_EXT_attachment_feedback_loop_dynamic_state
VK_EXT_shader_replicated_composites
VK_EXT_device_generated_commands
VK_EXT_depth_clamp_control
HUAWEI
VK_HUAWEI_subpass_shading
VK_HUAWEI_invocation_mask
Expand Down

0 comments on commit 59ddcbd

Please sign in to comment.