Bug 474503

Summary: display profile cannot be set on secondary displays on macOS
Product: [Applications] krita Reporter: vanyossi <ghevan>
Component: GeneralAssignee: vanyossi <ghevan>
Status: RESOLVED FIXED    
Severity: normal Keywords: regression
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Compiled Sources   
OS: macOS   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: kritarc 01

Description vanyossi 2023-09-13 20:00:00 UTC
krita-5.2.0-beta2, master (a81b66f75c)

it is not possible to change display profiles for any extra monitor. The GUI allows to select profiles for all screens but only the first display profile gets applied and shows duplicated on all screens profiles upon reopening preferences

kritarc does save the profiles set upon clicking "ok" on the preferences dialog but they never apply and upon reopening preferences the profile is reset to the first display for all the displays.
monitorProfile=sRGB-elle-V2-g10.icc
monitorProfile/OverrideX11=false
monitorProfile_1=sRGB-elle-V2-g10.icc
monitorProfile_2=sRGB-elle-V2-srgbtrc.icc


System information:
Krita

 Version: 5.3.0-prealpha (git 005a010)
 Hidpi: true
 Sandbox: false

Qt

  Version (compiled): 5.15.7
  Version (loaded): 5.15.7

OS Information

  Build ABI: arm64-little_endian-lp64
  Build CPU: arm64
  CPU: arm64
  Kernel Type: darwin
  Kernel Version: 21.6.0
  Pretty Productname: macOS 12.6
  Product Type: osx
  Product Version: 12.6

Locale

  Languages: en_US
  C locale: C/en_US.UTF-8/en_US.UTF-8/es_ES.UTF-8/es_ES.UTF-8/en_US.UTF-8
  QLocale current: en
  QLocale system: es
  QTextCodec for locale: UTF-8

OpenGL Info
 
  Vendor:  "Apple" 
  Renderer:  "Apple M1" 
  Driver version:  "4.1 Metal - 76.3" 
  Shading language:  "4.10" 
  Requested format:  QSurfaceFormat(version 4.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CoreProfile) 
  Current format:  QSurfaceFormat(version 4.1, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 32, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CoreProfile) 
  GL version: 4.1 
  Supports deprecated functions false 
  Is OpenGL ES: false 
  supportsBufferMapping: true 
  supportsBufferInvalidation: false 
  forceDisableTextureBuffers: false 
  Extensions: 
     GL_APPLE_container_object_shareable 
     GL_ARB_draw_indirect 
     GL_EXT_framebuffer_multisample_blit_scaled 
     GL_ARB_texture_cube_map_array 
     GL_ARB_timer_query 
     GL_EXT_texture_filter_anisotropic 
     GL_APPLE_flush_render 
     GL_ARB_vertex_type_2_10_10_10_rev 
     GL_ARB_texture_gather 
     GL_ARB_texture_query_lod 
     GL_ARB_texture_buffer_object_rgb32 
     GL_ARB_separate_shader_objects 
     GL_ARB_shading_language_include 
     GL_EXT_texture_sRGB_decode 
     GL_ARB_blend_func_extended 
     GL_APPLE_client_storage 
     GL_ARB_shader_bit_encoding 
     GL_APPLE_rgb_422 
     GL_ARB_sampler_objects 
     GL_ARB_shader_subroutine 
     GL_ARB_texture_swizzle 
     GL_APPLE_texture_range 
     GL_ARB_gpu_shader5 
     GL_ARB_transform_feedback2 
     GL_ARB_texture_storage 
     GL_ARB_transform_feedback3 
     GL_ARB_draw_buffers_blend 
     GL_ARB_viewport_array 
     GL_ARB_instanced_arrays 
     GL_ARB_texture_rgb10_a2ui 
     GL_EXT_debug_label 
     GL_EXT_texture_compression_s3tc 
     GL_ARB_explicit_attrib_location 
     GL_NV_texture_barrier 
     GL_APPLE_row_bytes 
     GL_ARB_gpu_shader_fp64 
     GL_ARB_tessellation_shader 
     GL_ARB_ES2_compatibility 
     GL_ARB_internalformat_query 
     GL_ARB_occlusion_query2 
     GL_EXT_debug_marker 
     GL_ARB_sample_shading 
     GL_ARB_vertex_attrib_64bit 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsOpenGLES: false 
  isQtPreferOpenGLES: false 
  Detected renderers: 
    (Supported) Apple M1 (4.1 Metal - 76.3)  

