@@ -235,10 +235,11 @@ int EnumerateRIAdapters( struct RIRenderer_s *renderer, struct RIPhysicalAdapter
235235
236236 R_VK_ADD_STRUCT ( & features , & features11 );
237237 R_VK_ADD_STRUCT ( & features , & features12 );
238+ R_VK_ADD_STRUCT ( & features , & features13 );
238239
239240 VkPhysicalDevicePresentIdFeaturesKHR presentIdFeatures = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR };
240241 if ( __VK_SupportExtension ( extensionProperties , extensionNum , qCToStrRef ( VK_KHR_PRESENT_ID_EXTENSION_NAME ) ) ) {
241- R_VK_ADD_STRUCT ( & features , & features13 );
242+ R_VK_ADD_STRUCT ( & features , & presentIdFeatures );
242243 }
243244
244245 VkPhysicalDeviceMemoryProperties memoryProperties = { 0 };
@@ -252,7 +253,6 @@ int EnumerateRIAdapters( struct RIRenderer_s *renderer, struct RIPhysicalAdapter
252253 memcpy (physicalAdapter -> name , properties .properties .deviceName , sizeof (properties .properties .deviceName ));
253254 assert (sizeof (physicalAdapter -> name ) >= sizeof (properties .properties .deviceName ));
254255 physicalAdapter -> vendor = VendorFromID ( properties .properties .vendorID );
255- physicalAdapter -> vk .physicalDevice = physicalAdapter -> vk .physicalDevice ;
256256 physicalAdapter -> vk .apiVersion = properties .properties .apiVersion ;
257257 physicalAdapter -> presetLevel = RI_GPU_PRESET_NONE ;
258258 // selected preset
@@ -288,7 +288,7 @@ int EnumerateRIAdapters( struct RIRenderer_s *renderer, struct RIPhysicalAdapter
288288 physicalAdapter -> vk .isPresentIDSupported = presentIdFeatures .presentId ;
289289 physicalAdapter -> vk .isBufferDeviceAddressSupported =
290290 physicalAdapter -> vk .apiVersion >= VK_API_VERSION_1_2 || __VK_SupportExtension ( extensionProperties , extensionNum , qCToStrRef ( VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME ) );
291- physicalAdapter -> vk .isBufferDeviceAddressSupported = __VK_SupportExtension ( extensionProperties , extensionNum , qCToStrRef ( VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME ) );
291+ physicalAdapter -> vk .isAMDDeviceCoherentMemorySupported = __VK_SupportExtension ( extensionProperties , extensionNum , qCToStrRef ( VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME ) );
292292
293293 const VkPhysicalDeviceLimits * limits = & properties .properties .limits ;
294294
@@ -316,14 +316,16 @@ int EnumerateRIAdapters( struct RIRenderer_s *renderer, struct RIPhysicalAdapter
316316 physicalAdapter -> textureArrayLayerMaxNum = limits -> maxImageArrayLayers ;
317317 physicalAdapter -> typedBufferMaxDim = limits -> maxTexelBufferElements ;
318318
319- for ( uint32_t i = 0 ; i < memoryProperties .memoryTypeCount ; i ++ ) {
320- // const VkMemoryType& memoryType = m_MemoryProps.memoryTypes[i];
319+ for (uint32_t i = 0 ; i < memoryProperties .memoryHeapCount ; i ++ ) {
321320 if ( ( memoryProperties .memoryHeaps [i ].flags & VK_MEMORY_HEAP_DEVICE_LOCAL_BIT ) != 0 && physicalAdapter -> type != RI_ADAPTER_TYPE_INTEGRATED_GPU )
322321 physicalAdapter -> videoMemorySize += memoryProperties .memoryHeaps [i ].size ;
323322 else
324323 physicalAdapter -> systemMemorySize += memoryProperties .memoryHeaps [i ].size ;
324+ }
325+
326+ for ( uint32_t i = 0 ; i < memoryProperties .memoryTypeCount ; i ++ ) {
325327 const uint32_t uploadHeapFlags = ( VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT );
326- if ( ( memoryProperties .memoryHeaps [i ].flags & uploadHeapFlags ) == uploadHeapFlags )
328+ if ( ( memoryProperties .memoryTypes [i ].propertyFlags & uploadHeapFlags ) == uploadHeapFlags )
327329 physicalAdapter -> deviceUploadHeapSize += memoryProperties .memoryHeaps [i ].size ;
328330 }
329331
@@ -534,6 +536,13 @@ int InitRIDevice( struct RIRenderer_s *renderer, struct RIDeviceDesc_s *init, st
534536 VkExtensionProperties * extensionProperties = malloc ( extensionNum * sizeof ( VkExtensionProperties ) );
535537 vkEnumerateDeviceExtensionProperties ( physicalAdapter -> vk .physicalDevice , NULL , & extensionNum , extensionProperties );
536538
539+ for ( size_t idx = 0 ; idx < Q_ARRAY_COUNT ( DefaultDeviceExtension ); idx ++ ) {
540+ if ( __VK_SupportExtension ( extensionProperties , extensionNum , qCToStrRef ( DefaultDeviceExtension [idx ] ) ) ) {
541+ Com_Printf ("Enabled Extension: %s" , extensionProperties [idx ].extensionName );
542+ arrpush ( enabledExtensionNames , DefaultDeviceExtension [idx ] );
543+ }
544+ }
545+
537546 for (size_t i = 0 ; i < extensionNum ; i ++ ) {
538547 Com_Printf ( "VK Extension %s - %lu" , extensionProperties [i ].extensionName , extensionProperties [i ].specVersion );
539548 }
@@ -827,12 +836,6 @@ int InitRIDevice( struct RIRenderer_s *renderer, struct RIDeviceDesc_s *init, st
827836 // }
828837
829838 vkGetPhysicalDeviceFeatures2 ( physicalAdapter -> vk .physicalDevice , & features );
830- for ( size_t idx = 0 ; idx < Q_ARRAY_COUNT ( DefaultDeviceExtension ); idx ++ ) {
831- if ( __VK_SupportExtension ( extensionProperties , extensionNum , qCToStrRef ( DefaultDeviceExtension [idx ] ) ) ) {
832- Com_Printf ("Enabled Extension: %s" , extensionProperties [idx ].extensionName );
833- arrpush ( enabledExtensionNames , DefaultDeviceExtension [idx ] );
834- }
835- }
836839
837840 deviceCreateInfo .pNext = & features ;
838841 deviceCreateInfo .pQueueCreateInfos = deviceQueueCreateInfo ;
0 commit comments