[need testing] Krita HDR support on Wayland

Hi, all!

I have just merged the Wayland HDR support into Krita Next (nightly)! If you happen to have an HDR-capable display and use Linux/Wayland and have a bit of time to test the new feature, I would be really appreaciate a little bit of help with testing.

The situation is actually a little bit complicated, since there are numerous implementations of the Wayland protocol. I have tested with KWin only, and it would be nice to test on other compositors as well.

Package (uses Qt6):

How to run in Wayland mode:

QT_QPA_PLATFORM=wayland krita-*.AppImage

What changed (and should be tested):

  1. The color management settings page has changed completely:

    To get proper color management (and HDR) you need to check Enable canvas color management checkbox and make sure that Current canvas surface bit depth label says 10-bit. Please take it into account that the change of canvas’ bit-depth can requires Krita restart. It happens due to technical limitations of Qt.

  2. After you made sure that Krita uses 10-bit mode, you can enable HDR in your window manager, e.g. in KWin. Krita should detect it instantly (without any restart).

    Good HDR test images can be found here: GitHub - AcademySoftwareFoundation/openexr-images: Collection of images associated with the OpenEXR distribution

  3. If you have multiple displays, one of which HDR, and the other not, then moving Krita’s window between the screens should enable/disable HDR.

  4. [for SDR mode] Image->Image Properties->Softproofing page has been completely rewritten. Now there is no ā€œAdaptationā€ slider. There is a checkbox instead. The user is left with either ā€œfull
    adaptationā€ or ā€œno adaptationā€. Please take it into account that on Wayland this checkbox currently does nothing and Krita behaves as if it is always enabled (Wayland does not support ā€œno adaptationā€ right now).

    Otherwise, Softproofing dialog should work as before in SDR mode.

Note

If you happen to face any color-management problem on Wayland, you can check (and attach to the bug report) a special color management report from Help->Show color management information. It shows information about everything, canvas, your display and your compositor.

7 Likes

I have a m28u monitor which seems to be ok for HDR according to rtings review. I’m on arch linux and on Kwin/KDE. I’ve enabled HDR in my display settings for the m28u

I followed your steps and to enable 10bit mode:

On the openxr github are there any images you recommend to view? I’m not sure how to be able to ā€œtellā€ HDR is enabled.

I did get a crash moving Krita between my m28u monitor and my non HDR monitor. I’m not sure if its related:

This plugin does not support setting window opacity
QWidgetRepaintManager: skipped frames: 0 %
[1]    61826 segmentation fault (core dumped)  QT_QPA_PLATFORM=wayland ./krita-6.0.0-prealpha-d5143427b6-x86_64.AppImage

Hi, @Reinold!

On the openxr github are there any images you recommend to view?

StillLife.exr and Desk.exr are good examples.

I’m not sure how to be able to ā€œtellā€ HDR is enabled

HDR is disabled on your system. ColorSpace->Luminance->maxLuminance value should be higher than referenceLuminance to count as HDR. And KWin usually enables st2084_pq transfer function in HDR mode.

What version of KWin you use?

UPD:

If you manage to produce a backtrace for this crash (even without debugging symbols), it would help a lot.

1 Like

Tested this build with StillLife.exr and no dice. The image loads, but is extremely blown out and for some reason has an off-white background rather than the usual Krita grey. I tested with some SDR images for comparison and those were blown out too. The ā€œdisplay formatā€ in HDR settings shows as 10 bits, although is grayed out and says 8 bits is the selected option.

I’m running an Alienware AW3423DWF monitor on Fedora 42 with a Radeon RX 7900 XTX GPU, and have been able to run other HDR applications fine. The colour management information is as follows:

Main Window 
=== 

Native window handle: QWidgetWindow(0x5604ca856c50, name="MainWindow#1Window") 

Configured mode: CanvasSurfaceMode(Rec709g22) 
Configured intent: RenderIntent(render_intent_perceptual) supported: true 
Actual intent: RenderIntent(render_intent_perceptual) 

Active surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_srgb) 
    Transfer Function:  NamedTransferFunction(transfer_function_gamma22) 
    Luminance:  Luminance(minLuminance: 50, maxLuminance: 533, referenceLuminance: 533) 
  Mastering Info: <none> 
 

Selected Profile: Krita Rec. 709 Gamma 2.2 
    primaries: Rec. 709 
    transfer:  Gamma 2.2 

    red:   xyY(x: 0.639999, y: 0.33001, Y: 0.212644) 
    green: xyY(x: 0.300008, y: 0.599998, Y: 0.715162) 
    blue:  xyY(x: 0.150002, y: 0.0599968, Y: 0.0721898) 
    white:  xyY(x: 0.312702, y: 0.328999, Y: 0.999995) 

Compositor preferred surface description: 
  Color Space: 
    Primaries:  
        Red:  xy(x: 0.708, y: 0.292) 
        Green:  xy(x: 0.17, y: 0.797) 
        Blue:  xy(x: 0.131, y: 0.046) 
        White:  xy(x: 0.349932, y: 0.355627) 
    Transfer Function:  NamedTransferFunction(transfer_function_st2084_pq) 
    Luminance:  Luminance(minLuminance: 50, maxLuminance: 10000, referenceLuminance: 533) 
  Mastering Info: 
    Primaries:  
        Red:  xy(x: 0.707031, y: 0.28418) 
        Green:  xy(x: 0.245117, y: 0.71582) 
        Blue:  xy(x: 0.146484, y: 0.052734) 
        White:  xy(x: 0.349932, y: 0.355627) 
    Luminance:  MasteringLuminance(minLuminance: 40, maxLuminance: 761) 
    Max CLL:  "761" 
    Max FALL:  "223" 
 

 
Document: "document_0" path: "/home/sjohal/Downloads/StillLife.exr" 
=== 

Native window handle: QWidgetWindow(0x5604d7db5070, name="KisOpenGLCanvas2ClassWindow") 

(canvas bit depth report) 

Texture Format:  0x8059  ( GL_RGB10_A2 ) 
FBO Buffer Size:  R:  10   G:  10   B:  10   A:  0 
Window Buffer Size:  R:  10   G:  10   B:  10   A:  0 
Global Buffer Size:  R:  10   G:  10   B:  10   A:  2 

(canvas surface color manager)

Configured mode: CanvasSurfaceMode(Preferred) 
Configured intent: RenderIntent(render_intent_perceptual) supported: true 
Actual intent: RenderIntent(render_intent_perceptual) 

Active surface description: 
  Color Space: 
    Primaries:  
        Red:  xy(x: 0.708, y: 0.292) 
        Green:  xy(x: 0.17, y: 0.797) 
        Blue:  xy(x: 0.131, y: 0.046) 
        White:  xy(x: 0.349932, y: 0.355627) 
    Transfer Function:  NamedTransferFunction(transfer_function_gamma22) 
    Luminance:  Luminance(minLuminance: 0, maxLuminance: 10000, referenceLuminance: 80) 
  Mastering Info: <none> 
 

Selected Profile: Krita Unspecified Gamma 2.2 
    primaries: Unspecified 
    transfer:  Gamma 2.2 

    red:   xyY(x: 0.70801, y: 0.291995, Y: 0.295195) 
    green: xyY(x: 0.170002, y: 0.796995, Y: 0.660065) 
    blue:  xyY(x: 0.131005, y: 0.046004, Y: 0.0447535) 
    white:  xyY(x: 0.34993, y: 0.355629, Y: 1.00001) 

Compositor preferred surface description: 
  Color Space: 
    Primaries:  
        Red:  xy(x: 0.708, y: 0.292) 
        Green:  xy(x: 0.17, y: 0.797) 
        Blue:  xy(x: 0.131, y: 0.046) 
        White:  xy(x: 0.349932, y: 0.355627) 
    Transfer Function:  NamedTransferFunction(transfer_function_st2084_pq) 
    Luminance:  Luminance(minLuminance: 50, maxLuminance: 10000, referenceLuminance: 533) 
  Mastering Info: 
    Primaries:  
        Red:  xy(x: 0.707031, y: 0.28418) 
        Green:  xy(x: 0.245117, y: 0.71582) 
        Blue:  xy(x: 0.146484, y: 0.052734) 
        White:  xy(x: 0.349932, y: 0.355627) 
    Luminance:  MasteringLuminance(minLuminance: 40, maxLuminance: 761) 
    Max CLL:  "761" 
    Max FALL:  "223" 
 

 
Screen: "DP-1" "Dell Inc." "AW3423DWF" [CURRENT] 
=== 

  Color Space: 
    Primaries:  
        Red:  xy(x: 0.708, y: 0.292) 
        Green:  xy(x: 0.17, y: 0.797) 
        Blue:  xy(x: 0.131, y: 0.046) 
        White:  xy(x: 0.349932, y: 0.355627) 
    Transfer Function:  NamedTransferFunction(transfer_function_st2084_pq) 
    Luminance:  Luminance(minLuminance: 50, maxLuminance: 10000, referenceLuminance: 533) 
  Mastering Info: 
    Primaries:  
        Red:  xy(x: 0.707031, y: 0.28418) 
        Green:  xy(x: 0.245117, y: 0.71582) 
        Blue:  xy(x: 0.146484, y: 0.052734) 
        White:  xy(x: 0.349932, y: 0.355627) 
    Luminance:  MasteringLuminance(minLuminance: 40, maxLuminance: 761) 
    Max CLL:  "761" 
    Max FALL:  "223" 
 
Color management plugin report 
=== 

Wayland color management plugin report 

Supported Features: 
    feature_icc_v2_v4: no
    feature_parametric: yes
    feature_set_primaries: yes
    feature_set_tf_power: no
    feature_set_luminances: yes
    feature_set_mastering_display_primaries: yes
    feature_extended_target_volume: yes
    feature_windows_scrgb: yes

Supported Render Intents:
    render_intent_perceptual: yes
    render_intent_relative: yes
    render_intent_saturation: no
    render_intent_absolute: yes
    render_intent_relative_bpc: yes

Supported Transfer Functions:
    transfer_function_bt1886: no
    transfer_function_gamma22: yes
    transfer_function_gamma28: no
    transfer_function_st240: no
    transfer_function_ext_linear: yes
    transfer_function_log_100: no
    transfer_function_log_316: no
    transfer_function_xvycc: no
    transfer_function_srgb: yes
    transfer_function_ext_srgb: no
    transfer_function_st2084_pq: yes
    transfer_function_st428: no
    transfer_function_hlg: no

Supported Primaries:
    primaries_srgb: yes
    primaries_pal_m: yes
    primaries_pal: yes
    primaries_ntsc: yes
    primaries_generic_film: yes
    primaries_bt2020: yes
    primaries_cie1931_xyz: yes
    primaries_dci_p3: yes
    primaries_display_p3: yes
    primaries_adobe_rgb: yes

on gnome 48 (mutter) + Fedora, tested with image BrightRings.exr and the latest krita appimage git.
Monitor: Dell S3422DWG
HDR setup and results:

Commandline output:
export QT_QPA_PLATFORM=wayland

./krita-*.AppImage
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
/tmp/.mount_krita-fEJKpc/usr/lib/krita-python-libs/krita added to PYTHONPATH
qrc:/TextAlign.qml:269:9: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:275:13
qrc:/TextAlign.qml:252:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:260:17
qrc:/TextAlign.qml:238:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:245:17
qrc:/TextAlign.qml:225:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:233:17
qrc:/TextAlign.qml:269:9: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:275:13
qrc:/TextAlign.qml:252:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:260:17
qrc:/TextAlign.qml:238:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:245:17
qrc:/TextAlign.qml:225:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:233:17
qrc:/TextIndent.qml:102:9: QML RowLayout: Binding loop detected for property "height"
qrc:/TextIndent.qml:102:9: QML RowLayout: Binding loop detected for property "height"
FPS-DEBUG: Frame compression mode: two frames (default)
No decoration plugins available. Running with no decorations.
The cached device pixel ratio value was stale on window update.  Please file a QTBUG which explains how to reproduce.
qt.qpa.wayland: eglSwapBuffers failed with 0x300d, surface: 0x0
The cached device pixel ratio value was stale on window update.  Please file a QTBUG which explains how to reproduce.
krita.general: WARNING: Uncategorized action "krita_filter_edge detection" Dropping...
krita.general: WARNING: Uncategorized action "krita_filter_fastcoloroverlay" Dropping...
krita.general: WARNING: Uncategorized action "krita_filter_resettransparent" Dropping...
krita.general: WARNING: Uncategorized action "composite_actions" Dropping...
krita.general: WARNING: Uncategorized action "paintops" Dropping...
krita.general: WARNING: Uncategorized action "dockerBox" Dropping...
krita.general: WARNING: Uncategorized action "interpolation_constant" Dropping...
krita.general: WARNING: Uncategorized action "interpolation_linear" Dropping...
krita.general: WARNING: Uncategorized action "interpolation_bezier" Dropping...
krita.general: WARNING: Uncategorized action "tangents_sharp" Dropping...
krita.general: WARNING: Uncategorized action "tangents_smooth" Dropping...
krita.general: WARNING: Uncategorized action "zoom_to_fit_range" Dropping...
krita.general: WARNING: Uncategorized action "zoom_to_fit_curve" Dropping...
krita.general: WARNING: Uncategorized action "expanding_spacer_0" Dropping...
krita.general: WARNING: Uncategorized action "expanding_spacer_1" Dropping...
krita.general: WARNING: Uncategorized action "python_scripter" Dropping...
krita.general: WARNING: Uncategorized action "color_space" Dropping...
krita.general: WARNING: Uncategorized action "document_tools" Dropping...
krita.general: WARNING: Uncategorized action "export_layers" Dropping...
krita.general: WARNING: Uncategorized action "filter_manager" Dropping...
krita.general: WARNING: Uncategorized action "ten_scripts" Dropping...
krita.general: WARNING: Uncategorized action "editToolBar" Dropping...
krita.general: WARNING: Uncategorized action "customToolBar1" Dropping...
krita.general: WARNING: Uncategorized action "customToolBar2" Dropping...
krita.general: WARNING: The following shortcuts are not registered in the collection, they might have wrong shortcuts in the end:
krita.general: "histogram"
krita.general: "krita_filter_top edge detections"
krita.general: "krita_filter_sobel"
krita.general: "logcatdump"
krita.general: "krita_filter_bottom edge detections"
krita.general: "select_layout"
krita.general: "krita_filter_right edge detections"
krita.general: "show_tool_options"
krita.general: "options_configure_keybinding"
krita.general: "create_bundle"
krita.general: "help_report_bug"
krita.general: "krita_filter_left edge detections"
krita.general: "delete_keyframe"
krita.general: "crashlog"
krita.general: "svg_settings"
krita.general: === end ===
Failed to fetch display info: "current platform doesn't support fetching display information"
WARNING: got a key-up for a key (0x63) which is NOT reported to be pressed!

