Hi, Allan!

It is nice to ear you are working is a adjoint part of color management in Qt! I think we should coordinate a couple of things to make sure we can merge our efforts later.

Basically, for implementing correct frame buffer compositing I need to know the following points:

1) Color space of the framebuffer (swap chain) of the root window. It is usually set by QSurfaceFormat::setDefaultFormat(). Right now I implemented that by extending QSurfaceFormat::ColorSpace enum (see [1]). Do you think it is okay?

2) When rendering legacy Qt widgets, I assume that all of them just have sRGB color when converting them into the framebuffer's color space. See [2]. Is such assumption okay?

3) When composing QOpenGLWidgets into the framebuffer I need to know their color space as well. Should I also reuse enum from QSurfaceFormat::ColorSpace or better introduce some other enum to avoid dependency to QSurfaceFormat? See TODO note in [3]

4) Btw, do you have any idea how ICC calibrated and profiled displays are expected to behave when an application uses p2020-pq or p709-g10 for the framebuffer color space?


[1] - https://github.com/dimula73/qtbase/commit/2a525823f04daaf4ef3d0dffce5d2dc52072ec85#diff-2714c4324bddedfa531c6cfd9b7e3ff3L90 [2] - https://github.com/dimula73/qtbase/commit/765babfc259f9acfa18671db940087d934d574fc#diff-ee6dcc517ae5e38fa93de3a663621648R434 [3] - https://github.com/dimula73/qtbase/commit/765babfc259f9acfa18671db940087d934d574fc#diff-ee6dcc517ae5e38fa93de3a663621648R301

On 26.11.2018 11:10, Allan Sandfeld Jensen wrote:
On Mittwoch, 21. November 2018 10:43:57 CET Boudewijn Rempt wrote:
We've been working with Intel for some time now on figuring out how to
support HDR in Krita. Dmitry has made some initial progress, hacking on
Angle and Qt to make this possible. Right now, only Windows and Direct3D
support HDR, though Intel is also working on support on Linux.

Other Qt applications, like VLC, implement a custom Direct3D widget, but
since all our code is opengl, that wouldn't have worked for Krita.

Here's the first report with some links to code: https://
dimula73.blogspot.com/2018/11/krita-fall-2018-sprint-results-hdr.html

What I'm wondering is, have other people been working on this as well, or
thinking about it? And what would be needed to get our code upstreamed. I
remember that trying to get the modernized code for QOpenGLPainter pushed
was quite hard, so I wanted to reach out as soon as possible.
I have been working on it and have a plan for it.  The first steps is a color
space system, see https://codereview.qt-project.org/234095.

Then the very basic of extended colors https://codereview.qt-project.org/
233735

Next I have some work toward an 4xfp16 based rendering backend and image
support, possibly removing the 4xuint16 backend at the same time so there is
only one high-color precision backend.

Then we just need a way to connect that to a backing store, such as using
scRGB in OpenGL which looks like what you have been wokring on :)

Best Regards
'Allan


_______________________________________________
Development mailing list
[email protected]
https://lists.qt-project.org/listinfo/development

--
Dmitry Kazakov

_______________________________________________
Development mailing list
[email protected]
https://lists.qt-project.org/listinfo/development

Reply via email to