summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/xcb/xcb-util-renderutil
diff options
context:
space:
mode:
authorGatis Paeglis <gatis.paeglis@qt.io>2019-02-19 10:09:19 +0100
committerGatis Paeglis <gatis.paeglis@qt.io>2019-08-27 01:06:40 +0200
commit60588e1a5dd9b10803e078c741271cbe5713a51b (patch)
treeea23ed6e0700aadcba7c323261e331dadd8af132 /src/3rdparty/xcb/xcb-util-renderutil
parent5bb178c479a247720fbc3fbb7f06a32b725193ac (diff)
3rdparty: remove xcb libs and bump minimal required version to 1.11
With libxcb 1.11 as minimal required version we can: (a) (Maybe) Enable threaded GL for MESA, see QTBUG-67277. (b) Avoid performance issues described in QTBUG-46017. Bundled xcb libs don't contain the more modern SHM fd passing APIs. The official binaries use "-qt-xcb", therefore we were shipping with the performance fix #ifdef-ed out. (c) Make xcb-xkb a mandatory dependency avoiding issues described in QTBUG-30911. Issues that appear when Qt was configure with "-no-xkb -xcb-xlib", but X server has the XKB extension. (d) Drop all, but xcb-xinput sources from src/3rdparty/xcb/, for which we need "xcb-xinput >= 1.12". This way we can reduce maintenance work. The xcb libraries were origianlly bundled because of lack of availability on supported distributions. This is not the case anymore: CI for Qt 5.13 has: Ubuntu 18.04 - libxcb 1.13 RHEL 7.4 - libxcb 1.13 openSUSE 15.0 - libxcb 1.13 CI for Qt 5.12 has: Ubuntu 16.04 - libxcb 1.11 RHEL 7.4 - libxcb 1.13 openSUSE 42.3 - libxcb 1.11 RHEL 6.x - not relevant because it was dropped from supported platforms. Why 1.11 (released on Aug, 2014), but not 1.13 (released on March 2018)? Based on what we have in CI for 5.13 and 5.14 we could update to 1.13, but it means that Qt would require a very recent version of 3rd party dependency. [ChangeLog][Configure][X11] The minimal required version of libxcb now is 1.11. [ChangeLog][Third-Party Code][X11] Removed all bundled XCB libs, with the exception of xcb-xinput, which is not available on systems with libxcb 1.11. [ChangeLog][Configure][X11] Removed -qt-xcb, -system-xcb, -xkb, -xcb-xinput switches. [ChangeLog][Platform Specific Changes][X11] XKB and XInput2 now are mandatory dependencies for XCB plugin. XCB-XKB is a part of libxcb 1.11 releases. XCB-XInput is not part of libxcb 1.11 releases, but Qt builders can use -bundled-xcb-xinput switch. Fixes: QTBUG-73862 Fixes: QTBUG-73888 Task-number: QTBUG-67277 Task-number: QTBUG-30939 Change-Id: I4c2bd2a0e667220d32fd1fbfa1419c844f17fcce Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/3rdparty/xcb/xcb-util-renderutil')
-rw-r--r--src/3rdparty/xcb/xcb-util-renderutil/util.c255
1 files changed, 0 insertions, 255 deletions
diff --git a/src/3rdparty/xcb/xcb-util-renderutil/util.c b/src/3rdparty/xcb/xcb-util-renderutil/util.c
deleted file mode 100644
index 7666c433dd..0000000000
--- a/src/3rdparty/xcb/xcb-util-renderutil/util.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/* Copyright © 2000 Keith Packard
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Keith Packard makes no
- * representations about the suitability of this software for any purpose. It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "xcb_renderutil.h"
-
-xcb_render_pictvisual_t *
-xcb_render_util_find_visual_format (const xcb_render_query_pict_formats_reply_t *formats,
- const xcb_visualid_t visual)
-{
- xcb_render_pictscreen_iterator_t screens;
- xcb_render_pictdepth_iterator_t depths;
- xcb_render_pictvisual_iterator_t visuals;
- if (!formats)
- return 0;
- for (screens = xcb_render_query_pict_formats_screens_iterator(formats); screens.rem; xcb_render_pictscreen_next(&screens))
- for (depths = xcb_render_pictscreen_depths_iterator(screens.data); depths.rem; xcb_render_pictdepth_next(&depths))
- for (visuals = xcb_render_pictdepth_visuals_iterator(depths.data); visuals.rem; xcb_render_pictvisual_next(&visuals))
- if (visuals.data->visual == visual)
- return visuals.data;
- return 0;
-}
-
-xcb_render_pictforminfo_t *
-xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t *formats,
- unsigned long mask,
- const xcb_render_pictforminfo_t *ptemplate,
- int count)
-{
- xcb_render_pictforminfo_iterator_t i;
- if (!formats)
- return 0;
- for (i = xcb_render_query_pict_formats_formats_iterator(formats); i.rem; xcb_render_pictforminfo_next(&i))
- {
- if (mask & XCB_PICT_FORMAT_ID)
- if (ptemplate->id != i.data->id)
- continue;
- if (mask & XCB_PICT_FORMAT_TYPE)
- if (ptemplate->type != i.data->type)
- continue;
- if (mask & XCB_PICT_FORMAT_DEPTH)
- if (ptemplate->depth != i.data->depth)
- continue;
- if (mask & XCB_PICT_FORMAT_RED)
- if (ptemplate->direct.red_shift != i.data->direct.red_shift)
- continue;
- if (mask & XCB_PICT_FORMAT_RED_MASK)
- if (ptemplate->direct.red_mask != i.data->direct.red_mask)
- continue;
- if (mask & XCB_PICT_FORMAT_GREEN)
- if (ptemplate->direct.green_shift != i.data->direct.green_shift)
- continue;
- if (mask & XCB_PICT_FORMAT_GREEN_MASK)
- if (ptemplate->direct.green_mask != i.data->direct.green_mask)
- continue;
- if (mask & XCB_PICT_FORMAT_BLUE)
- if (ptemplate->direct.blue_shift != i.data->direct.blue_shift)
- continue;
- if (mask & XCB_PICT_FORMAT_BLUE_MASK)
- if (ptemplate->direct.blue_mask != i.data->direct.blue_mask)
- continue;
- if (mask & XCB_PICT_FORMAT_ALPHA)
- if (ptemplate->direct.alpha_shift != i.data->direct.alpha_shift)
- continue;
- if (mask & XCB_PICT_FORMAT_ALPHA_MASK)
- if (ptemplate->direct.alpha_mask != i.data->direct.alpha_mask)
- continue;
- if (mask & XCB_PICT_FORMAT_COLORMAP)
- if (ptemplate->colormap != i.data->colormap)
- continue;
- if (count-- == 0)
- return i.data;
- }
- return 0;
-}
-
-xcb_render_pictforminfo_t *
-xcb_render_util_find_standard_format (const xcb_render_query_pict_formats_reply_t *formats,
- xcb_pict_standard_t format)
-{
- static const struct {
- xcb_render_pictforminfo_t templ;
- unsigned long mask;
- } standardFormats[] = {
- /* XCB_PICT_STANDARD_ARGB_32 */
- {
- {
- 0, /* id */
- XCB_RENDER_PICT_TYPE_DIRECT, /* type */
- 32, /* depth */
- { 0 }, /* pad */
- { /* direct */
- 16, /* direct.red */
- 0xff, /* direct.red_mask */
- 8, /* direct.green */
- 0xff, /* direct.green_mask */
- 0, /* direct.blue */
- 0xff, /* direct.blue_mask */
- 24, /* direct.alpha */
- 0xff, /* direct.alpha_mask */
- },
- 0, /* colormap */
- },
- XCB_PICT_FORMAT_TYPE |
- XCB_PICT_FORMAT_DEPTH |
- XCB_PICT_FORMAT_RED |
- XCB_PICT_FORMAT_RED_MASK |
- XCB_PICT_FORMAT_GREEN |
- XCB_PICT_FORMAT_GREEN_MASK |
- XCB_PICT_FORMAT_BLUE |
- XCB_PICT_FORMAT_BLUE_MASK |
- XCB_PICT_FORMAT_ALPHA |
- XCB_PICT_FORMAT_ALPHA_MASK,
- },
- /* XCB_PICT_STANDARD_RGB_24 */
- {
- {
- 0, /* id */
- XCB_RENDER_PICT_TYPE_DIRECT, /* type */
- 24, /* depth */
- { 0 }, /* pad */
- { /* direct */
- 16, /* direct.red */
- 0xff, /* direct.red_MASK */
- 8, /* direct.green */
- 0xff, /* direct.green_MASK */
- 0, /* direct.blue */
- 0xff, /* direct.blue_MASK */
- 0, /* direct.alpha */
- 0x00, /* direct.alpha_MASK */
- },
- 0, /* colormap */
- },
- XCB_PICT_FORMAT_TYPE |
- XCB_PICT_FORMAT_DEPTH |
- XCB_PICT_FORMAT_RED |
- XCB_PICT_FORMAT_RED_MASK |
- XCB_PICT_FORMAT_GREEN |
- XCB_PICT_FORMAT_GREEN_MASK |
- XCB_PICT_FORMAT_BLUE |
- XCB_PICT_FORMAT_BLUE_MASK |
- XCB_PICT_FORMAT_ALPHA_MASK,
- },
- /* XCB_PICT_STANDARD_A_8 */
- {
- {
- 0, /* id */
- XCB_RENDER_PICT_TYPE_DIRECT, /* type */
- 8, /* depth */
- { 0 }, /* pad */
- { /* direct */
- 0, /* direct.red */
- 0x00, /* direct.red_MASK */
- 0, /* direct.green */
- 0x00, /* direct.green_MASK */
- 0, /* direct.blue */
- 0x00, /* direct.blue_MASK */
- 0, /* direct.alpha */
- 0xff, /* direct.alpha_MASK */
- },
- 0, /* colormap */
- },
- XCB_PICT_FORMAT_TYPE |
- XCB_PICT_FORMAT_DEPTH |
- XCB_PICT_FORMAT_RED_MASK |
- XCB_PICT_FORMAT_GREEN_MASK |
- XCB_PICT_FORMAT_BLUE_MASK |
- XCB_PICT_FORMAT_ALPHA |
- XCB_PICT_FORMAT_ALPHA_MASK,
- },
- /* XCB_PICT_STANDARD_A_4 */
- {
- {
- 0, /* id */
- XCB_RENDER_PICT_TYPE_DIRECT, /* type */
- 4, /* depth */
- { 0 }, /* pad */
- { /* direct */
- 0, /* direct.red */
- 0x00, /* direct.red_MASK */
- 0, /* direct.green */
- 0x00, /* direct.green_MASK */
- 0, /* direct.blue */
- 0x00, /* direct.blue_MASK */
- 0, /* direct.alpha */
- 0x0f, /* direct.alpha_MASK */
- },
- 0, /* colormap */
- },
- XCB_PICT_FORMAT_TYPE |
- XCB_PICT_FORMAT_DEPTH |
- XCB_PICT_FORMAT_RED_MASK |
- XCB_PICT_FORMAT_GREEN_MASK |
- XCB_PICT_FORMAT_BLUE_MASK |
- XCB_PICT_FORMAT_ALPHA |
- XCB_PICT_FORMAT_ALPHA_MASK,
- },
- /* XCB_PICT_STANDARD_A_1 */
- {
- {
- 0, /* id */
- XCB_RENDER_PICT_TYPE_DIRECT, /* type */
- 1, /* depth */
- { 0 }, /* pad */
- { /* direct */
- 0, /* direct.red */
- 0x00, /* direct.red_MASK */
- 0, /* direct.green */
- 0x00, /* direct.green_MASK */
- 0, /* direct.blue */
- 0x00, /* direct.blue_MASK */
- 0, /* direct.alpha */
- 0x01, /* direct.alpha_MASK */
- },
- 0, /* colormap */
- },
- XCB_PICT_FORMAT_TYPE |
- XCB_PICT_FORMAT_DEPTH |
- XCB_PICT_FORMAT_RED_MASK |
- XCB_PICT_FORMAT_GREEN_MASK |
- XCB_PICT_FORMAT_BLUE_MASK |
- XCB_PICT_FORMAT_ALPHA |
- XCB_PICT_FORMAT_ALPHA_MASK,
- },
- };
-
- if (format < 0 || format >= sizeof(standardFormats) / sizeof(*standardFormats))
- return 0;
-
- return xcb_render_util_find_format (formats,
- standardFormats[format].mask,
- &standardFormats[format].templ,
- 0);
-}