X11 running through XWayland results:

commandline output:
export QT_QPA_PLATFORM=xcb

./krita-*.AppImage
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
/tmp/.mount_krita-AJHaGi/usr/lib/krita-python-libs/krita added to PYTHONPATH
qrc:/TextAlign.qml:269:9: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:275:13
qrc:/TextAlign.qml:252:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:260:17
qrc:/TextAlign.qml:238:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:245:17
qrc:/TextAlign.qml:225:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:233:17
qrc:/TextAlign.qml:269:9: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:275:13
qrc:/TextAlign.qml:252:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:260:17
qrc:/TextAlign.qml:238:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:245:17
qrc:/TextAlign.qml:225:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:233:17
qrc:/TextIndent.qml:102:9: QML RowLayout: Binding loop detected for property "height"
qrc:/TextIndent.qml:102:9: QML RowLayout: Binding loop detected for property "height"
FPS-DEBUG: Frame compression mode: two frames (default)
The imageRectInWidgetPixels topLeft() does not match the documentOffsetF!
    imageRectInWidgetPixels: QRectF(-0.6,-0.6 0x0)
    documentOffsetF: QPointF(1,1)
QWidgetRepaintManager: skipped frames: 0 %

Hi, @olderocean!

Please attach your Help->Show color management information report. Does the image actually look like HDR on your screen?

The screenshot of the settings page looks like HDR is actually enabled by the compositor :slight_smile:

1 Like

Hi, @heythatsprettygood!

Tested this build with StillLife.exr and no dice. The image loads, but is extremely blown out and for some reason has an off-white background rather than the usual Krita grey

The HDR report says that, while compositor reports that transfer_function_st2084_pq is preferred, Krita doesn’t select it. Could you verify that you have ā€œPreferredā€ surface format selected?

I can confirm that it is set to preferred mode. It seems this issue has just fixed itself, as for some reason some system updates I have applied between the last test and now have caused the images to no longer be blown out, and they appear to display correctly, and they definitely have different colours than SDR. However, the HDR settings are still greyed out.

For wayland:

Main Window 
=== 

Native window handle: QWidgetWindow(0x55deb472a290, name="MainWindow#1Window") 

Configured mode: CanvasSurfaceMode(Rec709g22) 
Configured intent: RenderIntent(render_intent_perceptual) supported: true 
Actual intent: RenderIntent(render_intent_perceptual) 

Active surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_srgb) 
    Transfer Function:  NamedTransferFunction(transfer_function_gamma22) 
    Luminance:  Luminance(minLuminance: 50, maxLuminance: 47, referenceLuminance: 47) 
  Mastering Info: <none> 
 

Selected Profile: Krita Rec. 709 Gamma 2.2 
    primaries: Rec. 709 
    transfer:  Gamma 2.2 

    red:   xyY(x: 0.639999, y: 0.33001, Y: 0.212644) 
    green: xyY(x: 0.300008, y: 0.599998, Y: 0.715162) 
    blue:  xyY(x: 0.150002, y: 0.0599968, Y: 0.0721898) 
    white:  xyY(x: 0.312702, y: 0.328999, Y: 0.999995) 

Compositor preferred surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_st2084_pq) 
    Luminance:  Luminance(minLuminance: 50, maxLuminance: 10000, referenceLuminance: 47) 
  Mastering Info: <none> 
 

 
Document: "document_0" path: "/var/home/traveler/Pictures/BrightRings.exr" 
=== 

Native window handle: QWidgetWindow(0x55dec0af1f40, name="KisOpenGLCanvas2ClassWindow") 

(canvas bit depth report) 

Texture Format:  0x8059  ( GL_RGB10_A2 ) 
FBO Buffer Size:  R:  10   G:  10   B:  10   A:  0 
Window Buffer Size:  R:  10   G:  10   B:  10   A:  0 
Global Buffer Size:  R:  10   G:  10   B:  10   A:  2 

(canvas surface color manager)

Configured mode: CanvasSurfaceMode(Preferred) 
Configured intent: RenderIntent(render_intent_perceptual) supported: true 
Actual intent: RenderIntent(render_intent_perceptual) 

Active surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_st2084_pq) 
    Luminance:  Luminance(minLuminance: 0, maxLuminance: 10000, referenceLuminance: 80) 
  Mastering Info: <none> 
 

Selected Profile: High Dynamic Range UHDTV Wide Color Gamut Display (Rec. 2020) - SMPTE ST 2084 PQ EOTF 
    primaries: Unspecified 
    transfer:  Unspecified 

    red:   xyY(x: nan, y: nan, Y: 0) 
    green: xyY(x: nan, y: nan, Y: 0) 
    blue:  xyY(x: nan, y: nan, Y: 0) 
    white:  xyY(x: 0.312699, y: 0.329, Y: 0.999996) 

Compositor preferred surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_st2084_pq) 
    Luminance:  Luminance(minLuminance: 50, maxLuminance: 10000, referenceLuminance: 47) 
  Mastering Info: <none> 
 

 
Screen: "DP-1" "DEL" "DELL S3422DWG" [CURRENT] 
=== 

  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_st2084_pq) 
    Luminance:  Luminance(minLuminance: 50, maxLuminance: 10000, referenceLuminance: 47) 
  Mastering Info: <none> 
 
Color management plugin report 
=== 

Wayland color management plugin report 

Supported Features: 
    feature_icc_v2_v4: no
    feature_parametric: yes
    feature_set_primaries: yes
    feature_set_tf_power: yes
    feature_set_luminances: yes
    feature_set_mastering_display_primaries: no
    feature_extended_target_volume: no
    feature_windows_scrgb: no

Supported Render Intents:
    render_intent_perceptual: yes
    render_intent_relative: no
    render_intent_saturation: no
    render_intent_absolute: no
    render_intent_relative_bpc: no

Supported Transfer Functions:
    transfer_function_bt1886: yes
    transfer_function_gamma22: yes
    transfer_function_gamma28: yes
    transfer_function_st240: no
    transfer_function_ext_linear: yes
    transfer_function_log_100: no
    transfer_function_log_316: no
    transfer_function_xvycc: no
    transfer_function_srgb: yes
    transfer_function_ext_srgb: no
    transfer_function_st2084_pq: yes
    transfer_function_st428: no
    transfer_function_hlg: no

Supported Primaries:
    primaries_srgb: yes
    primaries_pal_m: no
    primaries_pal: no
    primaries_ntsc: yes
    primaries_generic_film: no
    primaries_bt2020: yes
    primaries_cie1931_xyz: no
    primaries_dci_p3: no
    primaries_display_p3: no
    primaries_adobe_rgb: no

For Xwayland:

Main Window 
=== 

Native window handle: QWidgetWindow(0x7f59b0002a10, name="MainWindow#1Window") 

Surface color management is not supported on this platform
 
Color management plugin report 
=== 

<no information available> 

Hi, @olderocean!

The report says that you have HDR enable and Krita uses it. Doesn’t the image look like HDR visually?

This is how it looks on my device:

HDR mode (all spirals are just ā€œvery brightā€)

SDR mode (spirals are colored, they are not bright, just maximized SDR color of the same brightness as the square below)

For what it’s worth, I’m on KDE Plasma and KWin 6.5, and in short I can confirm HDR output works. HDR highlights are brighter than the SDR reference white level on my display, and clipped highlights are present in screenshots of the HDR canvas. I’ve been using Blender’s new HDR output over Vulkan on Wayland for some months already.

Main Window 
=== 

Native window handle: QWidgetWindow(0x5597c23b61f0, name="MainWindow#1Window") 

Configured mode: CanvasSurfaceMode(Rec709g22) 
Configured intent: RenderIntent(render_intent_relative_bpc) supported: true 
Actual intent: RenderIntent(render_intent_relative_bpc) 

Active surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_srgb) 
    Transfer Function:  NamedTransferFunction(transfer_function_gamma22) 
    Luminance:  Luminance(minLuminance: 0, maxLuminance: 500, referenceLuminance: 500) 
  Mastering Info: <none> 
 

Selected Profile: Krita Rec. 709 Gamma 2.2 
    primaries: Rec. 709 
    transfer:  Gamma 2.2 

    red:   xyY(x: 0.639999, y: 0.33001, Y: 0.212644) 
    green: xyY(x: 0.300008, y: 0.599998, Y: 0.715162) 
    blue:  xyY(x: 0.150002, y: 0.0599968, Y: 0.0721898) 
    white:  xyY(x: 0.312702, y: 0.328999, Y: 0.999995) 

Compositor preferred surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_gamma22) 
    Luminance:  Luminance(minLuminance: 0, maxLuminance: 1000, referenceLuminance: 500) 
  Mastering Info: 
    Primaries:  
        Red:  xy(x: 0.639648, y: 0.330078) 
        Green:  xy(x: 0.299805, y: 0.599609) 
        Blue:  xy(x: 0.150391, y: 0.05957) 
        White:  xy(x: 0.3127, y: 0.329) 
    Luminance:  MasteringLuminance(minLuminance: 50, maxLuminance: 1000) 
    Max CLL:  "1000" 
    Max FALL:  "500" 
 

 
Document: "document_0" path: "/home/snudl/Assets & Libraries/color management/Monkey Light BT2020 Green BT709.exr" 
=== 

Native window handle: QWidgetWindow(0x5597d002dc40, name="KisOpenGLCanvas2ClassWindow") 

(canvas bit depth report) 

Texture Format:  0x8059  ( GL_RGB10_A2 ) 
FBO Buffer Size:  R:  8   G:  8   B:  8   A:  8 
Window Buffer Size:  R:  8   G:  8   B:  8   A:  8 
Global Buffer Size:  R:  -1   G:  -1   B:  -1   A:  -1 

(canvas surface color manager)

Configured mode: CanvasSurfaceMode(Preferred) 
Configured intent: RenderIntent(render_intent_relative_bpc) supported: true 
Actual intent: RenderIntent(render_intent_relative_bpc) 

Active surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_gamma22) 
    Luminance:  Luminance(minLuminance: 0, maxLuminance: 1000, referenceLuminance: 500) 
  Mastering Info: <none> 
 

Selected Profile: Krita Rec. 2020 Gamma 2.2 
    primaries: Rec. 2020 
    transfer:  Gamma 2.2 

    red:   xyY(x: 0.708012, y: 0.291994, Y: 0.262696) 
    green: xyY(x: 0.169997, y: 0.797003, Y: 0.678002) 
    blue:  xyY(x: 0.130998, y: 0.0459965, Y: 0.0592973) 
    white:  xyY(x: 0.312702, y: 0.328999, Y: 0.999995) 

Compositor preferred surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_gamma22) 
    Luminance:  Luminance(minLuminance: 0, maxLuminance: 1000, referenceLuminance: 500) 
  Mastering Info: 
    Primaries:  
        Red:  xy(x: 0.639648, y: 0.330078) 
        Green:  xy(x: 0.299805, y: 0.599609) 
        Blue:  xy(x: 0.150391, y: 0.05957) 
        White:  xy(x: 0.3127, y: 0.329) 
    Luminance:  MasteringLuminance(minLuminance: 50, maxLuminance: 1000) 
    Max CLL:  "1000" 
    Max FALL:  "500" 
 

 
Screen: "HDMI-A-2" "LG Electronics" "LG TV SSCR2" [CURRENT] 
=== 

  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_st2084_pq) 
    Luminance:  Luminance(minLuminance: 50, maxLuminance: 10000, referenceLuminance: 500) 
  Mastering Info: 
    Primaries:  
        Red:  xy(x: 0.639648, y: 0.330078) 
        Green:  xy(x: 0.299805, y: 0.599609) 
        Blue:  xy(x: 0.150391, y: 0.05957) 
        White:  xy(x: 0.3127, y: 0.329) 
    Luminance:  MasteringLuminance(minLuminance: 50, maxLuminance: 1000) 
    Max CLL:  "1000" 
    Max FALL:  "500" 
 
Color management plugin report 
=== 

Wayland color management plugin report 

Supported Features: 
    feature_icc_v2_v4: no
    feature_parametric: yes
    feature_set_primaries: yes
    feature_set_tf_power: no
    feature_set_luminances: yes
    feature_set_mastering_display_primaries: yes
    feature_extended_target_volume: yes
    feature_windows_scrgb: yes

Supported Render Intents:
    render_intent_perceptual: yes
    render_intent_relative: yes
    render_intent_saturation: no
    render_intent_absolute: yes
    render_intent_relative_bpc: yes

Supported Transfer Functions:
    transfer_function_bt1886: yes
    transfer_function_gamma22: yes
    transfer_function_gamma28: no
    transfer_function_st240: no
    transfer_function_ext_linear: yes
    transfer_function_log_100: no
    transfer_function_log_316: no
    transfer_function_xvycc: no
    transfer_function_srgb: no
    transfer_function_ext_srgb: no
    transfer_function_st2084_pq: yes
    transfer_function_st428: no
    transfer_function_hlg: no

Supported Primaries:
    primaries_srgb: yes
    primaries_pal_m: yes
    primaries_pal: yes
    primaries_ntsc: yes
    primaries_generic_film: yes
    primaries_bt2020: yes
    primaries_cie1931_xyz: yes
    primaries_dci_p3: yes
    primaries_display_p3: yes
    primaries_adobe_rgb: yes

However, I have to do some tweaking to get it going and there are some quirks with the HDR.

This may be out of scope for what you want tested, but I wanted to protocol it anyway. The AppImage does not like the global menu widget or application menu in the titlebar, so I have to disable those, and I also had to remove some krita.org/krita.conf file that contained MenuBar=Disabled to even get access to the main menu. Next, I can’t enable the Canvas Graphics Acceleration checkbox in the Display settings at all. The file kritadisplayrc would always get OpenGLRenderer=none written into it whenever I tweak or close the settings, but if I overwrite it with OpenGLRenderer=OPENGL and restart the AppImage, HDR output works again. I can set Canvas surface bit depth to 10-bit in the settings, but Current canvas surface bit depth still reports 8-bit with HDR.

With the HDR canvas working, the HDR content brightness seems to be pinned to the HDR max nits value in the system settings. When I try changing Plasma’s screen brightness slider, Krita’s HDR canvas always readjusts itself to the same absolute luminance on the display no matter how low the screen brightness is set. That behavior is very different to Blender’s display HDR or mpv showing an HDR video, for example, where the HDR content exposure is scaled along with the rest of the window by the screen brightness and SDR reference nits level. So comparing an EXR image, Blender sets the scene 1.0 color brightness to the current SDR luminance and brighter color values use the display’s available HDR overhead, while Krita clips anything above 1.0 regardless of HDR, unless the exposure is adjusted to compensate.

Hi, @Snudl!

Your report has three different issues. Let’s handle them separately:

  1. Clipped HDR brightness

    the HDR content brightness seems to be pinned to the HDR max nits value in the system settings

    Yes, that is the problem of KWin changing behavior in version 6.5. I have pushed a patch,
    could you please try this build when it builds?

  2. Global menu

    The AppImage does not like the global menu widget

    Well, it is unrelated, Krita never was friendly to global menus :slight_smile:

  3. Renderer selection issues

    I can’t enable the Canvas Graphics Acceleration checkbox in the Display settings at all

    Can you somewhat reliably reproduce this issue? I cannot get it here, but your log gives some hints. What happens if you enable ā€œGraphics Accelerationā€, set ā€œ10-bitā€ in the color management settings and then restart Krita? Your log says that your Krita uses 8-bit surface, which is not enough for HDR.

Could you make the following log for me?

Save the Krita output with these switches and the report from the Help menu :slight_smile:

QT_LOGGING_RULES=krita.opengl=true QT_QPA_PLATFORM=wayland krita-*.AppImage
1 Like

Okay, good news and not so good news.

I’ve had some weird issue. After the first successful launch of the new Krita AppImage, both the AppImage and the distro installed Krita would throw an error on startup.

libpng error: IDAT: CRC error

fish: Job 1, 'QT_LOGGING_RULES=krita.opengl=t…' terminated by signal SIGSEGV (Address boundary error)

Now they work again, though not even reinstalling libpng, upgrading the system and rebooting solved it, the error just vanished later when I started the AppImage with my preexisting user folder.

Hey, that did it! This build Krita matches Blender 5.0. HDR test images have the same overall exposure, gamma contrast and saturation between both applications. Changing the screen brightness slider now also dims the HDR canvas, while the HDR highlights still reach beyond the SDR level just like I’d expect.

It’s interesting that the Krita HDR canvas exactly matches Blender in this case, where changing the display space from an SDR space to HDR Rec. 2100 PQ or HLG causes the viewed image to have slightly less contrast. According to Blender dev Brecht, that’s due to using both the piece-wise and gamma 2.2 sRGB function and considered the current intended behavior for them.

Oh but Krita with the HDR canvas definitely has the advantage with wide gamut images now. Blender still seems to be limited to the sRGB / Rec. 709 gamut for display output, but Krita produces brilliantly saturated colors on my display. Screenshots quite literally pale in comparison, those are limited to sRGB too.

By the way, using an OCIO config in this Krita build still results in increased image exposure. Not sure this is really what’s going on, but it seems maybe the 1.0 normalized white value gets mapped to the HDR max brightness.

Well that seems unchanged. I still can’t click on Canvas Graphics Acceleration at all. I’ve set the canvas bit depth to 10-bit but it reports 8-bit and I get a warning popup on the canvas and in the log about it being in HDR mode with 8-bit. Canvas surface color space only gives me the options Preferred, Rec 709 Gamma 2.2, Rec 709 Linear, and Unmanaged.

