MCPcopy Create free account
hub / github.com/RavEngine/RavEngine / findPhysicalDevice

Function findPhysicalDevice

deps/SDL2/test/testvulkan.c:324–495  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

322}
323
324static void findPhysicalDevice(void)
325{
326 uint32_t physicalDeviceCount = 0;
327 VkPhysicalDevice *physicalDevices;
328 VkQueueFamilyProperties *queueFamiliesProperties = NULL;
329 uint32_t queueFamiliesPropertiesAllocatedSize = 0;
330 VkExtensionProperties *deviceExtensions = NULL;
331 uint32_t deviceExtensionsAllocatedSize = 0;
332 uint32_t physicalDeviceIndex;
333
334 VkResult result =
335 vkEnumeratePhysicalDevices(vulkanContext.instance, &physicalDeviceCount, NULL);
336 if(result != VK_SUCCESS)
337 {
338 SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
339 "vkEnumeratePhysicalDevices(): %s\n",
340 getVulkanResultString(result));
341 quit(2);
342 }
343 if(physicalDeviceCount == 0)
344 {
345 SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
346 "vkEnumeratePhysicalDevices(): no physical devices\n");
347 quit(2);
348 }
349 physicalDevices = SDL_malloc(sizeof(VkPhysicalDevice) * physicalDeviceCount);
350 if(!physicalDevices)
351 {
352 SDL_OutOfMemory();
353 quit(2);
354 }
355 result =
356 vkEnumeratePhysicalDevices(vulkanContext.instance, &physicalDeviceCount, physicalDevices);
357 if(result != VK_SUCCESS)
358 {
359 SDL_free(physicalDevices);
360 SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,
361 "vkEnumeratePhysicalDevices(): %s\n",
362 getVulkanResultString(result));
363 quit(2);
364 }
365 vulkanContext.physicalDevice = NULL;
366 for(physicalDeviceIndex = 0; physicalDeviceIndex < physicalDeviceCount;
367 physicalDeviceIndex++)
368 {
369 uint32_t queueFamiliesCount = 0;
370 uint32_t queueFamilyIndex;
371 uint32_t deviceExtensionCount = 0;
372 SDL_bool hasSwapchainExtension = SDL_FALSE;
373 uint32_t i;
374
375
376 VkPhysicalDevice physicalDevice = physicalDevices[physicalDeviceIndex];
377 vkGetPhysicalDeviceProperties(physicalDevice, &vulkanContext.physicalDeviceProperties);
378 if(VK_VERSION_MAJOR(vulkanContext.physicalDeviceProperties.apiVersion) < 1)
379 continue;
380 vkGetPhysicalDeviceFeatures(physicalDevice, &vulkanContext.physicalDeviceFeatures);
381 vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, &queueFamiliesCount, NULL);

Callers 1

initVulkanFunction · 0.85

Calls 6

SDL_LogErrorFunction · 0.85
getVulkanResultStringFunction · 0.85
SDL_mallocFunction · 0.85
SDL_freeFunction · 0.85
SDL_strcmpFunction · 0.85
quitFunction · 0.70

Tested by

no test coverage detected