qt6-bb10/src
Morten Johan Sørvig 5194817941 Cocoa: optimize backingstore flush on 10-bit displays
Qt draws the backing store to the window using CoreGrahics,
which will trigger a slow RGB32 -> RGB64 conversion
when the output display is a deep color display.

Disable NSWindow dynamicDepthLimit and force the depthLimit
to WindowDepthTwentyforBitRGB for the common case of
8-bit-per-component raster surfaces.

This was benchmarked by resizing a simple QRasterWindow
test case which fills the window area using QPainter::fillRect().

Before:

67.1%  rgba64_image_mark_rgb32
10.8%  __vImageCopyBuffer_block_invoke
6.0%   madvise
5.0%   _kernelrpc_mach_vm_deallocate_trap
4.1%   qt_memfill32(unsigned int*, unsigned int, int)

After:

30.7%  __vImageCopyBuffer_block_invoke
20.3%  madvise
12.3%  __vOverwriteChannelsWithScalar_ARGB8888_block_invoke
12.2%  qt_memfill32(unsigned int*, unsigned int, int)
4.6%   _kernelrpc_mach_vm_deallocate_trap

The test program now spends significantly more of its
time allocating/deallocating the backing store (madvise),
and running the Qt paint event (qt_memfill32).

Task-number: QTBUG-47660
Change-Id: I878be7a0e6eee4ad798f7a53f7f9f79b7950af26
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-11-06 14:31:53 +00:00
..
3rdparty Freetype: Also list BDF, PCF, ZLIB licenses 2017-10-26 12:16:11 +00:00
android Android: fix missing wheel events 2017-06-18 12:59:14 +00:00
angle ANGLE: Fix compilation with MinGW 2017-10-16 15:47:03 +00:00
concurrent Adapt to the C++ SIC introduced by P0012: noexcept specialization 2017-05-03 02:39:56 +00:00
corelib qGlobalQHashSeed: initialize the seed before returning it 2017-11-04 19:11:41 +00:00
dbus Fix clazy-strict-iterators 2017-10-25 09:19:19 +00:00
gui Fix memory corruption on scaled emojis 2017-11-06 14:03:44 +00:00
network Fix indentation 2017-11-05 07:06:29 +00:00
opengl Make high-dpi QGLWidget work cross platform 2017-08-02 21:58:21 +00:00
openglextensions Also release winmain, qopenglextensions under commercial licenses 2016-11-18 16:19:56 +00:00
platformheaders Doc: rephrase parameter description to avoid qdoc error message 2017-04-18 10:37:50 +00:00
platformsupport Fix memory corruption on scaled emojis 2017-11-06 14:03:44 +00:00
plugins Cocoa: optimize backingstore flush on 10-bit displays 2017-11-06 14:31:53 +00:00
printsupport Convert features.completer to QT_[REQUIRE_]CONFIG 2017-09-04 11:28:02 +00:00
sql Add documentation about not having QSqlDatabase objects kept around 2017-09-08 17:31:03 +00:00
testlib testlib: start sharing common helper functions 2017-11-04 20:11:22 +00:00
tools Fix clazy-strict-iterators 2017-10-25 09:19:19 +00:00
widgets Windows: Use SM_CXSMICON instead of SM_CXICON for the tray icon size 2017-11-04 19:04:37 +00:00
winmain Merge remote-tracking branch 'origin/5.8' into 5.9 2017-02-08 15:49:18 +01:00
xml Prefer rvalue versions of toLatin() and toUtf8() 2017-03-30 20:31:59 +00:00
src.pro Merge remote-tracking branch 'origin/5.8' into 5.9 2017-03-27 10:42:08 +02:00