Terminal log
āÆ QT_LOGGING_RULES=krita.opengl=true QT_QPA_PLATFORM=wayland ./krita-*.AppImage
krita.opengl: Requesting configuration for QSurfaceFormat::DefaultRenderableType 2
krita.opengl: Requesting root surface format std::pair(QColorSpace(),8)
krita.opengl: Version selected: 0 std::pair(3,3)
krita.opengl: Probing format 1 2 QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::CompatibilityProfile)
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
QEGLPlatformContext: Failed to create context: 3009
krita.opengl: OpenGL context cannot be created
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
WARNING: unsupported combination of OpenGL renderer format.renderableType() = QSurfaceFormat::DefaultRenderableType angleRenderer = 0
krita.opengl: Probing format 1 0 QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
krita.opengl: Probe returned "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2" "OpenGL ES 3.2 NVIDIA 580.105.08" true
krita.opengl: OpenGL Info

  Qt Platform Name:  "wayland"
  Vendor:  "NVIDIA Corporation"
  Renderer:  "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2"
  Driver version:  "OpenGL ES 3.2 NVIDIA 580.105.08"
  Shading language:  "OpenGL ES GLSL ES 3.20"
  Requested format:  QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
  Current format:  QSurfaceFormat(version 3.2, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 0, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 0, samples 0, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
  GL version: 3.2
  Supports deprecated functions false
  Is OpenGL ES: true
  supportsBufferMapping: true
  supportsBufferInvalidation: false
  forceDisableTextureBuffers: false
  Extensions:
     GL_NV_blend_minmax_factor
     GL_OES_get_program_binary
     GL_EXT_tessellation_shader
     GL_OES_viewport_array
     GL_OES_sample_variables
     GL_OES_element_index_uint
     GL_EXT_clip_cull_distance
     GL_KHR_robustness
     GL_EXT_robustness
     GL_EXT_shader_integer_mix
     GL_EXT_texture_view
     GL_NV_shading_rate_image
     GL_EXT_copy_image
     GL_EXT_texture_sRGB_R8
     GL_NV_instanced_arrays
     GL_EXT_EGL_image_external_wrap_modes
     GL_OES_texture_float_linear
     GL_EXT_occlusion_query_boolean
     GL_EXT_debug_label
     GL_EXT_draw_elements_base_vertex
     GL_EXT_texture_filter_minmax
     GL_NV_explicit_attrib_location
     GL_NV_representative_fragment_test
     GL_NV_texture_border_clamp
     GL_OES_tessellation_shader
     GL_OVR_multiview2
     GL_OES_mapbuffer
     GL_OES_texture_npot
     GL_KHR_no_error
     GL_EXT_shader_non_constant_global_initializers
     GL_EXT_texture_mirror_clamp_to_edge
     GL_EXT_shader_group_vote
     GL_KHR_texture_compression_astc_hdr
     GL_NV_blend_equation_advanced
     GL_NV_bindless_texture
     GL_NV_fill_rectangle
     GL_EXT_sRGB_write_control
     GL_EXT_texture_filter_anisotropic
     GL_EXT_semaphore_fd
     GL_EXT_raster_multisample
     GL_OES_vertex_half_float
     GL_NV_copy_buffer
     GL_EXT_multisampled_render_to_texture
     GL_EXT_read_format_bgra
     GL_NV_shader_atomic_fp16_vector
     GL_NV_texture_barrier
     GL_NV_image_formats
     GL_NV_polygon_mode
     GL_NV_read_stencil
     GL_EXT_shader_implicit_conversions
     GL_OES_shader_multisample_interpolation
     GL_NV_framebuffer_blit
     GL_NV_internalformat_sample_query
     GL_EXT_discard_framebuffer
     GL_EXT_multiview_texture_multisample
     GL_NV_sample_mask_override_coverage
     GL_NV_primitive_shading_rate
     GL_EXT_multiview_timer_query
     GL_NV_memory_attachment
     GL_NV_draw_vulkan_image
     GL_EXT_geometry_shader
     GL_OES_depth24
     GL_OES_texture_half_float
     GL_NV_read_depth
     GL_OES_fbo_render_mipmap
     GL_NV_sRGB_formats
     GL_EXT_frag_depth
     GL_NV_shadow_samplers_array
     GL_NV_texture_compression_s3tc_update
     GL_NV_shader_texture_footprint
     GL_NV_non_square_matrices
     GL_OES_texture_view
     GL_EXT_post_depth_coverage
     GL_KHR_parallel_shader_compile
     GL_NV_fbo_color_attachments
     GL_NV_read_buffer
     GL_EXT_texture_norm16
     GL_NV_draw_buffers
     GL_NV_shader_subgroup_partitioned
     GL_OES_rgb8_rgba8
     GL_EXT_draw_buffers_indexed
     GL_NV_geometry_shader_passthrough
     GL_NVX_blend_equation_advanced_multi_draw_buffers
     GL_OES_packed_depth_stencil
     GL_EXT_texture_storage
     GL_EXT_buffer_storage
     GL_EXT_sRGB
     GL_OES_compressed_ETC1_RGB8_texture
     GL_EXT_base_instance
     GL_NV_memory_object_sparse
     GL_KHR_blend_equation_advanced
     GL_EXT_shader_io_blocks
     GL_OES_depth32
     GL_OES_surfaceless_context
     GL_OES_texture_buffer
     GL_EXT_map_buffer_range
     GL_EXT_texture_rg
     GL_OES_draw_buffers_indexed
     GL_EXT_shader_texture_lod
     GL_EXT_conservative_depth
     GL_NV_viewport_array2
     GL_OES_texture_half_float_linear
     GL_EXT_texture_border_clamp
     GL_EXT_multi_draw_indirect
     GL_KHR_shader_subgroup
     GL_NV_generate_mipmap_sRGB
     GL_EXT_multisample_compatibility
     GL_EXT_texture_compression_rgtc
     GL_EXT_semaphore
     GL_NV_bgr
     GL_EXT_clip_control
     GL_NV_compute_shader_derivatives
     GL_NV_fragment_shader_barycentric
     GL_NV_stereo_view_rendering
     GL_OES_texture_float
     GL_EXT_memory_object_fd
     GL_EXT_sparse_texture
     GL_EXT_window_rectangles
     GL_NV_packed_float
     GL_EXT_polygon_offset_clamp
     GL_OES_geometry_point_size
     GL_KHR_debug
     GL_KHR_texture_compression_astc_sliced_3d
     GL_OES_primitive_bounding_box
     GL_OES_standard_derivatives
     GL_EXT_tessellation_point_size
     GL_NV_texture_dirty_tile_map
     GL_NV_conservative_raster_pre_snap_triangles
     GL_OES_depth_texture_cube_map
     GL_EXT_texture_shadow_lod
     GL_NV_blend_equation_advanced_coherent
     GL_NV_viewport_array
     GL_EXT_texture_query_lod
     GL_NV_framebuffer_multisample
     GL_EXT_primitive_bounding_box
     GL_NV_pack_subimage
     GL_EXT_texture_compression_bptc
     GL_OES_tessellation_point_size
     GL_EXT_disjoint_timer_query
     GL_NV_mesh_shader
     GL_EXT_clear_texture
     GL_KHR_context_flush_control
     GL_EXT_unpack_subimage
     GL_EXT_geometry_point_size
     GL_EXT_texture_compression_s3tc
     GL_EXT_texture_cube_map_array
     GL_EXT_texture_format_BGRA8888
     GL_OES_sample_shading
     GL_NV_pixel_buffer_object
     GL_OES_EGL_image
     GL_EXT_draw_transform_feedback
     GL_NV_clip_space_w_scaling
     GL_NV_scissor_exclusive
     GL_EXT_compressed_ETC1_RGB8_sub_texture
     GL_EXT_blend_func_extended
     GL_NV_conservative_raster
     GL_NV_occlusion_query_samples
     GL_OES_geometry_shader
     GL_OES_shader_image_atomic
     GL_NV_texture_compression_latc
     GL_EXT_texture_sRGB_decode
     GL_OES_draw_elements_base_vertex
     GL_NV_timeline_semaphore
     GL_KHR_blend_equation_advanced_coherent
     GL_EXT_blend_minmax
     GL_EXT_float_blend
     GL_EXT_color_buffer_half_float
     GL_EXT_gpu_shader5
     GL_OVR_multiview_multisampled_render_to_texture
     GL_OES_copy_image
     GL_OES_texture_stencil8
     GL_OES_texture_border_clamp
     GL_EXT_render_snorm
     GL_OES_vertex_array_object
     GL_EXT_texture_compression_dxt1
     GL_NV_read_depth_stencil
     GL_NV_timer_query
     GL_NV_path_rendering_shared_edge
     GL_NV_viewport_swizzle
     GL_OES_EGL_sync
     GL_NV_EGL_stream_consumer_external
     GL_OES_EGL_image_external
     GL_EXT_separate_shader_objects
     GL_NV_framebuffer_mixed_samples
     GL_EXT_memory_object
     GL_NV_copy_image
     GL_KHR_texture_compression_astc_ldr
     GL_NV_draw_texture
     GL_NV_fragment_shader_interlock
     GL_NV_gpu_shader5
     GL_OES_depth_texture
     GL_NV_shadow_samplers_cube
     GL_NV_fragment_coverage_to_color
     GL_OES_texture_cube_map_array
     GL_ANDROID_extension_pack_es31a
     GL_EXT_depth_clamp
     GL_NV_conditional_render
     GL_NV_sample_locations
     GL_NV_draw_instanced
     GL_OVR_multiview
     GL_NV_shader_noperspective_interpolation
     GL_EXT_color_buffer_float
     GL_OES_EGL_image_external_essl3
     GL_EXT_texture_buffer
     GL_NV_path_rendering
     GL_NV_packed_float_linear
     GL_OES_shader_io_blocks
     GL_NV_texture_compression_s3tc
     GL_NV_texture_array
     GL_EXT_EGL_image_array
     GL_OES_gpu_shader5
     GL_EXT_sparse_texture2
     GL_OES_texture_storage_multisample_2d_array
     GL_EXT_shadow_samplers
     GL_EXT_EGL_image_storage
     GL_EXT_multisampled_render_to_texture2
     GL_KHR_robust_buffer_access_behavior

QPA OpenGL Detection Info
  supportsDesktopGL: false
  supportsOpenGLES: false
  isQtPreferOpenGLES: false
  Detected renderers:
NOT COOL: Duplicated action name from xml data:  "blender_layer_blender"

---

                Could not set current file 0 "preview.png"
Could not open preview.png
"Pixel Art.tag" : Incomplete tag file 5
"/home/snudl/.local/share/krita//paintoppresets/Pixel Art.tag" is not a valid tag desktop file
Could not load tag "/home/snudl/.local/share/krita//paintoppresets/Pixel Art.tag"
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
/tmp/.mount_krita-GLpCph/usr/lib/krita-python-libs/krita added to PYTHONPATH
qrc:/TextAlign.qml:269:9: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:275:13

---

qrc:/TextIndent.qml:102:9: QML RowLayout: Binding loop detected for property "height"
qrc:/TextIndent.qml:102:9: QML RowLayout: Binding loop detected for property "height"
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
FPS-DEBUG: Frame compression mode: two frames (default)
qt.qpa.wayland: eglSwapBuffers failed with 0x300d, surface: 0x0
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!

--- opened an EXR image here ---

FPS-DEBUG: Krita canvas mode is overridden: native surface true true
krita.opengl: WARNING: KisOpenGLCanvas2 was created with a 10-bit surface, while the global surface format is still set to 8-bit. Expect color banding to appear
The imageRectInWidgetPixels topLeft() does not match the documentOffsetF!
    imageRectInWidgetPixels: QRectF(-0.6,-0.6 0x0)
    documentOffsetF: QPointF(1,1)
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
krita.opengl: WARNING: HDR mode was activated on surface working in 8-bit mode! Please activate 10-bit mode in Krita's Preferences dialog and restart Krita to avoid color banding!
krita.opengl: QSurfaceFormat::defaultFormat() = QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
System info
Krita

 Version: 6.0.0-prealpha (git 335ca7a)
 Hidpi: true

Qt

  Version (compiled): 6.8.0
  Version (loaded): 6.8.0

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 6.17.7-3-cachyos
  Pretty Productname: CachyOS
  Product Type: cachyos
  Product Version: unknown
  Desktop: KDE
  Appimage build: Yes

Locale

  Languages: en_US, en_Latn_US, en
  C locale: LC_CTYPE=en_US.UTF-8;LC_NUMERIC=de_AT.UTF-8;LC_TIME=de_AT.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=de_AT.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=de_AT.UTF-8;LC_NAME=de_AT.UTF-8;LC_ADDRESS=de_AT.UTF-8;LC_TELEPHONE=de_AT.UTF-8;LC_MEASUREMENT=de_AT.UTF-8;LC_IDENTIFICATION=de_AT.UTF-8
  QLocale current: en
  QLocale system: en
  QTextCodec for locale: UTF-8

OpenGL Info

  Qt Platform Name:  "wayland"
  Vendor:  "NVIDIA Corporation"
  Renderer:  "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2"
  Driver version:  "OpenGL ES 3.2 NVIDIA 580.105.08"
  Shading language:  "OpenGL ES GLSL ES 3.20"
  Requested format:  QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
  Current format:  QSurfaceFormat(version 3.2, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 0, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 0, samples 0, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
  GL version: 3.2
  Supports deprecated functions false
  Is OpenGL ES: true
  supportsBufferMapping: true
  supportsBufferInvalidation: false
  forceDisableTextureBuffers: false
  Extensions:
     GL_EXT_shader_group_vote
     GL_NV_pack_subimage
     GL_EXT_compressed_ETC1_RGB8_sub_texture
     GL_EXT_shadow_samplers
     GL_NV_framebuffer_blit
     GL_KHR_robustness
     GL_EXT_clear_texture
     GL_OVR_multiview2
     GL_OES_draw_buffers_indexed
     GL_OES_rgb8_rgba8
     GL_OES_sample_shading
     GL_EXT_texture_compression_bptc
     GL_KHR_parallel_shader_compile
     GL_EXT_color_buffer_float
     GL_EXT_conservative_depth
     GL_EXT_robustness
     GL_EXT_window_rectangles
     GL_KHR_texture_compression_astc_hdr
     GL_OES_mapbuffer
     GL_NV_texture_border_clamp
     GL_NV_sRGB_formats
     GL_NV_framebuffer_mixed_samples
     GL_NV_conditional_render
     GL_EXT_float_blend
     GL_KHR_context_flush_control
     GL_KHR_shader_subgroup
     GL_NV_gpu_shader5
     GL_NV_representative_fragment_test
     GL_NV_shadow_samplers_cube
     GL_EXT_geometry_shader
     GL_EXT_read_format_bgra
     GL_OES_EGL_sync
     GL_OES_element_index_uint
     GL_EXT_render_snorm
     GL_EXT_geometry_point_size
     GL_NV_texture_compression_s3tc_update
     GL_NV_framebuffer_multisample
     GL_EXT_clip_control
     GL_EXT_disjoint_timer_query
     GL_NV_EGL_stream_consumer_external
     GL_EXT_base_instance
     GL_NV_blend_equation_advanced_coherent
     GL_EXT_texture_shadow_lod
     GL_NV_sample_locations
     GL_EXT_buffer_storage
     GL_EXT_gpu_shader5
     GL_NV_viewport_array2
     GL_EXT_texture_sRGB_decode
     GL_NV_copy_image
     GL_NV_copy_buffer
     GL_NV_shader_texture_footprint
     GL_EXT_EGL_image_external_wrap_modes
     GL_OES_texture_view
     GL_OVR_multiview
     GL_EXT_tessellation_shader
     GL_OES_texture_border_clamp
     GL_NV_bgr
     GL_NV_polygon_mode
     GL_OES_vertex_half_float
     GL_EXT_shader_implicit_conversions
     GL_NV_shader_noperspective_interpolation
     GL_EXT_clip_cull_distance
     GL_EXT_texture_filter_anisotropic
     GL_OES_geometry_point_size
     GL_EXT_primitive_bounding_box
     GL_OES_draw_elements_base_vertex
     GL_NV_memory_object_sparse
     GL_EXT_debug_label
     GL_EXT_texture_storage
     GL_EXT_shader_texture_lod
     GL_NV_occlusion_query_samples
     GL_OES_geometry_shader
     GL_NV_read_depth
     GL_NV_path_rendering
     GL_EXT_shader_non_constant_global_initializers
     GL_EXT_shader_io_blocks
     GL_NV_stereo_view_rendering
     GL_OES_copy_image
     GL_EXT_texture_mirror_clamp_to_edge
     GL_EXT_texture_compression_rgtc
     GL_EXT_tessellation_point_size
     GL_EXT_EGL_image_storage
     GL_KHR_texture_compression_astc_sliced_3d
     GL_EXT_sRGB
     GL_EXT_draw_buffers_indexed
     GL_NV_shading_rate_image
     GL_EXT_texture_buffer
     GL_OES_depth_texture
     GL_OES_EGL_image
     GL_NV_texture_compression_s3tc
     GL_EXT_texture_query_lod
     GL_EXT_map_buffer_range
     GL_OES_gpu_shader5
     GL_EXT_texture_format_BGRA8888
     GL_OES_compressed_ETC1_RGB8_texture
     GL_NV_timeline_semaphore
     GL_NV_packed_float_linear
     GL_EXT_multisampled_render_to_texture2
     GL_NV_fragment_shader_barycentric
     GL_EXT_multiview_timer_query
     GL_KHR_no_error
     GL_NV_compute_shader_derivatives
     GL_NV_conservative_raster
     GL_NV_fill_rectangle
     GL_EXT_raster_multisample
     GL_NV_memory_attachment
     GL_NV_read_stencil
     GL_EXT_texture_compression_s3tc
     GL_NV_fragment_shader_interlock
     GL_NV_sample_mask_override_coverage
     GL_EXT_color_buffer_half_float
     GL_EXT_separate_shader_objects
     GL_NV_shader_subgroup_partitioned
     GL_NV_draw_buffers
     GL_NV_read_depth_stencil
     GL_KHR_blend_equation_advanced
     GL_EXT_discard_framebuffer
     GL_EXT_polygon_offset_clamp
     GL_EXT_shader_integer_mix
     GL_EXT_multi_draw_indirect
     GL_EXT_frag_depth
     GL_NV_conservative_raster_pre_snap_triangles
     GL_OES_texture_cube_map_array
     GL_NV_primitive_shading_rate
     GL_NV_read_buffer
     GL_EXT_texture_view
     GL_OES_texture_stencil8
     GL_NV_shader_atomic_fp16_vector
     GL_NV_draw_vulkan_image
     GL_EXT_texture_compression_dxt1
     GL_OES_packed_depth_stencil
     GL_KHR_robust_buffer_access_behavior
     GL_OES_shader_multisample_interpolation
     GL_EXT_sRGB_write_control
     GL_OES_texture_half_float_linear
     GL_OES_depth24
     GL_EXT_occlusion_query_boolean
     GL_NV_fbo_color_attachments
     GL_NV_pixel_buffer_object
     GL_EXT_texture_rg
     GL_EXT_texture_sRGB_R8
     GL_NV_draw_instanced
     GL_EXT_texture_norm16
     GL_OES_depth_texture_cube_map
     GL_NV_texture_array
     GL_EXT_depth_clamp
     GL_EXT_semaphore_fd
     GL_NV_non_square_matrices
     GL_NV_texture_compression_latc
     GL_EXT_sparse_texture
     GL_EXT_blend_minmax
     GL_NV_bindless_texture
     GL_OES_viewport_array
     GL_NV_timer_query
     GL_EXT_unpack_subimage
     GL_NV_explicit_attrib_location
     GL_NV_instanced_arrays
     GL_NV_shadow_samplers_array
     GL_EXT_blend_func_extended
     GL_OES_tessellation_point_size
     GL_EXT_memory_object
     GL_NV_viewport_array
     GL_NV_geometry_shader_passthrough
     GL_OES_texture_float_linear
     GL_OES_fbo_render_mipmap
     GL_EXT_texture_cube_map_array
     GL_OES_vertex_array_object
     GL_EXT_sparse_texture2
     GL_KHR_texture_compression_astc_ldr
     GL_NV_internalformat_sample_query
     GL_NV_scissor_exclusive
     GL_NVX_blend_equation_advanced_multi_draw_buffers
     GL_OES_depth32
     GL_OES_texture_float
     GL_EXT_multisample_compatibility
     GL_OES_surfaceless_context
     GL_OES_sample_variables
     GL_EXT_texture_border_clamp
     GL_NV_viewport_swizzle
     GL_EXT_draw_elements_base_vertex
     GL_EXT_post_depth_coverage
     GL_OES_shader_image_atomic
     GL_EXT_copy_image
     GL_OES_EGL_image_external
     GL_OES_standard_derivatives
     GL_OES_primitive_bounding_box
     GL_NV_mesh_shader
     GL_KHR_blend_equation_advanced_coherent
     GL_EXT_multiview_texture_multisample
     GL_ANDROID_extension_pack_es31a
     GL_EXT_draw_transform_feedback
     GL_OES_texture_buffer
     GL_OES_tessellation_shader
     GL_OES_texture_npot
     GL_EXT_multisampled_render_to_texture
     GL_OES_get_program_binary
     GL_KHR_debug
     GL_NV_clip_space_w_scaling
     GL_EXT_memory_object_fd
     GL_NV_generate_mipmap_sRGB
     GL_OES_EGL_image_external_essl3
     GL_NV_packed_float
     GL_EXT_semaphore
     GL_OVR_multiview_multisampled_render_to_texture
     GL_NV_blend_equation_advanced
     GL_NV_fragment_coverage_to_color
     GL_NV_texture_barrier
     GL_EXT_EGL_image_array
     GL_OES_texture_half_float
     GL_OES_texture_storage_multisample_2d_array
     GL_OES_shader_io_blocks
     GL_NV_blend_minmax_factor
     GL_EXT_texture_filter_minmax
     GL_NV_image_formats
     GL_NV_texture_dirty_tile_map
     GL_NV_path_rendering_shared_edge
     GL_NV_draw_texture

QPA OpenGL Detection Info
  supportsDesktopGL: false
  supportsOpenGLES: false
  isQtPreferOpenGLES: false
  Detected renderers:

useBufferInvalidation (config option): false


Hardware Information

  GPU Acceleration: OPENGL
  Memory: 32013 Mb
  Number of Cores: 16
  Swap Location: /tmp
  Built for: sse2
  Base instruction set: fma3+avx2
  Supported instruction sets: fma3+avx2 avx2 fma3+avx avx fma3+sse4.2 sse4.2 sse4.1 ssse3 sse3 sse2

Current Settings

  Current Swap Location: /tmp
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 200
  Use OpenGL: true
  Use OpenGL Texture Buffer: false
  Disable Vector Optimizations: false
  Disable AVX Optimizations: false
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 420
  Use Backup Files: true
  Number of Backups Kept: 1
  Backup File Suffix: ~
  Backup Location: Same Folder as the File
  Backup Location writable: false
  Resource Location: /home/snudl/.local/share/krita
  Use Win8 Pointer Input: false
  Use RightMiddleTabletButton Workaround: false
  Levels of Detail Enabled: false
  Use Zip64: false


Loaded Python Plugins
	colorspace
	comics_project_management_tools
	documenttools
	exportlayers
	filtermanager
	lastdocumentsdocker
	mutator
	plugin_importer
	quick_settings_docker
	scripter
	tenbrushes
	tenscripts
	workflow_buttons
	colorspace
	comics_project_management_tools
	documenttools
	exportlayers
	filtermanager
	lastdocumentsdocker
	plugin_importer
	quick_settings_docker
	scripter
	tenbrushes
	tenscripts


Display Information
Number of screens: 1
	Screen: 0
		Name: HDMI-A-2
		Depth: 32
		Scale: 2
		Physical DPI30.48
		Logical DPI96
		Physical Size: 1600, 900
		Position: 0, 0
		Resolution in pixels: 1920x1080
		Manufacturer: LG Electronics
		Model: LG TV SSCR2
		Refresh Rate: 119.88
		Serial Number:
Color management info
Main Window 
=== 

Native window handle: QWidgetWindow(0x55a864a8d3f0, name="MainWindow#1Window") 

Configured mode: CanvasSurfaceMode(Rec709g22) 
Configured intent: RenderIntent(render_intent_relative_bpc) supported: true 
Actual intent: RenderIntent(render_intent_relative_bpc) 

Active surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_srgb) 
    Transfer Function:  NamedTransferFunction(transfer_function_gamma22) 
    Luminance:  Luminance(minLuminance: 0, maxLuminance: 500, referenceLuminance: 500) 
  Mastering Info: <none> 
 

Selected Profile: Krita Rec. 709 Gamma 2.2 
    primaries: Rec. 709 
    transfer:  Gamma 2.2 

    red:   xyY(x: 0.639999, y: 0.33001, Y: 0.212644) 
    green: xyY(x: 0.300008, y: 0.599998, Y: 0.715162) 
    blue:  xyY(x: 0.150002, y: 0.0599968, Y: 0.0721898) 
    white:  xyY(x: 0.312702, y: 0.328999, Y: 0.999995) 

Compositor preferred surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_gamma22) 
    Luminance:  Luminance(minLuminance: 0, maxLuminance: 1000, referenceLuminance: 500) 
  Mastering Info: 
    Primaries:  
        Red:  xy(x: 0.639648, y: 0.330078) 
        Green:  xy(x: 0.299805, y: 0.599609) 
        Blue:  xy(x: 0.150391, y: 0.05957) 
        White:  xy(x: 0.3127, y: 0.329) 
    Luminance:  MasteringLuminance(minLuminance: 50, maxLuminance: 1000) 
    Max CLL:  "1000" 
    Max FALL:  "500" 
 

 
