[Mesa-dev] [PATCH v11 09/15] vulkan/wsi/x11: Cleanly handle shutdowns in FIFO thread

Daniel Stone daniel at fooishbar.org
Wed Feb 21 21:32:03 UTC 2018


Hi,

On 21 February 2018 at 20:50, Jason Ekstrand <jason at jlekstrand.net> wrote:
> On Wed, Feb 21, 2018 at 6:05 AM, Daniel Stone <daniels at collabora.com> wrote:
>> @@ -832,7 +832,7 @@ x11_acquire_next_image_from_queue(struct x11_swapchain
>> *chain,
>>     VkResult result = wsi_queue_pull(&chain->acquire_queue,
>>                                      &image_index, timeout);
>>     /* On error, the thread has shut down, so safe to update chain->status
>> */
>> -   if (result < 0)
>> +   if (result < 0 || image_index == UINT32_MAX)
>
> This only fixes an issue created by the previous patch.
>
>>
>>        return x11_swapchain_result(chain, result);
>>
>>     assert(image_index < chain->base.image_count);
>> @@ -938,7 +938,7 @@ x11_manage_fifo_queues(void *state)
>>        result = wsi_queue_pull(&chain->present_queue, &image_index,
>> INT64_MAX);
>>        if (result < 0) {
>>           goto fail;
>> -      } else if (chain->status < 0) {
>> +      } else if (chain->status < 0 || image_index == UINT32_MAX) {
>
> The one time UINT32_MAX is pushed onto the queue, chain->status is set to
> VK_ERROR_OUT_OF_DATE_KHR.

Right you are; oops. Should it just be squashed in?

Cheers,
Daniel


More information about the mesa-dev mailing list