diff options
| author | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-10-23 10:37:02 -0600 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-10-26 16:24:10 -0600 |
| commit | 2aff13fc673820c3d4e31a8c1ceb8b8e2b1f18f4 (patch) | |
| tree | c67427a43e17be543ef0753256f0a3d14f31d935 | |
| parent | da0b0d7eedb33c0f7093c7092f0fdc963315668d (diff) | |
| download | usermoji-2aff13fc673820c3d4e31a8c1ceb8b8e2b1f18f4.tar.xz | |
bug-14575: normalized queue priorities
| -rw-r--r-- | demos/cube.c | 2 | ||||
| -rw-r--r-- | demos/tri.c | 2 | ||||
| -rw-r--r-- | demos/vulkaninfo.c | 6 | ||||
| -rw-r--r-- | include/vulkan.h | 2 |
4 files changed, 12 insertions, 0 deletions
diff --git a/demos/cube.c b/demos/cube.c index a435c016..1abf525f 100644 --- a/demos/cube.c +++ b/demos/cube.c @@ -2304,11 +2304,13 @@ static void demo_init_vk(struct demo *demo) VkPhysicalDeviceFeatures physDevFeatures; vkGetPhysicalDeviceFeatures(demo->gpu, &physDevFeatures); + float queue_priorities[1] = { 0.0 }; const VkDeviceQueueCreateInfo queue = { .sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, .pNext = NULL, .queueFamilyIndex = gfx_queue_idx, .queueCount = 1, + .pQueuePriorities = queue_priorities }; VkDeviceCreateInfo device = { diff --git a/demos/tri.c b/demos/tri.c index d03bf16a..66dccf6a 100644 --- a/demos/tri.c +++ b/demos/tri.c @@ -1814,11 +1814,13 @@ static void demo_init_vk(struct demo *demo) .extensionCount = enabled_extension_count, .ppEnabledExtensionNames = (const char *const*) extension_names, }; + float queue_priorities[1] = { 0.0 }; const VkDeviceQueueCreateInfo queue = { .sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, .pNext = NULL, .queueFamilyIndex = 0, .queueCount = 1, + .pQueuePriorities = queue_priorities }; uint32_t gpu_count; diff --git a/demos/vulkaninfo.c b/demos/vulkaninfo.c index 482f27ae..8becb4c3 100644 --- a/demos/vulkaninfo.c +++ b/demos/vulkaninfo.c @@ -655,10 +655,13 @@ static void app_gpu_init(struct app_gpu *gpu, uint32_t id, VkPhysicalDevice obj) if (!gpu->queue_reqs) ERR_EXIT(VK_ERROR_OUT_OF_HOST_MEMORY); for (i = 0; i < gpu->queue_count; i++) { + float *queue_priorities = malloc(gpu->queue_props[i].queueCount * sizeof(float)); + memset(queue_priorities, 0, gpu->queue_props[i].queueCount * sizeof(float)); gpu->queue_reqs[i].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; gpu->queue_reqs[i].pNext = NULL; gpu->queue_reqs[i].queueFamilyIndex = i; gpu->queue_reqs[i].queueCount = gpu->queue_props[i].queueCount; + gpu->queue_reqs[i].pQueuePriorities = queue_priorities; } vkGetPhysicalDeviceMemoryProperties(gpu->obj, &gpu->memory_props); @@ -674,6 +677,9 @@ static void app_gpu_destroy(struct app_gpu *gpu) app_dev_destroy(&gpu->dev); free(gpu->device_extensions); free(gpu->queue_reqs); + for (uint32_t i = 0; i < gpu->queue_count; i++) { + free((void *) gpu->queue_reqs[i].pQueuePriorities); + } free(gpu->queue_props); } diff --git a/include/vulkan.h b/include/vulkan.h index ceac03a6..e938a5bd 100644 --- a/include/vulkan.h +++ b/include/vulkan.h @@ -1276,6 +1276,7 @@ typedef struct { uint32_t maxClipDistances; uint32_t maxCullDistances; uint32_t maxCombinedClipAndCullDistances; + uint32_t discreteQueuePriorities; float pointSizeRange[2]; float lineWidthRange[2]; float pointSizeGranularity; @@ -1331,6 +1332,7 @@ typedef struct { const void* pNext; uint32_t queueFamilyIndex; uint32_t queueCount; + const float* pQueuePriorities; } VkDeviceQueueCreateInfo; typedef struct { |
