[Piglit] [PATCH 2/3] func.sync.semaphore-fd: use queue priorities if supported

Jason Ekstrand jason at jlekstrand.net
Tue Feb 27 21:59:08 UTC 2018


On Tue, Feb 27, 2018 at 12:10 AM, Tapani Pälli <tapani.palli at intel.com>
wrote:

> Patch adds VK_EXT_global_priority support. This should not affect
> test results.
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
>  src/tests/func/sync/semaphore-fd.c | 23 ++++++++++++++++-------
>  1 file changed, 16 insertions(+), 7 deletions(-)
>
> diff --git a/src/tests/func/sync/semaphore-fd.c b/src/tests/func/sync/
> semaphore-fd.c
> index 63cb84d..ea54369 100644
> --- a/src/tests/func/sync/semaphore-fd.c
> +++ b/src/tests/func/sync/semaphore-fd.c
> @@ -43,23 +43,32 @@ struct buffer_layout {
>  };
>
>  static void
> -init_context(struct test_context *ctx, float priority)
> +init_context(struct test_context *ctx, float priority,
> +             VkQueueGlobalPriorityEXT g_priority)
>  {
>     const char *extension_names[] = {
>        "VK_KHR_external_memory",
>        "VK_KHR_external_memory_fd",
>        "VK_KHR_external_semaphore",
>        "VK_KHR_external_semaphore_fd",
> +      "VK_EXT_global_priority",
>     };
>
> +    bool use_global_priority =
> +        t_has_ext("VK_EXT_global_priority");
> +
>      VkResult result = vkCreateDevice(t_physical_dev,
>          &(VkDeviceCreateInfo) {
>              .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
> -            .enabledExtensionCount = 4,
> +            .enabledExtensionCount = use_global_priority ? 5 : 4,
>              .ppEnabledExtensionNames = extension_names,
>              .queueCreateInfoCount = 1,
>              .pQueueCreateInfos = &(VkDeviceQueueCreateInfo) {
>                  .sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
> +                .pNext = use_global_priority ? &(
> VkDeviceQueueGlobalPriorityCreateInfoEXT) {
> +                    .sType = VK_STRUCTURE_TYPE_DEVICE_
> QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
> +                    .globalPriority = g_priority,
> +                } : NULL,
>

This is a crazy use of ternaries together with compound literals.  I think
it might be best to declare the QueueGlobalPriority structure above and
make things a little less in-line.


>                  .queueFamilyIndex = 0,
>                  .queueCount = 1,
>                  .pQueuePriorities = (float[]) { priority },
> @@ -601,7 +610,7 @@ static void
>  test_sanity(void)
>  {
>      struct test_context ctx;
> -    init_context(&ctx, 1.0);
> +    init_context(&ctx, 1.0, VK_QUEUE_GLOBAL_PRIORITY_MEDIUM);
>
>      VkMemoryRequirements buffer_reqs =
>          qoGetBufferMemoryRequirements(ctx.device, ctx.buffer);
> @@ -674,8 +683,8 @@ test_opaque_fd(void)
>      require_handle_type(VK_EXTERNAL_SEMAPHORE_HANDLE_
> TYPE_OPAQUE_FD_BIT_KHR);
>
>      struct test_context ctx1, ctx2;
> -    init_context(&ctx1, 1.0);
> -    init_context(&ctx2, 0.0);
> +    init_context(&ctx1, 1.0, VK_QUEUE_GLOBAL_PRIORITY_MEDIUM);
> +    init_context(&ctx2, 0.0, VK_QUEUE_GLOBAL_PRIORITY_LOW);
>
>  #define GET_FUNCTION_PTR(name, device) \
>      PFN_vk##name name = (PFN_vk##name)vkGetDeviceProcAddr(device,
> "vk"#name)
> @@ -826,8 +835,8 @@ test_sync_fd(void)
>      require_handle_type(VK_EXTERNAL_SEMAPHORE_HANDLE_
> TYPE_SYNC_FD_BIT_KHR);
>
>      struct test_context ctx1, ctx2;
> -    init_context(&ctx1, 1.0);
> -    init_context(&ctx2, 0.0);
> +    init_context(&ctx1, 1.0, VK_QUEUE_GLOBAL_PRIORITY_MEDIUM);
> +    init_context(&ctx2, 0.0, VK_QUEUE_GLOBAL_PRIORITY_LOW);
>
>  #define GET_FUNCTION_PTR(name, device) \
>      PFN_vk##name name = (PFN_vk##name)vkGetDeviceProcAddr(device,
> "vk"#name)
> --
> 2.14.3
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20180227/602b82e5/attachment.html>


More information about the Piglit mailing list