useBufferInvalidation (config option): false


Hardware Information

  GPU Acceleration: desktop
  Memory: 16384 Mb
  Number of Cores: 8
  Swap Location: /private/var/folders/5d/rzd7gppj0n144wg_v4vyvc5m0000gn/T
  Built for: arm64+neon
  Base instruction set: arm64+neon
  Supported instruction sets: arm64+neon arm32+neon avx512bw avx512dq avx512cd avx512f fma3+avx2 avx2 fma3+avx avx fma4 fma3+sse4.2 sse4.2 sse4.1 ssse3 sse3 sse2 

Current Settings

  Current Swap Location: /private/var/folders/5d/rzd7gppj0n144wg_v4vyvc5m0000gn/T
  Current Swap Location writable: true
  Undo Enabled: true
  Undo Stack Limit: 200
  Use OpenGL: true
  Use OpenGL Texture Buffer: true
  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: /Users/daedalus/Library/Application Support/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
	plugin_importer
	quick_settings_docker
	scripter
	tenbrushes
	tenscripts


Display Information
Number of screens: 3
	Screen: 0
		Name: 
		Depth: 24
		Scale: 2
		Physical DPI81
		Logical DPI72
		Physical Size: 598.38, 340.77
		Position: 0, 0
		Resolution in pixels: 1920x1080
		Manufacturer: 
		Model: 
		Refresh Rate: 60
		Serial Number: 
	Screen: 1
		Name: 
		Depth: 24
		Scale: 1
		Physical DPI141.5
		Logical DPI72
		Physical Size: 190.5, 350.849
		Position: -1080, 0
		Resolution in pixels: 1080x1920
		Manufacturer: 
		Model: 
		Refresh Rate: 60
		Serial Number: 
	Screen: 2
		Name: 
		Depth: 24
		Scale: 2
		Physical DPI132
		Logical DPI72
		Physical Size: 218.017, 143.164
		Position: 1920, 0
		Resolution in pixels: 1133x744
		Manufacturer: 
		Model: 
		Refresh Rate: 60
		Serial Number:
Comment 1 vanyossi 2023-09-13 20:21:43 UTC
Created attachment 161611 [details]
kritarc 01

kritarc
Comment 2 Dmitry Kazakov 2023-09-14 07:43:09 UTC
Git commit 2bf9c57f5161ed8a310ff4cea9fdd2f3b7edf060 by Dmitry Kazakov.
Committed on 14/09/2023 at 09:41.
Pushed by dkazakov into branch 'master'.

Fix display profile loading on macOS

macOS doesn't have proper display EDID information, so we have to
properly implement and use the legacy version of it.

M  +10   -4    libs/ui/kis_config.cc

https://invent.kde.org/graphics/krita/-/commit/2bf9c57f5161ed8a310ff4cea9fdd2f3b7edf060
Comment 3 Dmitry Kazakov 2023-09-14 07:43:40 UTC
Git commit ffba691ce8a6846edc6bc4468d3594e02de3fc24 by Dmitry Kazakov.
Committed on 14/09/2023 at 09:43.
Pushed by dkazakov into branch 'krita/5.2'.

Fix display profile loading on macOS

macOS doesn't have proper display EDID information, so we have to
properly implement and use the legacy version of it.

M  +10   -4    libs/ui/kis_config.cc

https://invent.kde.org/graphics/krita/-/commit/ffba691ce8a6846edc6bc4468d3594e02de3fc24