Sounds fine to me.  I just wanted to confirm that they are unrecoverable.

Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net>

On Wed, Jun 27, 2018 at 9:13 AM, Keith Packard <kei...@keithp.com> wrote:

> Jason Ekstrand <ja...@jlekstrand.net> writes:
>
> > Is this the same thing that happens on VT switch?  If so, we may want to
> > return SURFACE_LOST for leases and OUT_OF_DATE for things running
> directly
> > on the display.
>
> No, on VT switch, my code currently sits in the driver and waits for the
> VT to return. The errors here are unexpected and the driver doesn't
> currently have any way to recover from them. This patch came from
> reviewing the valid error returns from these functions with my broader
> understanding of Vulkan and evaluating which error message most
> accurately described the situation. SURFACE_LOST is more accurate than
> OUT_OF_DATE as a DRM lease termination (the only "normal" cause of these
> errors) definitely requires the application create a new surface.
>
> If there were errors we knew how to handle, and the way to handle them
> was to re-query the surface and re-create the swap chain, then we should
> return OUT_OF_DATE.
>
> On another note, I re-read the spec for vkAcquireXlibDisplayEXT when
> looking at this and found that it explicitly calls out VT switch as a
> case where the driver is supposed to return 'an appropriate error', but
> I can't see an error which would be appropriate in this case --
> DEVICE_LOST and SURFACE_LOST are both effectively fatal errors to the
> application while OUT_OF_DATE requires the application to re-query the
> surface and re-construct the swap chain. I guess we could have the
> surface query block until the VT returns? Is that better than just
> having the presentation block?
>
> --
> -keith
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to