From a562007f8466d05e1132f3fe9b29486785132454 Mon Sep 17 00:00:00 2001 From: Matt Borgerson Date: Fri, 26 Jul 2024 17:21:02 -0700 Subject: [PATCH] nv2a/vk: Enable synchronization validation --- hw/xbox/nv2a/pgraph/vk/instance.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/xbox/nv2a/pgraph/vk/instance.c b/hw/xbox/nv2a/pgraph/vk/instance.c index 811698c668..ae1abe102f 100644 --- a/hw/xbox/nv2a/pgraph/vk/instance.c +++ b/hw/xbox/nv2a/pgraph/vk/instance.c @@ -271,12 +271,24 @@ static bool create_instance(PGRAPHState *pg, Error **errp) enable_validation = g_config.display.vulkan.validation_layers; + VkValidationFeatureEnableEXT enables[] = { + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT, + // VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT, + }; + + VkValidationFeaturesEXT validationFeatures = { + .sType = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT, + .enabledValidationFeatureCount = ARRAY_SIZE(enables), + .pEnabledValidationFeatures = enables, + }; + if (enable_validation) { if (check_validation_layer_support()) { fprintf(stderr, "Warning: Validation layers enabled. Expect " "performance impact.\n"); create_info.enabledLayerCount = ARRAY_SIZE(validation_layers); create_info.ppEnabledLayerNames = validation_layers; + create_info.pNext = &validationFeatures; } else { fprintf(stderr, "Warning: validation layers not available\n"); enable_validation = false;