Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions renderdoc/driver/vulkan/extension_support.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ Maintainers can update this file by updating vk.xml in this folder and running `
* `VK_EXT_provoking_vertex`
* `VK_EXT_queue_family_foreign`
* `VK_EXT_rasterization_order_attachment_access`
* `VK_EXT_ray_tracing_invocation_reorder`
* `VK_EXT_rgba10x6_formats`
* `VK_EXT_robustness2`
* `VK_EXT_sample_locations`
Expand Down Expand Up @@ -265,6 +266,7 @@ Maintainers can update this file by updating vk.xml in this folder and running `
* `VK_NV_external_memory`
* `VK_NV_fragment_shader_barycentric`
* `VK_NV_geometry_shader_passthrough`
* `VK_NV_ray_tracing_invocation_reorder`
* `VK_NV_sample_mask_override_coverage`
* `VK_NV_shader_image_footprint`
* `VK_NV_shader_subgroup_partitioned`
Expand Down Expand Up @@ -333,7 +335,6 @@ The portability subset is only relevant on mac, which is not a supported platfor
* `VK_EXT_pipeline_library_group_handles`
* `VK_EXT_present_timing`
* `VK_EXT_primitive_restart_index`
* `VK_EXT_ray_tracing_invocation_reorder`
* `VK_EXT_shader_64bit_indexing`
* `VK_EXT_shader_float8`
* `VK_EXT_shader_long_vector`
Expand Down Expand Up @@ -453,7 +454,6 @@ The portability subset is only relevant on mac, which is not a supported platfor
* `VK_NV_present_barrier`
* `VK_NV_present_metering`
* `VK_NV_raw_access_chains`
* `VK_NV_ray_tracing_invocation_reorder`
* `VK_NV_ray_tracing_linear_swept_spheres`
* `VK_NV_ray_tracing_motion_blur`
* `VK_NV_ray_tracing_validation`
Expand Down
9 changes: 9 additions & 0 deletions renderdoc/driver/vulkan/vk_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -1801,6 +1801,10 @@ DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceProvokingVertexPropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDevicePushDescriptorProperties);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceRayQueryFeaturesKHR);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
DECLARE_REFLECTION_STRUCT(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
Expand Down Expand Up @@ -2344,6 +2348,10 @@ DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceProvokingVertexPropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDevicePushDescriptorProperties);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceRayQueryFeaturesKHR);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
DECLARE_DESERIALISE_TYPE(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
Expand Down Expand Up @@ -2877,6 +2885,7 @@ DECLARE_REFLECTION_ENUM(VkQueryResultFlagBits);
DECLARE_REFLECTION_ENUM(VkQueryType);
DECLARE_REFLECTION_ENUM(VkQueueFlagBits);
DECLARE_REFLECTION_ENUM(VkQueueGlobalPriority);
DECLARE_REFLECTION_ENUM(VkRayTracingInvocationReorderModeEXT);
DECLARE_REFLECTION_ENUM(VkRayTracingShaderGroupTypeKHR);
DECLARE_REFLECTION_ENUM(VkRenderingFlagBits);
DECLARE_REFLECTION_ENUM(VkRenderPassCreateFlagBits);
Expand Down
8 changes: 8 additions & 0 deletions renderdoc/driver/vulkan/vk_core.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1381,6 +1381,10 @@ static const VkExtensionProperties supportedExtensions[] = {
VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME,
VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION,
},
{
VK_EXT_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME,
VK_EXT_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION,
},
{
VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME,
VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION,
Expand Down Expand Up @@ -2071,6 +2075,10 @@ static const VkExtensionProperties supportedExtensions[] = {
VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME,
VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION,
},
{
VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME,
VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION,
},
{
VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME,
VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION,
Expand Down
12 changes: 8 additions & 4 deletions renderdoc/driver/vulkan/vk_next_chains.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,14 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
VkPhysicalDevicePushDescriptorProperties); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT, \
VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT, \
VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV, \
VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT, \
VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV, \
VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR, \
VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR); \
COPY_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR, \
Expand Down Expand Up @@ -1368,10 +1376,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_PERF_HINT_FEATURES_QCOM: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_PERF_HINT_PROPERTIES_QCOM: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: \
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: \
Expand Down
91 changes: 83 additions & 8 deletions renderdoc/driver/vulkan/vk_serialise.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -915,6 +915,12 @@ SERIALISE_VK_HANDLES();
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT, \
VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT) \
\
/* VK_EXT_ray_tracing_invocation_reorder */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT, \
VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT) \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT, \
VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT) \
\
/* VK_EXT_rgba10x6_formats */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT, \
VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT) \
Expand Down Expand Up @@ -1687,6 +1693,12 @@ SERIALISE_VK_HANDLES();
PNEXT_STRUCT(VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV, \
VkExternalMemoryImageCreateInfoNV) \
\
/* VK_NV_ray_tracing_invocation_reorder */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV, \
VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV) \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV, \
VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV) \
\
/* VK_NV_shader_image_footprint */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, \
VkPhysicalDeviceShaderImageFootprintFeaturesNV) \
Expand Down Expand Up @@ -2042,10 +2054,6 @@ SERIALISE_VK_HANDLES();
/* VK_EXT_primitive_restart_index */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_RESTART_INDEX_FEATURES_EXT) \
\
/* VK_EXT_ray_tracing_invocation_reorder */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT) \
\
/* VK_EXT_shader_64bit_indexing */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT) \
\
Expand Down Expand Up @@ -2550,10 +2558,6 @@ SERIALISE_VK_HANDLES();
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV) \
\
/* VK_NV_ray_tracing_invocation_reorder */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV) \
\
/* VK_NV_ray_tracing_motion_blur */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV) \
Expand Down Expand Up @@ -14102,6 +14106,73 @@ void Deserialise(const VkPhysicalDeviceRayTracingPipelinePropertiesKHR &el)
DeserialiseNext(el.pNext);
}