Document: "document_0" path: "/home/snudl/Assets & Libraries/color management/Monkey Light BT2020 Green BT709.exr" 
=== 

Native window handle: QWidgetWindow(0x55a8829648f0, name="KisOpenGLCanvas2ClassWindow") 

(canvas bit depth report) 

Texture Format:  0x8059  ( GL_RGB10_A2 ) 
FBO Buffer Size:  R:  8   G:  8   B:  8   A:  8 
Window Buffer Size:  R:  8   G:  8   B:  8   A:  8 
Global Buffer Size:  R:  -1   G:  -1   B:  -1   A:  -1 

(canvas surface color manager)

Configured mode: CanvasSurfaceMode(Preferred) 
Configured intent: RenderIntent(render_intent_relative_bpc) supported: true 
Actual intent: RenderIntent(render_intent_relative_bpc) 

Active surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_st2084_pq) 
    Luminance:  Luminance(minLuminance: 0, maxLuminance: 10000, referenceLuminance: 80) 
  Mastering Info: <none> 
 

Selected Profile: High Dynamic Range UHDTV Wide Color Gamut Display (Rec. 2020) - SMPTE ST 2084 PQ EOTF 
    primaries: Unspecified 
    transfer:  Unspecified 

    red:   xyY(x: nan, y: nan, Y: 0) 
    green: xyY(x: nan, y: nan, Y: 0) 
    blue:  xyY(x: nan, y: nan, Y: 0) 
    white:  xyY(x: 0.312699, y: 0.329, Y: 0.999996) 

Compositor preferred surface description: 
  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_gamma22) 
    Luminance:  Luminance(minLuminance: 0, maxLuminance: 1000, referenceLuminance: 500) 
  Mastering Info: 
    Primaries:  
        Red:  xy(x: 0.639648, y: 0.330078) 
        Green:  xy(x: 0.299805, y: 0.599609) 
        Blue:  xy(x: 0.150391, y: 0.05957) 
        White:  xy(x: 0.3127, y: 0.329) 
    Luminance:  MasteringLuminance(minLuminance: 50, maxLuminance: 1000) 
    Max CLL:  "1000" 
    Max FALL:  "500" 
 

 
Screen: "HDMI-A-2" "LG Electronics" "LG TV SSCR2" [CURRENT] 
=== 

  Color Space: 
    Primaries:  NamedPrimaries(primaries_bt2020) 
    Transfer Function:  NamedTransferFunction(transfer_function_st2084_pq) 
    Luminance:  Luminance(minLuminance: 50, maxLuminance: 10000, referenceLuminance: 500) 
  Mastering Info: 
    Primaries:  
        Red:  xy(x: 0.639648, y: 0.330078) 
        Green:  xy(x: 0.299805, y: 0.599609) 
        Blue:  xy(x: 0.150391, y: 0.05957) 
        White:  xy(x: 0.3127, y: 0.329) 
    Luminance:  MasteringLuminance(minLuminance: 50, maxLuminance: 1000) 
    Max CLL:  "1000" 
    Max FALL:  "500" 
 
Color management plugin report 
=== 

Wayland color management plugin report 

Supported Features: 
    feature_icc_v2_v4: no
    feature_parametric: yes
    feature_set_primaries: yes
    feature_set_tf_power: no
    feature_set_luminances: yes
    feature_set_mastering_display_primaries: yes
    feature_extended_target_volume: yes
    feature_windows_scrgb: yes

Supported Render Intents:
    render_intent_perceptual: yes
    render_intent_relative: yes
    render_intent_saturation: no
    render_intent_absolute: yes
    render_intent_relative_bpc: yes

Supported Transfer Functions:
    transfer_function_bt1886: yes
    transfer_function_gamma22: yes
    transfer_function_gamma28: no
    transfer_function_st240: no
    transfer_function_ext_linear: yes
    transfer_function_log_100: no
    transfer_function_log_316: no
    transfer_function_xvycc: no
    transfer_function_srgb: no
    transfer_function_ext_srgb: no
    transfer_function_st2084_pq: yes
    transfer_function_st428: no
    transfer_function_hlg: no

Supported Primaries:
    primaries_srgb: yes
    primaries_pal_m: yes
    primaries_pal: yes
    primaries_ntsc: yes
    primaries_generic_film: yes
    primaries_bt2020: yes
    primaries_cie1931_xyz: yes
    primaries_dci_p3: yes
    primaries_display_p3: yes
    primaries_adobe_rgb: yes

Could you please elaborate about this issue a little bit?

There is a huge dispute in Wayland protocol whether sRGB images should be rendered as gamma-2.2 or srgb-piece-wise-function. Krita believes that they should be rendered with srgb-piece-wise-function, since otherwise it will break the color managed workflow for non-display outputs, like printers and topographies. It is a bit distressing to hear that Blender switches to rendering srgb as gamma-2.2.

Could you please join IRC and ping me there, so we could debug this issue? It seems like Krita fails to create a trivial openGL context on your GPU, gives up and forbids openGL at all.

I wonder why it happens. Can you run normal released Krita in openGL mode? Or at least this package in XWayland mode? (do QT_QPA_PLATFORM=xcb krita-*.AppImage to test that)

1 Like

Could you please try this build? krita-6.0.0-prealpha-69207b2ce3-x86_64.AppImage — ЯнГекс Š”иск

You need to run it with a different command line though:

KRITA_NO_COMPATIBILITY_PROFILE_WORKAROUND=1 QT_LOGGING_RULES=krita.opengl=true QT_QPA_PLATFORM=wayland krita-*.AppImage

The new switch KRITA_NO_COMPATIBILITY_PROFILE_WORKAROUND changes the behavior a little bit, so it might help. In return I need the console log only, it will show if the workaround is activated or not.

@dkazakov I sent a message on Matrix, but I don’t think I have an IRC account for relay anymore.

