Commit f2a54e25 authored by Chris Wilson's avatar Chris Wilson 🤔
Browse files

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's avatarLionel Landwerlin <>
References: mesa/mesa!4569

Signed-off-by: Chris Wilson's avatarChris Wilson <>
parent 652d93cb
......@@ -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;
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