aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2015-10-23 10:37:02 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-10-26 16:24:10 -0600
commit2aff13fc673820c3d4e31a8c1ceb8b8e2b1f18f4 (patch)
treec67427a43e17be543ef0753256f0a3d14f31d935
parentda0b0d7eedb33c0f7093c7092f0fdc963315668d (diff)
downloadusermoji-2aff13fc673820c3d4e31a8c1ceb8b8e2b1f18f4.tar.xz
bug-14575: normalized queue priorities
-rw-r--r--demos/cube.c2
-rw-r--r--demos/tri.c2
-rw-r--r--demos/vulkaninfo.c6
-rw-r--r--include/vulkan.h2
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 {