Terminal log
āÆ KRITA_NO_COMPATIBILITY_PROFILE_WORKAROUND=1 QT_LOGGING_RULES=krita.opengl=true QT_QPA_PLATFORM=wayland ./krita-6.0.0-prealpha-69207b2ce3-x86_64.appimage
krita.opengl: Requesting configuration for QSurfaceFormat::DefaultRenderableType 2
krita.opengl: Requesting root surface format std::pair(QColorSpace(),8)
krita.opengl: Version selected: 0 std::pair(3,3)
krita.opengl: Probing format 1 2 QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
QEGLPlatformContext: Failed to create context: 3009
krita.opengl: OpenGL context cannot be created
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
WARNING: unsupported combination of OpenGL renderer format.renderableType() = QSurfaceFormat::DefaultRenderableType angleRenderer = 0
krita.opengl: Probing format 1 0 QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
krita.opengl: Probe returned "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2" "OpenGL ES 3.2 NVIDIA 580.105.08" true
krita.opengl: OpenGL Info
 
  Qt Platform Name:  "wayland" 
  Vendor:  "NVIDIA Corporation" 
  Renderer:  "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2" 
  Driver version:  "OpenGL ES 3.2 NVIDIA 580.105.08" 
  Shading language:  "OpenGL ES GLSL ES 3.20" 
  Requested format:  QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile) 
  Current format:  QSurfaceFormat(version 3.2, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 0, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 0, samples 0, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile) 
  GL version: 3.2 
  Supports deprecated functions false 
  Is OpenGL ES: true 
  supportsBufferMapping: true 
  supportsBufferInvalidation: false 
  forceDisableTextureBuffers: false 
  Extensions: 
     GL_NV_conservative_raster_pre_snap_triangles 
     GL_NV_read_depth_stencil 
     GL_EXT_separate_shader_objects 
     GL_EXT_polygon_offset_clamp 
     GL_OES_geometry_shader 
     GL_NV_conservative_raster 
     GL_NV_bgr 
     GL_OES_texture_half_float 
     GL_EXT_texture_compression_bptc 
     GL_EXT_disjoint_timer_query 
     GL_EXT_depth_clamp 
     GL_OES_depth_texture 
     GL_OES_sample_shading 
     GL_EXT_float_blend 
     GL_NV_texture_dirty_tile_map 
     GL_EXT_multiview_texture_multisample 
     GL_EXT_copy_image 
     GL_EXT_texture_sRGB_R8 
     GL_EXT_semaphore_fd 
     GL_NV_texture_border_clamp 
     GL_OES_compressed_ETC1_RGB8_texture 
     GL_EXT_draw_transform_feedback 
     GL_NV_read_stencil 
     GL_EXT_texture_rg 
     GL_EXT_texture_shadow_lod 
     GL_NV_representative_fragment_test 
     GL_OES_tessellation_point_size 
     GL_EXT_color_buffer_float 
     GL_NV_framebuffer_blit 
     GL_OES_tessellation_shader 
     GL_OES_rgb8_rgba8 
     GL_EXT_multisampled_render_to_texture 
     GL_EXT_semaphore 
     GL_EXT_raster_multisample 
     GL_NV_fragment_coverage_to_color 
     GL_KHR_blend_equation_advanced 
     GL_NV_shader_texture_footprint 
     GL_EXT_robustness 
     GL_NV_packed_float 
     GL_OES_texture_cube_map_array 
     GL_EXT_texture_compression_dxt1 
     GL_EXT_clear_texture 
     GL_EXT_texture_compression_rgtc 
     GL_OES_shader_multisample_interpolation 
     GL_KHR_shader_subgroup 
     GL_NV_sRGB_formats 
     GL_OES_fbo_render_mipmap 
     GL_EXT_geometry_shader 
     GL_NV_primitive_shading_rate 
     GL_EXT_conservative_depth 
     GL_EXT_texture_filter_anisotropic 
     GL_NV_fbo_color_attachments 
     GL_EXT_shader_integer_mix 
     GL_EXT_draw_elements_base_vertex 
     GL_EXT_gpu_shader5 
     GL_NV_compute_shader_derivatives 
     GL_KHR_texture_compression_astc_ldr 
     GL_EXT_clip_cull_distance 
     GL_NV_shading_rate_image 
     GL_OES_mapbuffer 
     GL_EXT_multisampled_render_to_texture2 
     GL_EXT_EGL_image_storage 
     GL_NV_draw_texture 
     GL_ANDROID_extension_pack_es31a 
     GL_OES_primitive_bounding_box 
     GL_EXT_texture_cube_map_array 
     GL_NV_shadow_samplers_cube 
     GL_OES_depth_texture_cube_map 
     GL_NV_fragment_shader_interlock 
     GL_EXT_texture_storage 
     GL_OES_texture_storage_multisample_2d_array 
     GL_NV_occlusion_query_samples 
     GL_NV_gpu_shader5 
     GL_NV_framebuffer_mixed_samples 
     GL_EXT_shader_group_vote 
     GL_EXT_blend_func_extended 
     GL_NV_generate_mipmap_sRGB 
     GL_NV_memory_attachment 
     GL_KHR_robustness 
     GL_OES_packed_depth_stencil 
     GL_OES_surfaceless_context 
     GL_NV_texture_compression_latc 
     GL_EXT_window_rectangles 
     GL_NV_blend_equation_advanced 
     GL_EXT_texture_format_BGRA8888 
     GL_NV_framebuffer_multisample 
     GL_NV_texture_compression_s3tc 
     GL_OES_depth24 
     GL_OES_draw_buffers_indexed 
     GL_NV_fragment_shader_barycentric 
     GL_EXT_EGL_image_array 
     GL_NV_sample_locations 
     GL_OES_copy_image 
     GL_NV_scissor_exclusive 
     GL_EXT_frag_depth 
     GL_EXT_color_buffer_half_float 
     GL_OES_texture_stencil8 
     GL_EXT_unpack_subimage 
     GL_OES_standard_derivatives 
     GL_EXT_EGL_image_external_wrap_modes 
     GL_NV_read_depth 
     GL_EXT_tessellation_shader 
     GL_NV_shader_subgroup_partitioned 
     GL_EXT_tessellation_point_size 
     GL_NV_conditional_render 
     GL_EXT_shadow_samplers 
     GL_EXT_sRGB 
     GL_KHR_robust_buffer_access_behavior 
     GL_NV_internalformat_sample_query 
     GL_NV_read_buffer 
     GL_EXT_compressed_ETC1_RGB8_sub_texture 
     GL_OES_EGL_image_external 
     GL_OES_shader_image_atomic 
     GL_EXT_multiview_timer_query 
     GL_OES_texture_float 
     GL_EXT_texture_border_clamp 
     GL_OVR_multiview2 
     GL_NV_texture_barrier 
     GL_EXT_clip_control 
     GL_OES_geometry_point_size 
     GL_OES_EGL_sync 
     GL_NV_image_formats 
     GL_NV_pixel_buffer_object 
     GL_NV_non_square_matrices 
     GL_NV_blend_minmax_factor 
     GL_EXT_texture_compression_s3tc 
     GL_NV_clip_space_w_scaling 
     GL_OES_sample_variables 
     GL_NV_path_rendering 
     GL_OES_shader_io_blocks 
     GL_EXT_texture_query_lod 
     GL_EXT_memory_object_fd 
     GL_NV_sample_mask_override_coverage 
     GL_NV_copy_image 
     GL_KHR_parallel_shader_compile 
     GL_NV_draw_instanced 
     GL_NV_texture_array 
     GL_NV_timeline_semaphore 
     GL_EXT_texture_sRGB_decode 
     GL_OES_texture_npot 
     GL_OES_element_index_uint 
     GL_NV_timer_query 
     GL_EXT_texture_mirror_clamp_to_edge 
     GL_EXT_buffer_storage 
     GL_NV_packed_float_linear 
     GL_NV_stereo_view_rendering 
     GL_KHR_no_error 
     GL_EXT_shader_implicit_conversions 
     GL_OES_vertex_array_object 
     GL_EXT_read_format_bgra 
     GL_EXT_shader_non_constant_global_initializers 
     GL_OES_EGL_image_external_essl3 
     GL_NV_viewport_swizzle 
     GL_OES_draw_elements_base_vertex 
     GL_OES_texture_half_float_linear 
     GL_OVR_multiview_multisampled_render_to_texture 
     GL_EXT_multi_draw_indirect 
     GL_NV_memory_object_sparse 
     GL_EXT_geometry_point_size 
     GL_EXT_render_snorm 
     GL_OVR_multiview 
     GL_NV_pack_subimage 
     GL_NV_path_rendering_shared_edge 
     GL_OES_texture_buffer 
     GL_EXT_discard_framebuffer 
     GL_EXT_draw_buffers_indexed 
     GL_EXT_sparse_texture2 
     GL_EXT_shader_texture_lod 
     GL_NV_fill_rectangle 
     GL_EXT_blend_minmax 
     GL_NV_EGL_stream_consumer_external 
     GL_NV_viewport_array 
     GL_KHR_texture_compression_astc_hdr 
     GL_NV_texture_compression_s3tc_update 
     GL_NV_blend_equation_advanced_coherent 
     GL_EXT_shader_io_blocks 
     GL_EXT_texture_view 
     GL_EXT_map_buffer_range 
     GL_KHR_context_flush_control 
     GL_OES_viewport_array 
     GL_NVX_blend_equation_advanced_multi_draw_buffers 
     GL_EXT_primitive_bounding_box 
     GL_NV_draw_vulkan_image 
     GL_OES_EGL_image 
     GL_EXT_occlusion_query_boolean 
     GL_EXT_sRGB_write_control 
     GL_NV_polygon_mode 
     GL_OES_depth32 
     GL_OES_texture_float_linear 
     GL_KHR_texture_compression_astc_sliced_3d 
     GL_EXT_multisample_compatibility 
     GL_NV_viewport_array2 
     GL_OES_gpu_shader5 
     GL_NV_geometry_shader_passthrough 
     GL_NV_draw_buffers 
     GL_EXT_base_instance 
     GL_NV_shader_noperspective_interpolation 
     GL_EXT_texture_buffer 
     GL_KHR_blend_equation_advanced_coherent 
     GL_NV_instanced_arrays 
     GL_NV_explicit_attrib_location 
     GL_OES_texture_view 
     GL_EXT_texture_norm16 
     GL_EXT_texture_filter_minmax 
     GL_EXT_sparse_texture 
     GL_NV_copy_buffer 
     GL_EXT_debug_label 
     GL_NV_shader_atomic_fp16_vector 
     GL_EXT_post_depth_coverage 
     GL_KHR_debug 
     GL_NV_bindless_texture 
     GL_NV_shadow_samplers_array 
     GL_OES_texture_border_clamp 
     GL_EXT_memory_object 
     GL_OES_get_program_binary 
     GL_OES_vertex_half_float 
     GL_NV_mesh_shader 

QPA OpenGL Detection Info 
  supportsDesktopGL: false 
  supportsOpenGLES: false 
  isQtPreferOpenGLES: false 
  Detected renderers: 
INFO: prefill qrhi surface: 0
NOT COOL: Duplicated action name from xml data:  "object_order_raise"

---

KoColor debug runtime checks are active.
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
/tmp/.mount_krita-ppOAkE/usr/lib/krita-python-libs/krita added to PYTHONPATH
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
qrc:/TextAlign.qml:269:9: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:275:13
qrc:/TextAlign.qml:252:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:260:17
qrc:/TextAlign.qml:238:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:245:17
qrc:/TextAlign.qml:225:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:233:17
qrc:/TextAlign.qml:269:9: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:275:13
qrc:/TextAlign.qml:252:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:260:17
qrc:/TextAlign.qml:238:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:245:17
qrc:/TextAlign.qml:225:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:233:17
qrc:/TextIndent.qml:102:9: QML RowLayout: Binding loop detected for property "height"
qrc:/TextIndent.qml:102:9: QML RowLayout: Binding loop detected for property "height"
FPS-DEBUG: Frame compression mode: two frames (default)
qt.qpa.wayland: eglSwapBuffers failed with 0x300d, surface: 0x0
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
krita.general: WARNING: Uncategorized action "krita_filter_edge detection" Dropping...

---

krita.general: === end ===
Entering "DisplaySettingsTab::DisplaySettingsTab()" supportedRenderers = QFlags() QFlags()
Failed to fetch display info: "current platform doesn't support fetching display information"
FPS-DEBUG: Krita canvas mode is overridden: native surface true true
krita.opengl: WARNING: KisOpenGLCanvas2 was created with a 10-bit surface, while the global surface format is still set to 8-bit. Expect color banding to appear
The imageRectInWidgetPixels topLeft() does not match the documentOffsetF!
    imageRectInWidgetPixels: QRectF(-0.6,-0.6 0x0)
    documentOffsetF: QPointF(1,1)
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
This plugin does not support dynamic OpenGL loading!
krita.opengl: WARNING: HDR mode was activated on surface working in 8-bit mode! Please activate 10-bit mode in Krita's Preferences dialog and restart Krita to avoid color banding!
krita.opengl: QSurfaceFormat::defaultFormat() = QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)

No sorry, still can’t activate Canvas Graphics Acceleration. On the Krita 5.2.13 AppImage and distro package I can set OpenGL in the menu without issue.

I can only really do a visual comparison. The Krita 5.2 canvas shows consistent contrast with Blender 5.0 Color Management Display set to sRGB and the other SDR spaces, and also other image viewers. In case of an EXR I convert it to sRGB built-in to show correctly in Gwenview. The new Krita 6.0 builds HDR canvas displays images with slightly less contrast, consistent with Blender Display set to Rec. 2100 PQ or HLG and Display Emulation set to Automatic. I added an Extended sRGB color space to the OCIO config used for Blender which allows unbounded HDR values and uses the same piece-wise function - !<ExponentWithLinearTransform> {gamma: 2.4, offset: 0.055, direction: inverse}, and that one is again consistent with sRGB and the other SDR spaces. Original context from this Blender devtalk thread.

1 Like

The new Krita 6.0 builds HDR canvas displays images with slightly less contrast, consistent with Blender Display set to Rec. 2100 PQ or HLG and Display Emulation set to Automatic

Yeah, that looks like the exact result of that weird discussion, which resulted in Wayland starting to treat sRGB images as ones having gamma-2.2 space. I.e. the image you see in Krita 5.2 and ā€œBlender 5.0 Color Management Display set to sRGBā€ case you see incorrect representation of your image. And the image you see in Krita 6.0 and ā€œBlender Display set to Rec. 2100 PQā€ is actually correct.

By ā€œcorrectā€ I mean that if you convert this image into the profile of a printer, print and compare to the screen representation, the one in Krita 6.0 will look more similar to the print than in Krita 5.2 (when running on Wayland).

1 Like

Hi, @Snudl!

Could you send me the log that is printed if you run the latest AppImage (krita-6.0.0-prealpha-69207b2ce3-x86_64.AppImage) with the following command line?

QT_LOGGING_RULES=krita.opengl=true QT_QPA_PLATFORM=xcb krita-*.AppImage

It will run the AppImage in the XWayland mode, so I could compare it to the one you got in the native Wayland mode.

And does Canvas Acceleration checkbox becomes enabled in XWayland mode?

1 Like

Yep, QT_QPA_PLATFORM=xcb works, I can set Canvas Graphics Acceleration and toggle the checkbox.

Terminal log
krita.opengl: Requesting configuration for QSurfaceFormat::DefaultRenderableType 2
krita.opengl: Requesting root surface format std::pair(QColorSpace(),8)
krita.opengl: Version selected: 0 std::pair(3,3)
krita.opengl: Probing format 1 2 QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::CompatibilityProfile)
krita.opengl: Probe returned "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2" "4.6.0 NVIDIA 580.105.08" false
krita.opengl: Already probed: 2
krita.opengl: Result: "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2" "4.6.0 NVIDIA 580.105.08" true
krita.opengl: Requesting configuration for QSurfaceFormat::OpenGLES 2
krita.opengl: Requesting root surface format std::pair(QColorSpace(),8)
krita.opengl: Version selected: 1 std::pair(3,0)
krita.opengl: Probing 4 from default: QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile) 2 4
krita.opengl: Probing format 4 2 QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
krita.opengl: Probe returned "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2" "OpenGL ES 3.2 NVIDIA 580.105.08" true
krita.opengl: Result: "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2" "OpenGL ES 3.2 NVIDIA 580.105.08" true
krita.opengl: Requesting configuration for QSurfaceFormat::OpenGL 0
krita.opengl: Requesting root surface format std::pair(QColorSpace(),8)
krita.opengl: Version selected: 0 std::pair(3,3)
krita.opengl: Requesting configuration for QSurfaceFormat::OpenGL 0
krita.opengl: Requesting root surface format std::pair(QColorSpace(),10)
krita.opengl: Version selected: 0 std::pair(3,3)
krita.opengl: Requesting configuration for QSurfaceFormat::OpenGLES 2
krita.opengl: Requesting root surface format std::pair(QColorSpace(),8)
krita.opengl: Version selected: 1 std::pair(3,0)
krita.opengl: Requesting configuration for QSurfaceFormat::OpenGLES 2
krita.opengl: Requesting root surface format std::pair(QColorSpace(),10)
krita.opengl: Version selected: 1 std::pair(3,0)
krita.opengl: "Supported renderers: QFlags(0x2|0x4) "
krita.opengl: "Surface format preference list: "
krita.opengl: "* QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 10, greenBufferSize 10, blueBufferSize 10, alphaBufferSize 2, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::CompatibilityProfile) "
krita.opengl: "    2 "
krita.opengl: "* QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::CompatibilityProfile) "
krita.opengl: "    2 "
krita.opengl: "* QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 10, greenBufferSize 10, blueBufferSize 10, alphaBufferSize 2, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile) "
krita.opengl: "    4 "
krita.opengl: "* QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile) "
krita.opengl: "    4 "
krita.opengl: "Probing format... QColorSpace() 2 "
krita.opengl: Probing format 2 0 QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 10, greenBufferSize 10, blueBufferSize 10, alphaBufferSize 2, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::CompatibilityProfile)
krita.opengl: Failed to create an OpenGL context with requested bit depth. Requested: 10 Actual: 8
krita.opengl: "Probing format... QColorSpace() 2 "
krita.opengl: Probing format 2 0 QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::CompatibilityProfile)
krita.opengl: Probe returned "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2" "4.6.0 NVIDIA 580.105.08" false
krita.opengl: "Found format: QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::CompatibilityProfile) "
krita.opengl: "    2 "
krita.opengl: Probing format 2 0 QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::CompatibilityProfile)
krita.opengl: Probe returned "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2" "4.6.0 NVIDIA 580.105.08" false
krita.opengl: OpenGL Info
 
  Qt Platform Name:  "xcb" 
  Vendor:  "NVIDIA Corporation" 
  Renderer:  "NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2" 
  Driver version:  "4.6.0 NVIDIA 580.105.08" 
  Shading language:  "4.60 NVIDIA" 
  Requested format:  QSurfaceFormat(version 3.3, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::CompatibilityProfile) 
  Current format:  QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QColorSpace(), profile  QSurfaceFormat::CompatibilityProfile) 
  GL version: 4.6 
  Supports deprecated functions false 
  Is OpenGL ES: false 
  supportsBufferMapping: true 
  supportsBufferInvalidation: true 
  forceDisableTextureBuffers: false 
  Extensions: 
     GL_S3_s3tc 
     GL_ARB_texture_env_dot3 
     GL_EXT_blend_minmax 
     GL_KHR_context_flush_control 
     GL_ARB_texture_env_add 
     GL_ARB_clip_control 
     GL_ARB_texture_env_combine 
     GL_ARB_texture_query_levels 
     GL_ARB_draw_elements_base_vertex 
     GL_NV_point_sprite 
     GL_NV_multisample_filter_hint 
     GL_ARB_fragment_layer_viewport 
     GL_NV_gpu_program5 
     GL_EXT_framebuffer_multisample 
     GL_ARB_multi_bind 
     GL_ARB_cull_distance 
     GL_ARB_fragment_program_shadow 
     GL_NV_framebuffer_mixed_samples 
     GL_NV_vertex_attrib_integer_64bit 
     GL_ARB_sync 
     GL_EXT_texture_compression_s3tc 
     GL_ARB_texture_rectangle 
     GL_KHR_no_error 
     GL_NV_shader_atomic_float64 
     GL_ARB_fragment_shader 
     GL_EXT_texture_sRGB 
     GL_EXT_geometry_shader4 
     GL_NVX_progress_fence 
     GL_ARB_compute_variable_group_size 
     GL_NV_memory_object_sparse 
     GL_EXT_vertex_array_bgra 
     GL_EXT_texture_object 
     GL_KHR_blend_equation_advanced 
     GL_NV_uniform_buffer_std430_layout 
     GL_EXT_blend_color 
     GL_NV_shader_buffer_load 
     GL_NV_draw_texture 
     GL_NV_texture_rectangle 
     GL_NV_fragment_coverage_to_color 
     GL_KHR_shader_subgroup 
     GL_NV_fragment_shader_barycentric 
     GL_ARB_gpu_shader_fp64 
     GL_ARB_sample_locations 
     GL_ARB_shader_ballot 
     GL_ARB_shader_image_size 
     GL_ARB_sparse_texture_clamp 
     GL_ARB_point_parameters 
     GL_NV_internalformat_sample_query 
     GL_NV_stereo_view_rendering 
     GL_NV_conservative_raster_dilate 
     GL_ARB_texture_rg 
     GL_ARB_sampler_objects 
     GL_ARB_texture_buffer_range 
     GL_EXT_rescale_normal 
     GL_EXT_compiled_vertex_array 
     GL_ARB_transform_feedback_instanced 
     GL_EXT_direct_state_access 
     GL_EXTX_framebuffer_mixed_formats 
     GL_NV_compute_program5 
     GL_ARB_post_depth_coverage 
     GL_EXT_texture_shadow_lod 
     GL_ARB_framebuffer_no_attachments 
     GL_ARB_gpu_shader_int64 
     GL_NV_sample_mask_override_coverage 
     GL_NV_half_float 
     GL_SGIX_depth_texture 
     GL_ARB_transpose_matrix 
     GL_KHR_robust_buffer_access_behavior 
     GL_NV_conservative_raster_pre_snap_triangles 
     GL_NV_shader_subgroup_partitioned 
     GL_ARB_get_program_binary 
     GL_ARB_texture_float 
     GL_NV_blend_square 
     GL_EXT_texture_lod_bias 
     GL_ARB_texture_barrier 
     GL_NV_gpu_program_multiview 
     GL_NV_uniform_buffer_unified_memory 
     GL_NV_texture_dirty_tile_map 
     GL_EXT_transform_feedback2 
     GL_NV_copy_depth_to_color 
     GL_ARB_map_buffer_alignment 
     GL_ARB_texture_mirrored_repeat 
     GL_ARB_texture_buffer_object_rgb32 
     GL_ARB_shader_storage_buffer_object 
     GL_ARB_shader_subroutine 
     GL_EXT_bindable_uniform 
     GL_EXT_post_depth_coverage 
     GL_EXT_timer_query 
     GL_NV_robustness_video_memory_purge 
     GL_NV_copy_image 
     GL_NVX_gpu_memory_info 
     GL_EXT_draw_range_elements 
     GL_ARB_pipeline_statistics_query 
     GL_ARB_robust_buffer_access_behavior 
     GL_EXT_import_sync_object 
     GL_NV_register_combiners2 
     GL_EXT_shader_integer_mix 
     GL_NV_vdpau_interop 
     GL_ARB_stencil_texturing 
     GL_EXT_fog_coord 
     GL_NV_primitive_restart 
     GL_ARB_sparse_buffer 
     GL_ARB_sparse_texture 
     GL_NV_representative_fragment_test 
     GL_EXT_window_rectangles 
     GL_KHR_robustness 
     GL_ARB_compute_shader 
     GL_ARB_texture_filter_anisotropic 
     GL_ARB_multisample 
     GL_ARB_direct_state_access 
     GL_NV_multisample_coverage 
     GL_NV_ES1_1_compatibility 
     GL_EXT_gpu_program_parameters 
     GL_EXT_packed_depth_stencil 
     GL_NV_bindless_multi_draw_indirect 
     GL_ARB_vertex_array_bgra 
     GL_NV_shader_texture_footprint 
     GL_EXT_texture_sRGB_decode 
     GL_NV_blend_equation_advanced_coherent 
     GL_NV_framebuffer_multisample_coverage 
     GL_ARB_enhanced_layouts 
     GL_EXT_texture_compression_rgtc 
     GL_ARB_transform_feedback2 
     GL_ARB_shader_clock 
     GL_EXT_shader_image_load_formatted 
     GL_NV_fill_rectangle 
     GL_EXT_provoking_vertex 
     GL_EXT_separate_shader_objects 
     GL_NV_sample_locations 
     GL_ARB_conditional_render_inverted 
     GL_NV_conditional_render 
     GL_ARB_seamless_cubemap_per_texture 
     GL_ARB_internalformat_query2 
     GL_ARB_viewport_array 
     GL_ARB_shader_texture_lod 
     GL_ARB_texture_filter_minmax 
     GL_EXT_texture_sRGB_R8 
     GL_NV_query_resource 
     GL_SGIX_shadow 
     GL_NV_alpha_to_coverage_dither_control 
     GL_EXT_texture_mirror_clamp 
     GL_ARB_occlusion_query2 
     GL_EXT_texture_compression_dxt1 
     GL_ARB_get_texture_sub_image 
     GL_OVR_multiview 
     GL_EXT_blend_func_separate 
     GL_EXT_framebuffer_object 
     GL_EXT_secondary_color 
     GL_NV_shader_atomic_counters 
     GL_ARB_copy_buffer 
     GL_NV_gpu_multicast 
     GL_ARB_shading_language_packing 
     GL_ARB_arrays_of_arrays 
     GL_ARB_fragment_coord_conventions 
     GL_EXT_draw_buffers2 
     GL_EXT_stencil_two_side 
     GL_ARB_explicit_attrib_location 
     GL_EXT_memory_object 
     GL_ARB_explicit_uniform_location 
     GL_ARB_separate_shader_objects 
     GL_ATI_draw_buffers 
     GL_NV_viewport_array2 
     GL_ARB_point_sprite 
     GL_EXT_polygon_offset_clamp 
     GL_EXT_memory_object_fd 
     GL_ARB_framebuffer_object 
     GL_ARB_color_buffer_float 
     GL_ARB_base_instance 
     GL_ARB_internalformat_query 
     GL_EXT_blend_subtract 
     GL_ARB_ES3_2_compatibility 
     GL_ARB_texture_mirror_clamp_to_edge 
     GL_ARB_vertex_type_10f_11f_11f_rev 
     GL_NV_fragment_program 
     GL_NV_vertex_program1_1 
     GL_ARB_map_buffer_range 
     GL_NV_conservative_raster_pre_snap 
     GL_NV_packed_depth_stencil 
     GL_NV_parameter_buffer_object2 
     GL_NV_scissor_exclusive 
     GL_ARB_texture_multisample 
     GL_ARB_texture_query_lod 
     GL_ARB_vertex_type_2_10_10_10_rev 
     GL_ARB_half_float_pixel 
     GL_ARB_texture_non_power_of_two 
     GL_ARB_shader_atomic_counters 
     GL_EXT_abgr 
     GL_NV_ES3_1_compatibility 
     GL_NV_fragment_program_option 
     GL_NV_feature_query 
     GL_ARB_vertex_attrib_binding 
     GL_ARB_compressed_texture_pixel_storage 
     GL_ARB_shader_image_load_store 
     GL_NV_texture_shader 
     GL_NV_vdpau_interop2 
     GL_EXT_texture_cube_map 
     GL_NV_bindless_texture 
     GL_NV_geometry_shader_passthrough 
     GL_NV_gpu_program5_mem_extended 
     GL_ARB_texture_gather 
     GL_NV_compute_shader_derivatives 
     GL_SGIS_generate_mipmap 
     GL_NV_shading_rate_image 
     GL_NV_pixel_data_range 
     GL_NV_blend_equation_advanced 
     GL_NV_occlusion_query 
     GL_EXT_x11_sync_object 
     GL_NV_explicit_multisample 
     GL_ARB_texture_storage_multisample 
     GL_ARB_program_interface_query 
     GL_EXT_stencil_wrap 
     GL_ARB_conservative_depth 
     GL_NV_texture_shader3 
     GL_ARB_texture_compression_rgtc 
     GL_NV_transform_feedback2 
     GL_ARB_tessellation_shader 
     GL_NV_vertex_array_range2 
     GL_ARB_texture_view 
     GL_ARB_bindless_texture 
     GL_ARB_texture_storage 
     GL_NV_shader_thread_shuffle 
     GL_EXT_semaphore_fd 
     GL_ARB_parallel_shader_compile 
     GL_EXT_texture_integer 
     GL_ARB_shader_draw_parameters 
     GL_NV_depth_clamp 
     GL_ARB_shader_texture_image_samples 
     GL_NV_vertex_program3 
     GL_ARB_ES3_1_compatibility 
     GL_AMD_vertex_shader_viewport_index 
     GL_ARB_ES2_compatibility 
     GL_NV_fragment_program2 
     GL_EXT_texture_buffer_object 
     GL_NV_register_combiners 
     GL_ARB_half_float_vertex 
     GL_AMD_seamless_cubemap_per_texture 
     GL_ARB_texture_rgb10_a2ui 
     GL_NV_shader_atomic_int64 
     GL_ARB_texture_buffer_object 
     GL_EXT_texture_env_add 
     GL_EXT_texture_env_combine 
     GL_KHR_blend_equation_advanced_coherent 
     GL_NVX_conditional_render 
     GL_NV_fragment_shader_interlock 
     GL_ARB_shader_bit_encoding 
     GL_ARB_shader_group_vote 
     GL_EXT_draw_instanced 
     GL_ATI_texture_mirror_once 
     GL_NV_depth_buffer_float 
     GL_EXT_texture_env_dot3 
     GL_NV_texture_barrier 
     GL_ARB_depth_buffer_float 
     GL_NV_conservative_raster_underestimation 
     GL_ARB_gpu_shader5 
     GL_ARB_draw_buffers_blend 
     GL_ARB_imaging 
     GL_ARB_multi_draw_indirect 
     GL_NV_memory_attachment 
     GL_EXT_pixel_buffer_object 
     GL_ARB_multitexture 
     GL_NV_command_list 
     GL_NV_path_rendering_shared_edge 
     GL_ARB_spirv_extensions 
     GL_ARB_vertex_buffer_object 
     GL_NV_timeline_semaphore 
     GL_NV_fence 
     GL_ARB_provoking_vertex 
     GL_EXT_sparse_texture2 
     GL_ARB_shading_language_100 
     GL_EXT_multi_draw_arrays 
     GL_NV_light_max_exponent 
     GL_SGIS_texture_lod 
     GL_ARB_texture_cube_map 
     GL_EXT_bgra 
     GL_EXT_Cg_shader 
     GL_EXT_texture_shared_exponent 
     GL_ARB_shading_language_include 
     GL_IBM_texture_mirrored_repeat 
     GL_NVX_nvenc_interop 
     GL_ARB_clear_texture 
     GL_ARB_geometry_shader4 
     GL_EXT_texture_storage 
     GL_NV_conservative_raster 
     GL_NV_gpu_program_fp64 
     GL_EXT_packed_float 
     GL_ARB_shader_objects 
     GL_ARB_compatibility 
     GL_ARB_texture_border_clamp 
     GL_ARB_pixel_buffer_object 
     GL_ARB_seamless_cube_map 
     GL_ARB_vertex_attrib_64bit 
     GL_ARB_debug_output 
     GL_ARB_derivative_control 
     GL_ARB_shading_language_420pack 
     GL_NV_shader_storage_buffer_object 
     GL_NV_vertex_buffer_unified_memory 
     GL_AMD_multi_draw_indirect 
     GL_NV_path_rendering 
     GL_NV_texture_env_combine4 
     GL_AMD_vertex_shader_layer 
     GL_EXT_vertex_attrib_64bit 
     GL_NV_float_buffer 
     GL_ARB_shadow 
     GL_EXT_texture_compression_latc 
     GL_NV_gpu_program4_1 
     GL_SUN_slice_accum 
     GL_ARB_invalidate_subdata 
     GL_EXT_raster_multisample 
     GL_EXT_texture3D 
     GL_EXT_multiview_timer_query 
     GL_ARB_query_buffer_object 
     GL_ARB_instanced_arrays 
     GL_ARB_timer_query 
     GL_ARB_clear_buffer_object 
     GL_NV_transform_feedback 
     GL_ARB_shader_precision 
     GL_NV_shader_thread_group 
     GL_ARB_vertex_array_object 
     GL_ARB_indirect_parameters 
     GL_EXT_separate_specular_color 
     GL_EXT_vertex_array 
     GL_ARB_occlusion_query 
     GL_NV_vertex_program2_option 
     GL_EXT_framebuffer_sRGB 
     GL_KHR_parallel_shader_compile 
     GL_ARB_draw_buffers 
     GL_ARB_sparse_texture2 
     GL_ARB_texture_compression 
     GL_ATI_texture_float 
     GL_ARB_vertex_shader 
     GL_ARB_vertex_program 
     GL_KTX_buffer_region 
     GL_NV_primitive_shading_rate 
     GL_NV_vertex_array_range 
     GL_NV_query_resource_tag 
     GL_NV_parameter_buffer_object 
     GL_ARB_depth_clamp 
     GL_NV_texture_multisample 
     GL_EXT_shadow_funcs 
     GL_ARB_transform_feedback3 
     GL_NV_geometry_shader4 
     GL_EXT_texture_array 
     GL_NV_gpu_shader5 
     GL_EXT_texture_lod 
     GL_EXT_blend_equation_separate 
     GL_EXT_depth_bounds_test 
     GL_NV_gpu_program4 
     GL_NV_texture_rectangle_compressed 
     GL_ARB_framebuffer_sRGB 
     GL_ARB_window_pos 
     GL_ARB_robustness 
     GL_ARB_texture_stencil8 
     GL_ARB_gl_spirv 
     GL_EXT_texture_filter_minmax 
     GL_EXT_semaphore 
     GL_ARB_texture_swizzle 
     GL_EXT_packed_pixels 
     GL_KHR_debug 
     GL_ARB_shader_atomic_counter_ops 
     GL_ARB_texture_cube_map_array 
     GL_EXT_framebuffer_multisample_blit_scaled 
     GL_NV_texture_compression_vtc 
     GL_NV_fog_distance 
     GL_NV_vertex_program 
     GL_NV_mesh_shader 
     GL_NV_texgen_reflection 
     GL_ARB_texture_env_crossbar 
     GL_NV_shader_atomic_float 
     GL_NV_blend_minmax_factor 
     GL_EXT_texture_swizzle 
     GL_NV_texture_shader2 
     GL_IBM_rasterpos_clip 
     GL_ARB_fragment_program 
     GL_ARB_copy_image 
     GL_EXT_framebuffer_blit 
     GL_ARB_ES3_compatibility 
     GL_ARB_draw_instanced 
     GL_ARB_draw_indirect 
     GL_ARB_texture_compression_bptc 
     GL_ARB_transform_feedback_overflow_query 
     GL_NV_clip_space_w_scaling 
     GL_EXT_point_parameters 
     GL_ARB_blend_func_extended 
     GL_NV_shader_atomic_fp16_vector 
     GL_NV_viewport_swizzle 
     GL_ARB_sample_shading 
     GL_NV_draw_vulkan_image 
     GL_ARB_shader_viewport_layer_array 
     GL_ARB_depth_texture 
     GL_ARB_buffer_storage 
     GL_EXT_gpu_shader4 
     GL_ARB_polygon_offset_clamp 
     GL_ARB_uniform_buffer_object 
     GL_NV_bindless_multi_draw_indirect_count 
     GL_EXT_texture_filter_anisotropic 
     GL_EXT_multiview_texture_multisample 
     GL_EXT_texture_edge_clamp 
     GL_OVR_multiview2 
     GL_ARB_fragment_shader_interlock 
     GL_NVX_blend_equation_advanced_multi_draw_buffers 
     GL_EXT_shader_image_load_store 
     GL_NV_vertex_program2 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsOpenGLES: true 
  isQtPreferOpenGLES: false 
  Detected renderers: 
    (Supported) NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2 (4.6.0 NVIDIA 580.105.08) 
    (Supported) NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2 (OpenGL ES 3.2 NVIDIA 580.105.08)  
