Skip to content

Commit

Permalink
Updated to Vulkan Headers 1.3.273
Browse files Browse the repository at this point in the history
Adds support for:
- VK_ARM_render_pass_striped
- VK_KHR_vertex_attribute_divisor
  • Loading branch information
SaschaWillems committed Dec 9, 2023
1 parent aa97589 commit 37a0069
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 2 deletions.
39 changes: 39 additions & 0 deletions VulkanDeviceInfoExtensions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,16 @@ void VulkanDeviceInfoExtensions::readPhysicalProperties_ARM() {
pushProperty2(extension, "schedulingControlsFlags", QVariant::fromValue(extProps->schedulingControlsFlags));
delete extProps;
}
if (extensionSupported("VK_ARM_render_pass_striped")) {
const char* extension("VK_ARM_render_pass_striped");
VkPhysicalDeviceRenderPassStripedPropertiesARM* extProps = new VkPhysicalDeviceRenderPassStripedPropertiesARM{};
extProps->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM;
deviceProps2 = initDeviceProperties2(extProps);
vulkanContext.vkGetPhysicalDeviceProperties2KHR(device, &deviceProps2);
pushProperty2(extension, "renderPassStripeGranularity", QVariant::fromValue(QVariantList({ extProps->renderPassStripeGranularity.width, extProps->renderPassStripeGranularity.height })));
pushProperty2(extension, "maxRenderPassStripes", QVariant(extProps->maxRenderPassStripes));
delete extProps;
}
if (extensionSupported("VK_ARM_shader_core_builtins")) {
const char* extension("VK_ARM_shader_core_builtins");
VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM* extProps = new VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM{};
Expand Down Expand Up @@ -900,6 +910,16 @@ void VulkanDeviceInfoExtensions::readPhysicalProperties_KHR() {
pushProperty2(extension, "cooperativeMatrixSupportedStages", QVariant(extProps->cooperativeMatrixSupportedStages));
delete extProps;
}
if (extensionSupported("VK_KHR_vertex_attribute_divisor")) {
const char* extension("VK_KHR_vertex_attribute_divisor");
VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR* extProps = new VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR{};
extProps->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR;
deviceProps2 = initDeviceProperties2(extProps);
vulkanContext.vkGetPhysicalDeviceProperties2KHR(device, &deviceProps2);
pushProperty2(extension, "maxVertexAttribDivisor", QVariant(extProps->maxVertexAttribDivisor));
pushProperty2(extension, "supportsNonZeroFirstInstance", QVariant(bool(extProps->supportsNonZeroFirstInstance)));
delete extProps;
}
}
void VulkanDeviceInfoExtensions::readPhysicalProperties_MSFT() {
VkPhysicalDeviceProperties2 deviceProps2{};
Expand Down Expand Up @@ -1227,6 +1247,15 @@ void VulkanDeviceInfoExtensions::readPhysicalFeatures_ARM() {
pushFeature2(extension, "schedulingControls", extFeatures->schedulingControls);
delete extFeatures;
}
if (extensionSupported("VK_ARM_render_pass_striped")) {
const char* extension("VK_ARM_render_pass_striped");
VkPhysicalDeviceRenderPassStripedFeaturesARM* extFeatures = new VkPhysicalDeviceRenderPassStripedFeaturesARM{};
extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM;
deviceFeatures2 = initDeviceFeatures2(extFeatures);
vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2);
pushFeature2(extension, "renderPassStriped", extFeatures->renderPassStriped);
delete extFeatures;
}
if (extensionSupported("VK_ARM_shader_core_builtins")) {
const char* extension("VK_ARM_shader_core_builtins");
VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* extFeatures = new VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM{};
Expand Down Expand Up @@ -2523,6 +2552,16 @@ void VulkanDeviceInfoExtensions::readPhysicalFeatures_KHR() {
pushFeature2(extension, "cooperativeMatrixRobustBufferAccess", extFeatures->cooperativeMatrixRobustBufferAccess);
delete extFeatures;
}
if (extensionSupported("VK_KHR_vertex_attribute_divisor")) {
const char* extension("VK_KHR_vertex_attribute_divisor");
VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR* extFeatures = new VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR{};
extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR;
deviceFeatures2 = initDeviceFeatures2(extFeatures);
vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2);
pushFeature2(extension, "vertexAttributeInstanceRateDivisor", extFeatures->vertexAttributeInstanceRateDivisor);
pushFeature2(extension, "vertexAttributeInstanceRateZeroDivisor", extFeatures->vertexAttributeInstanceRateZeroDivisor);
delete extFeatures;
}
}
void VulkanDeviceInfoExtensions::readPhysicalFeatures_NV() {
VkPhysicalDeviceFeatures2 deviceFeatures2{};
Expand Down
2 changes: 1 addition & 1 deletion VulkanDeviceInfoExtensions.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class VulkanDeviceInfoExtensions
void readPhysicalFeatures_VALVE();

public:
const uint32_t vkHeaderVersion = 270;
const uint32_t vkHeaderVersion = 273;
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 @@ -11,6 +11,7 @@ ARM
VK_ARM_rasterization_order_attachment_access
VK_ARM_shader_core_properties
VK_ARM_scheduling_controls
VK_ARM_render_pass_striped
VK_ARM_shader_core_builtins
EXT
VK_EXT_transform_feedback
Expand Down Expand Up @@ -156,6 +157,7 @@ VK_KHR_maintenance4
VK_KHR_maintenance5
VK_KHR_ray_tracing_position_fetch
VK_KHR_cooperative_matrix
VK_KHR_vertex_attribute_divisor
MSFT
VK_MSFT_layered_driver
NV
Expand Down

0 comments on commit 37a0069

Please sign in to comment.