template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT &el)
{
RDCASSERT(ser.IsReading() ||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT);
SerialiseNext(ser, el.sType, el.pNext);

SERIALISE_MEMBER(rayTracingInvocationReorder);
}

template <>
void Deserialise(const VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT &el)
{
DeserialiseNext(el.pNext);
}

template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT &el)
{
RDCASSERT(ser.IsReading() ||
el.sType ==
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT);
SerialiseNext(ser, el.sType, el.pNext);

SERIALISE_MEMBER(rayTracingInvocationReorderReorderingHint);
SERIALISE_MEMBER(maxShaderBindingTableRecordIndex);
}

template <>
void Deserialise(const VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT &el)
{
DeserialiseNext(el.pNext);
}

template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV &el)
{
RDCASSERT(ser.IsReading() ||
el.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV);
SerialiseNext(ser, el.sType, el.pNext);

SERIALISE_MEMBER(rayTracingInvocationReorder);
}

template <>
void Deserialise(const VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV &el)
{
DeserialiseNext(el.pNext);
}

template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV &el)
{
RDCASSERT(ser.IsReading() ||
el.sType ==
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV);
SerialiseNext(ser, el.sType, el.pNext);

SERIALISE_MEMBER(rayTracingInvocationReorderReorderingHint);
}

template <>
void Deserialise(const VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV &el)
{
DeserialiseNext(el.pNext);
}

template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkStridedDeviceAddressRegionKHR &el)
{
Expand Down Expand Up @@ -15476,6 +15547,10 @@ INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceProvokingVertexPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDevicePushDescriptorProperties);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceRayQueryFeaturesKHR);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
INSTANTIATE_SERIALISE_TYPE(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
Expand Down
11 changes: 11 additions & 0 deletions renderdoc/driver/vulkan/vk_stringise.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3808,6 +3808,17 @@ rdcstr DoStringise(const VkProvokingVertexModeEXT &el)
END_ENUM_STRINGISE();
}

template <>
rdcstr DoStringise(const VkRayTracingInvocationReorderModeEXT &el)
{
BEGIN_ENUM_STRINGISE(VkRayTracingInvocationReorderModeEXT);
{
STRINGISE_ENUM(VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT)
STRINGISE_ENUM(VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT)
}
END_ENUM_STRINGISE();
}

template <>
rdcstr DoStringise(const VkRayTracingShaderGroupTypeKHR &el)
{
Expand Down
16 changes: 16 additions & 0 deletions renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3542,6 +3542,22 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi
}
END_PHYS_EXT_CHECK();

BEGIN_PHYS_EXT_CHECK(
VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT);
{
CHECK_PHYS_EXT_FEATURE(rayTracingInvocationReorder);
}
END_PHYS_EXT_CHECK();

BEGIN_PHYS_EXT_CHECK(
VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV);
{
CHECK_PHYS_EXT_FEATURE(rayTracingInvocationReorder);
}
END_PHYS_EXT_CHECK();

BEGIN_PHYS_EXT_CHECK(VkPhysicalDeviceMaintenance5Features,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES);
{
Expand Down
Loading