Allow VK_EXT_layer_settings during capture for configuring VVL

This commit is contained in:
baldurk
2026-07-24 17:52:48 +01:00
parent 0c682d5a48
commit 3d2329da89
6 changed files with 22 additions and 6 deletions
+1 -1
View File
@@ -77,6 +77,7 @@ Maintainers can update this file by updating vk.xml in this folder and running `
* `VK_EXT_image_view_min_lod`
* `VK_EXT_index_type_uint8`
* `VK_EXT_inline_uniform_block`
* `VK_EXT_layer_settings`
* `VK_EXT_line_rasterization`
* `VK_EXT_load_store_op_none`
* `VK_EXT_memory_budget`
@@ -327,7 +328,6 @@ The portability subset is only relevant on mac, which is not a supported platfor
* `VK_EXT_external_memory_host`
* `VK_EXT_external_memory_metal`
* `VK_EXT_image_sliced_view_of_3d`
* `VK_EXT_layer_settings`
* `VK_EXT_legacy_dithering`
* `VK_EXT_legacy_vertex_attributes`
* `VK_EXT_map_memory_placed`
+2
View File
@@ -1643,6 +1643,7 @@ DECLARE_REFLECTION_STRUCT(VkImportFenceFdInfoKHR);
DECLARE_REFLECTION_STRUCT(VkImportMemoryFdInfoKHR);
DECLARE_REFLECTION_STRUCT(VkImportSemaphoreFdInfoKHR);
DECLARE_REFLECTION_STRUCT(VkInstanceCreateInfo);
DECLARE_REFLECTION_STRUCT(VkLayerSettingsCreateInfoEXT);
DECLARE_REFLECTION_STRUCT(VkLayerDeviceCreateInfo);
DECLARE_REFLECTION_STRUCT(VkLayerInstanceCreateInfo);
DECLARE_REFLECTION_STRUCT(VkMappedMemoryRange);
@@ -2208,6 +2209,7 @@ DECLARE_DESERIALISE_TYPE(VkImportFenceFdInfoKHR);
DECLARE_DESERIALISE_TYPE(VkImportMemoryFdInfoKHR);
DECLARE_DESERIALISE_TYPE(VkImportSemaphoreFdInfoKHR);
DECLARE_DESERIALISE_TYPE(VkInstanceCreateInfo);
DECLARE_DESERIALISE_TYPE(VkLayerSettingsCreateInfoEXT);
DECLARE_DESERIALISE_TYPE(VkLayerDeviceCreateInfo);
DECLARE_DESERIALISE_TYPE(VkLayerInstanceCreateInfo);
DECLARE_DESERIALISE_TYPE(VkMappedMemoryRange);
+4
View File
@@ -1294,6 +1294,10 @@ static const VkExtensionProperties supportedExtensions[] = {
VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME,
VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION,
},
{
VK_EXT_LAYER_SETTINGS_EXTENSION_NAME,
VK_EXT_LAYER_SETTINGS_SPEC_VERSION,
},
{
VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME,
VK_EXT_LINE_RASTERIZATION_SPEC_VERSION,
+2 -1
View File
@@ -847,6 +847,8 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
COPY_STRUCT(VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE, VkSubresourceHostMemcpySize); \
COPY_STRUCT(VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY, VkImageToMemoryCopy); \
COPY_STRUCT(VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY, VkMemoryToImageCopy); \
COPY_STRUCT_CAPTURE_ONLY(VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT, \
VkLayerSettingsCreateInfoEXT); \
COPY_STRUCT_CAPTURE_ONLY(VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO, \
VkLayerInstanceCreateInfo); \
COPY_STRUCT_CAPTURE_ONLY(VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, VkLayerDeviceCreateInfo); \
@@ -1228,7 +1230,6 @@ static void AppendModifiedChainedStruct(byte *&tempMem, VkStruct *outputStruct,
case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV: \
case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV: \
case VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV: \
case VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT: \
case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM: \
case VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT: \
case VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS: \
+12 -3
View File
@@ -830,6 +830,9 @@ SERIALISE_VK_HANDLES();
PNEXT_STRUCT(VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO, \
VkDescriptorPoolInlineUniformBlockCreateInfo) \
\
/* VK_EXT_layer_settings */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT, VkLayerSettingsCreateInfoEXT) \
\
/* VK_KHR_line_rasterization promoted from VK_EXT_line_rasterization */ \
PNEXT_STRUCT(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES, \
VkPhysicalDeviceLineRasterizationFeatures) \
@@ -2015,9 +2018,6 @@ SERIALISE_VK_HANDLES();
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT) \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT) \
\
/* VK_EXT_layer_settings */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT) \
\
/* VK_EXT_legacy_dithering */ \
PNEXT_UNSUPPORTED(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT) \
\
@@ -2954,6 +2954,15 @@ void DoSerialise(SerialiserType &ser, VkLayerInstanceCreateInfo &el)
el.sType = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO;
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkLayerSettingsCreateInfoEXT &el)
{
RDCERR(
"Serialising VkLayerSettingsCreateInfoEXT - this should always be a NULL optional element");
RDCEraseEl(el);
el.sType = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO;
}
template <typename SerialiserType>
void DoSerialise(SerialiserType &ser, VkLayerDeviceCreateInfo &el)
{
@@ -213,7 +213,7 @@ static void StripUnwantedExtensions(rdcarray<rdcstr> &Extensions)
// this is debug only, nothing to capture, so nothing to replay
if(ext == "VK_EXT_tooling_info" || ext == "VK_EXT_private_data" ||
ext == "VK_EXT_validation_features" || ext == "VK_EXT_validation_cache" ||
ext == "VK_EXT_validation_flags")
ext == "VK_EXT_validation_flags" || ext == "VK_EXT_layer_settings")
return true;
// these are debug only and will be added (if supported) as optional