Sending pixmap depth and bpp was omitted, so the Mesa
X11 + EGL + DRI3 side of things always failed to
dri3_create_image_khr_pixmap_from_buffers(), which led
to failure of X11 + EGL compositing under DRI3 under,
e.g., KDE Plasma 5.
Fixes: 6e7c40f62db6 ("dri3: Add multi-planar/modifier buffer requests")
Signed-off-by: Mario Kleiner <[email protected]>
Cc: Daniel Stone <[email protected]>
Cc: Louis-Francis Ratté-Boulianne <[email protected]>
---
dri3/dri3_request.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dri3/dri3_request.c b/dri3/dri3_request.c
index 2d3deb2..452b08a 100644
--- a/dri3/dri3_request.c
+++ b/dri3/dri3_request.c
@@ -481,7 +481,7 @@ proc_dri3_buffers_from_pixmap(ClientPtr client)
int i;
PixmapPtr pixmap;
- REQUEST_SIZE_MATCH(xDRI3BufferFromPixmapReq);
+ REQUEST_SIZE_MATCH(xDRI3BuffersFromPixmapReq);
rc = dixLookupResourceByType((void **) &pixmap, stuff->pixmap, RT_PIXMAP,
client, DixWriteAccess);
if (rc != Success) {
@@ -497,6 +497,8 @@ proc_dri3_buffers_from_pixmap(ClientPtr client)
rep.length = bytes_to_int32(num_fds * 2 * sizeof(CARD32));
rep.width = pixmap->drawable.width;
rep.height = pixmap->drawable.height;
+ rep.depth = pixmap->drawable.depth;
+ rep.bpp = pixmap->drawable.bitsPerPixel;
rep.modifier = modifier;
if (client->swapped) {
--
2.7.4
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel