@@ -314,9 +314,9 @@ RDResult WrappedVulkan::Initialise(VkInitParams ¶ms, uint64_t sectionVersion
314
314
315
315
AddRequiredExtensions (true , params.Extensions , supportedExtensions);
316
316
317
- // after 1.0 , VK_KHR_get_physical_device_properties2 is promoted to core, but enable it if it's
317
+ // after 1.1 , VK_KHR_get_physical_device_properties2 is promoted to core, but enable it if it's
318
318
// reported as available, just in case.
319
- if (params.APIVersion >= VK_API_VERSION_1_0 )
319
+ if (params.APIVersion >= VK_API_VERSION_1_1 )
320
320
{
321
321
if (supportedExtensions.find (VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME) !=
322
322
supportedExtensions.end ())
@@ -340,6 +340,17 @@ RDResult WrappedVulkan::Initialise(VkInitParams ¶ms, uint64_t sectionVersion
340
340
}
341
341
}
342
342
343
+ // enable device group extension if on 1.0, so we can use BDA. Shuts the validation layers up
344
+ if (params.APIVersion <= VK_API_VERSION_1_0)
345
+ {
346
+ if (supportedExtensions.find (VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME) !=
347
+ supportedExtensions.end ())
348
+ {
349
+ if (!params.Extensions .contains (VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME))
350
+ params.Extensions .push_back (VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME);
351
+ }
352
+ }
353
+
343
354
// verify that extensions are supported
344
355
for (size_t i = 0 ; i < params.Extensions .size (); i++)
345
356
{
@@ -1916,6 +1927,9 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi
1916
1927
Extensions.push_back (VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME);
1917
1928
RDCLOG (" Enabling VK_KHR_buffer_device_address" );
1918
1929
1930
+ if (!Extensions.contains (VK_KHR_DEVICE_GROUP_EXTENSION_NAME))
1931
+ Extensions.push_back (VK_KHR_DEVICE_GROUP_EXTENSION_NAME);
1932
+
1919
1933
KHRbuffer = true ;
1920
1934
}
1921
1935
else if (supportedExtensions.find (VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME) !=
0 commit comments