From 436fd7e8b4966c305ea9c43f3c14c2ca04c35539 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 23 Jan 2019 11:47:44 -0500 Subject: [PATCH] render: Break PICT_a4 The Render protocol requires this format, but it is wrong to do so. We are not aware of any hardware with a real 4bpp implementation of this format. Some GL hardware may have GL_LUMINANCE4_ALPHA4_EXT, and may also be able to wire L to 1, but that would win you none of memory, quality, or (likely) performance over A8. Any attempt to use this format is therefore likely a (painful) software fallback. Pleasantly (and given the above, unsurprisingly) it seems to be unused in the wild. None of the major toolkits will try to use it, and rendercheck does not in fact validate that all of the "standard" picture formats exist. Drop the explicit A4 setup from picture format initialization. Note that the DDXes are not changed and still expose a depth-4 pixmap format, but we only add picture formats for True/DirectColor-credible depths (i.e. depth >= 15). Implements: xorg/proto/xorgproto!1 Signed-off-by: Adam Jackson --- render/picture.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/render/picture.c b/render/picture.c index a53f3b560..c8f24f7f4 100644 --- a/render/picture.c +++ b/render/picture.c @@ -188,10 +188,6 @@ PictureCreateDefaultFormats(ScreenPtr pScreen, int *nformatp) PICT_TYPE_A, 8, 0, 0, 0); formats[nformats].depth = 8; nformats++; - formats[nformats].format = PICT_FORMAT(BitsPerPixel(4), - PICT_TYPE_A, 4, 0, 0, 0); - formats[nformats].depth = 4; - nformats++; formats[nformats].format = PICT_a8r8g8b8; formats[nformats].depth = 32; nformats++; -- GitLab