From f2a54e256dd7539633c476a379db2b1e60eec811 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 15 Apr 2020 17:15:41 +0100 Subject: sna/dri2: Interpret DRI2ATTACH_FORMAT as depth not bpp In mesa i915/i965 pass the bpp to use when creating the surface, but the gallium state tracker passed the depth. As it happens that BitsPerPixel(format) will do the right thing for both, use that. | DRI2ATTACH_FORMAT { attachment: CARD32 | format: CARD32 } | | The DRI2ATTACH_FORMAT describes an attachment and the associated | format. 'attachment' describes the attachment point for the buffer, | 'format' describes an opaque, device-dependent format for the buffer. Should we need to use an explicit format (heavens forbid as nobody likes DRI2) then that will have to start in the range above 256 (or higher). For now the convention is defined by the mixture of i965/iris, and that is to assume it is essentially a depth. Reported-by: Lionel Landwerlin References: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4569 Signed-off-by: Chris Wilson --- src/sna/sna_dri2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c index 5fd4d54b..f2f2c1d3 100644 --- a/src/sna/sna_dri2.c +++ b/src/sna/sna_dri2.c @@ -605,7 +605,7 @@ sna_dri2_create_buffer(DrawablePtr draw, struct sna_dri2_private *private; PixmapPtr pixmap; struct kgem_bo *bo; - unsigned bpp = format ?: draw->bitsPerPixel; + unsigned bpp = format ? BitsPerPixel(format) : draw->bitsPerPixel; unsigned flags = CREATE_EXACT; uint32_t size; -- cgit v1.2.1