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;