Commit fbc5c5cd authored by Mario Kleiner's avatar Mario Kleiner Committed by Adam Jackson
Browse files

dri3: Fix error handling in dri3_buffer_from_pixmap request.

The old info->fd_from_pixmap() driver hook, which is
preferentially used in dri3_fd_from_pixmap(), can return
error codes other than -1, e.g., -EINVAL (-22) on nouveau-ddx.

Not handling the error causes a broken/corrupted X-Connection
resulting from a failed request.

This fixes failure of sddm-greeter to start up under nouveau-ddx
with DRI3 enabled and DRI3 protocol version properly clamped
to 1.0 by the server (see followup patch).

Fixes: 75bba3ae

 ("dri3: Use single-FD screen call for single-FD request")
Signed-off-by: Mario Kleiner's avatarMario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
Cc: Daniel Stone <daniels@collabora.com>
parent 19d006ee
......@@ -255,7 +255,7 @@ proc_dri3_buffer_from_pixmap(ClientPtr client)
rep.bpp = pixmap->drawable.bitsPerPixel;
fd = dri3_fd_from_pixmap(pixmap, &rep.stride, &rep.size);
if (fd == -1)
if (fd < 0)
return BadPixmap;
if (client->swapped) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment