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: 75bba3aedc
("dri3: Use single-FD screen call for single-FD request")
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Cc: Daniel Stone <daniels@collabora.com>
This commit is contained in:
parent
19d006ee3d
commit
fbc5c5cd53
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue