3 ms·
This is literally false for Qt. Here's the code: https://github.com/qt/qtbase/blob/dev/src/plugins/platforms/xcb/nativepainting/qpaintengine_x11.cpp#L943 https:
by jcelerier 4y ago
This is literally false for Qt.
Here's the code: https://github.com/qt/qtbase/blob/dev/src/plugins/platforms/xcb/nativepainting/qpaintengine_x11.cpp#L943 https://github.com/qt/qtbase/blob/dev/src/plugins/platforms/...
Here's e.g. dolphin rendered with it here over ssh: https://imgur.com/bLnop55 https://imgur.com/bLnop55
> All of them except blitting pixmaps are basically not useful for a modern desktop.
that's ridiculous. Most software is basically a succession of drawLines / drawRect calls with the occasional pixmap.
- kllrnohj 4y agoHow much of that dolphin UI is hitting X drawing commands, which appears from your source link to be the simple case only, and how many are rendered to pixmaps and only composited by X? All of the text, for example, is rendered by QT and sent as pixmaps. The drawTextItem path doesn't ever attempt to use XDrawText
- jcelerier 4y agoWhat simple case ? Every call to drawRect/drawLine that I can see at a glance will end up inside X functions - e.g. calls to QPaintEngine::drawRects will just end up in the function below. And that's the huge majority of the UI. Anyways, what matters to me is that I can resize the window without any lag and compression - it immediately becomes much more laggy and redraw-artefact-y if I disable X11 painting when I access my remote machines so it's pretty obvious when things are using it
- tinus_hn 4y agoIt’s the simple case of erasing the buffer before blitting other buffers onto it. I hope you agree that clearing is not the interesting part of drawing a window.
- jcelerier 4y ago> It’s the simple case of erasing the buffer before blitting other buffers onto it. ... but those buffers are going to be paint with the same calls to drawRect. If I look at my software's draw calls, the huge majority are calls to such drawLine / drawRect / drawRects with the occasional small text or pixmap