INFO: prefill qrhi surface: 0
NOT COOL: Duplicated action name from xml data:  "object_order_raise"

---

KoColor debug runtime checks are active.
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
/tmp/.mount_krita-PBFnFk/usr/lib/krita-python-libs/krita added to PYTHONPATH
qrc:/TextAlign.qml:269:9: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:275:13
qrc:/TextAlign.qml:252:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:260:17
qrc:/TextAlign.qml:238:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:245:17
qrc:/TextAlign.qml:225:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:233:17
qrc:/TextAlign.qml:269:9: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:275:13
qrc:/TextAlign.qml:252:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:260:17
qrc:/TextAlign.qml:238:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:245:17
qrc:/TextAlign.qml:225:13: QML GroupButton: Binding loop detected for property "icon.color":
qrc:/TextAlign.qml:233:17
qrc:/TextIndent.qml:102:9: QML RowLayout: Binding loop detected for property "height"
qrc:/TextIndent.qml:102:9: QML RowLayout: Binding loop detected for property "height"
FPS-DEBUG: Frame compression mode: two frames (default)
krita.general: WARNING: Uncategorized action "krita_filter_edge detection" Dropping...
krita.general: WARNING: Uncategorized action "krita_filter_fastcoloroverlay" Dropping...
krita.general: WARNING: Uncategorized action "krita_filter_resettransparent" Dropping...
krita.general: WARNING: Uncategorized action "composite_actions" Dropping...
krita.general: WARNING: Uncategorized action "paintops" Dropping...
krita.general: WARNING: Uncategorized action "dockerBox" Dropping...
krita.general: WARNING: Uncategorized action "interpolation_constant" Dropping...
krita.general: WARNING: Uncategorized action "interpolation_linear" Dropping...
krita.general: WARNING: Uncategorized action "interpolation_bezier" Dropping...
krita.general: WARNING: Uncategorized action "tangents_sharp" Dropping...
krita.general: WARNING: Uncategorized action "tangents_smooth" Dropping...
krita.general: WARNING: Uncategorized action "zoom_to_fit_range" Dropping...
krita.general: WARNING: Uncategorized action "zoom_to_fit_curve" Dropping...
krita.general: WARNING: Uncategorized action "expanding_spacer_0" Dropping...
krita.general: WARNING: Uncategorized action "expanding_spacer_1" Dropping...
krita.general: WARNING: Uncategorized action "python_scripter" Dropping...
krita.general: WARNING: Uncategorized action "color_space" Dropping...
krita.general: WARNING: Uncategorized action "document_tools" Dropping...
krita.general: WARNING: Uncategorized action "export_layers" Dropping...
krita.general: WARNING: Uncategorized action "filter_manager" Dropping...
krita.general: WARNING: Uncategorized action "ten_scripts" Dropping...
krita.general: WARNING: Uncategorized action "editToolBar" Dropping...
krita.general: WARNING: Uncategorized action "customToolBar1" Dropping...
krita.general: WARNING: Uncategorized action "customToolBar2" Dropping...
krita.general: WARNING: The following shortcuts are not registered in the collection, they might have wrong shortcuts in the end:
krita.general: "svg_font"
krita.general: "update_composition"
krita.general: "show_minimal_shade_selector"
krita.general: "show_color_history"
krita.general: "krita_filter_right edge detections"
krita.general: "show_tool_options"
krita.general: "svg_background_color"
krita.general: "options_configure_keybinding"
krita.general: "svg_line_height"
krita.general: "krita_filter_sobel"
krita.general: "krita_filter_top edge detections"
krita.general: "krita_filter_left edge detections"
krita.general: "show_mypaint_shade_selector"
krita.general: "svg_sample_color"
krita.general: "svg_format_textcolor"
krita.general: "svg_settings"
krita.general: "rename_composition"
krita.general: "svg_font_size"
krita.general: "show_color_selector"
krita.general: "histogram"
krita.general: "krita_filter_bottom edge detections"
krita.general: "select_layout"
krita.general: "show_common_colors"
krita.general: "help_report_bug"
krita.general: "crashlog"
krita.general: "logcatdump"
krita.general: "create_bundle"
krita.general: "delete_keyframe"
krita.general: === end ===
Entering "DisplaySettingsTab::DisplaySettingsTab()" supportedRenderers = QFlags(0x2|0x4) QFlags(0x2|0x4)
Failed to fetch display info: "current platform doesn't support fetching display information"