oyranos-cms / oyranos

Colour Management System
https://gitlab.com/oyranos/oyranos
Other
19 stars 6 forks source link

property match Filename does not exist #54

Open tari3x opened 5 years ago

tari3x commented 5 years ago

Trying the version from git, and getting these errors. The file does exist. Anything I'm doing wrong?

> oyranos-monitor -d 0 "~/docs/icc/LG Display 1070 _xorg.icc" 
Could not import profile /home/avatar/docs/icc/LG Display 1070 _xorg.icc: property match 'Filename'='/home/avatar/docs/icc/LG Display 1070 _xorg.icc' does not existxcalib -d :0 -s 0  '/home/avatar/docs/icc/LG Display 1070 _xorg.icc' : 
WARNING 0.034531: oyOptions_s[500]="" oyranos_monitor_x11_extend.c:124 oyX1ColorServer_Handle() color_server_active.source_data: 0
WARNING 0.035421: oyProfile_s[231]="/home/avatar/docs/icc/LG Display 1070 _xorg.icc" oyranos_monitor_effect.c:595 oyProfile_CreateEffectVCGT() No display effect for monitor profile -1
WARNING 0.039078: oyProfile_s[231]="/home/avatar/docs/icc/LG Display 1070 _xorg.icc" oyranos_monitor_effect.c:472 oyProfile_GetVCGT() vcgt tag size too small 0 LG Display 1070 _xorg

xcalib -d :0 -s 0  '/tmp/pid10379-time13768608-filedRwKeS-vcgt.icc' : 
beku commented 5 years ago

Wonder if Oyranos supports using profiles outside the OpenICC paths. Try:

$ oyranos-profile-install "~/docs/icc/LG Display 1070 _xorg.icc"
$ oyranos-monitor -d 0 "LG Display 1070 _xorg.icc"

Perhaps the man page could be improved.

tari3x commented 5 years ago

It says already installed.

> oyranos-profile-install "~/docs/icc/LG Display 1070 _xorg.icc"
WARNING 0.031433: oyProfile_s[4]="/home/avatar/docs/icc/LG Display 1070 _xorg.icc" oyProfile_s.c:891 oyProfile_Install() Profile already installed: "LG Display 1070 _xorg"
notify-send -i 'dialog-information' 'Oyranos' "Profile already installed: 'LG Display 1070 _xorg'"
Profile already installed: 'LG Display 1070 _xorg'

> oyranos-monitor -d 0 "LG Display 1070 _xorg.icc"
Could not import profile /home/avatar/.local/share/color/icc/devices/Display/LG Display 1070 _xorg.icc: property match 'Filename'='/home/avatar/.local/share/color/icc/devices/Display/LG Display 1070 _xorg.icc' does not existxcalib -d :0 -s 0  '/home/avatar/.local/share/color/icc/devices/Display/LG Display 1070 _xorg.icc' : 
WARNING 0.024969: oyOptions_s[500]="" oyranos_monitor_x11_extend.c:124 oyX1ColorServer_Handle() color_server_active.source_data: 0
WARNING 0.025512: oyProfile_s[231]="/home/avatar/.local/share/color/icc/devices/Display/LG Display 1070 _xorg.icc" oyranos_monitor_effect.c:595 oyProfile_CreateEffectVCGT() No display effect for monitor profile -1
WARNING 0.028753: oyProfile_s[231]="/home/avatar/.local/share/color/icc/devices/Display/LG Display 1070 _xorg.icc" oyranos_monitor_effect.c:472 oyProfile_GetVCGT() vcgt tag size too small 0 LG Display 1070 _xorg

xcalib -d :0 -s 0  '/tmp/pid5934-time70341160-fileVJ3ljw-vcgt.icc' : 
beku commented 5 years ago

It look like solved. good

tari3x commented 5 years ago

No, sorry, please read my reply again. I'm getting the same error when trying to run oyranos-monitor. I don't think this is solved.

beku commented 5 years ago

... then I do not understand yet what you expect. So please send the output of:

$ oyranos-monitor -lcv

PS: Hey, you can simply reopen - if you feel so :-)

tari3x commented 5 years ago

I didn't figure out how to reopen the issue, is anyone allowed to do that?

> oyranos-monitor -lcv
oyranos-monitor v0.9.7 is a color profile administration tool for monitors
------------------------ 0 ---------------------------
device_name::0.0
prefix:EDID_
EDID_manufacturer:LG Display
manufacturer:LG Display
EDID_mnft:LGD
EDID_model:1070
model:1070
EDID_vendor:LG Display
display_geometry:2560x1700+0+0
system_port:eDP1
host:linux-a4sf
EDID_date:2014-T0
EDID_mnft_id:12516
EDID_model_id:1070
EDID_red_x:0.633789
EDID_red_y:0.347656
EDID_green_x:0.323242
EDID_green_y:0.577148
EDID_blue_x:0.151367
EDID_blue_y:0.0908203
EDID_white_x:0.313477
EDID_white_y:0.329102
EDID_gamma:2.5
EDID_md5:e150a2a7b3423e347055753233e0d6c4
EDID:0x00FFFFFFFFFFFF0030E42E040000000000180104A51B1296024FD5A259529326175054000000010101010101010101010101010101016D6F009EA0A4316030203A0010B510000019000000000000000000000000000000000000000000FE004C4720446973706C61790A2020000000FE004C503132395145322D53504131006C

 server profile "/home/avatar/.local/share/color/icc/devices/Display/LG Display 1070 _xorg.icc" size: 2032
 DB profile "LG Display 1070 _xorg.icc"
  keys: [none]
0: ":0.0" 2560x1700+0+0  "LG Display 1070 _xorg"

I'd like to understand why "oyranos-monitor -d 0 "LG Display 1070 _xorg.icc" prints the error that it does. I feel like running the command does not actually change anything about my screen (but it does affect apps like gwenview that read the system profile and apply it themselves).

I also tried this:

> oyranos-monitor -d 0 "Lab.icc"
Could not import profile /usr/share/color/icc/lcms/Lab.icc: The profile was not added in time
Could not import profile /home/avatar/.local/share/icc/Lab.icc: The profile was not added in timexcalib -d :0 -s 0  '/usr/share/color/icc/lcms/Lab.icc' : 
WARNING 0.022935: oyOptions_s[500]="" oyranos_monitor_x11_extend.c:124 oyX1ColorServer_Handle() color_server_active.source_data: 0
WARNING 0.023430: oyProfile_s[231]="/usr/share/color/icc/lcms/Lab.icc" oyranos_monitor_effect.c:595 oyProfile_CreateEffectVCGT() No display effect for monitor profile -1
WARNING 0.027731: oyProfile_s[231]="/usr/share/color/icc/lcms/Lab.icc" oyranos_monitor_effect.c:472 oyProfile_GetVCGT() vcgt tag size too small 0 little cms Relative L*a*b* identity profile

xcalib -d :0 -s 0  '/tmp/pid14255-time19796191-file8eStc8-vcgt.icc' : 

> oyranos-monitor -lcv
oyranos-monitor v0.9.7 is a color profile administration tool for monitors
------------------------ 0 ---------------------------
device_name::0.0
prefix:EDID_
EDID_manufacturer:LG Display
manufacturer:LG Display
EDID_mnft:LGD
EDID_model:1070
model:1070
EDID_vendor:LG Display
display_geometry:2560x1700+0+0
system_port:eDP1
host:linux-a4sf
EDID_date:2014-T0
EDID_mnft_id:12516
EDID_model_id:1070
EDID_red_x:0.633789
EDID_red_y:0.347656
EDID_green_x:0.323242
EDID_green_y:0.577148
EDID_blue_x:0.151367
EDID_blue_y:0.0908203
EDID_white_x:0.313477
EDID_white_y:0.329102
EDID_gamma:2.5
EDID_md5:e150a2a7b3423e347055753233e0d6c4
EDID:0x00FFFFFFFFFFFF0030E42E040000000000180104A51B1296024FD5A259529326175054000000010101010101010101010101010101016D6F009EA0A4316030203A0010B510000019000000000000000000000000000000000000000000FE004C4720446973706C61790A2020000000FE004C503132395145322D53504131006C

 server profile "/usr/share/color/icc/lcms/LCMSLABI.ICM" size: 154327
 DB profile "Lab.icc"
  keys: [none]
0: ":0.0" 2560x1700+0+0  "little cms Relative L*a*b* identity profile"

Despite "oyranos-monitor -lcv" printing "Lab", my screen is not all rainbow coloured, which is what I think I should expect?

beku commented 5 years ago

Thanks for the detailed info. The following line states your profile is in the database. (reading the DB: $ less `oyranos-config -p`)

DB profile "Lab.icc"

The following line says your configured profile is in the X11 server (_ICC_PROFILE atom). (test: $ xprop -root -len 10 | grep ICC)

0: ":0.0" 2560x1700+0+0  "little cms Relative L*a*b* identity profile"

The error messages:

Could not import profile ...

... come from colord. Oyranos tries to update the colord DB as well to synchronise your settings. But the shim layer (oyranos-compat-colord) appears to be very fragile.

The error messages:

WARNING ....

... come from Oyranos. They tell that your profile will not run under a ICC color manager (no _ICC_COLOR_DESKTOP atom present). The profile contains no VideoCardGammaTable - so xcalib has no work for the calibration. The Lab.icc profile is a color space and has rightly no calibration for a device (e.g. your monitor). The "LG Display 1070 _xorg" is generated automatically from EDID information. It tells interested applications merely the suggested gamut size.

You might wanted to see your monitor is switching colors like in the test with the crazy Lab.icc or channel flip or the like. That would indeed mean you use a ICC color corrected desktop. But your compositor needs to do that color conversion, likely in OpenGL on the GPU. There are two projects known to me at the moment to do that:

Hope this helps.

PS: will be looking into the reopening rights by original opener (you)

tari3x commented 5 years ago

Thanks a lot for the explanation! Some further replies/questions below.

  1. I'm still confused about the original error in this report:
    > oyranos-monitor -d 0 "~/docs/icc/LG Display 1070 _xorg.icc" 
    Could not import profile /home/avatar/docs/icc/LG Display 1070 _xorg.icc: property match 'Filename'='/home/avatar/docs/icc/LG Display 1070 _xorg.icc' does not existxcalib -d :0 -s 0  '/home/avatar/docs/icc/LG Display 1070 _xorg.icc' : 

Does this mean that the command failed, or is the error message spurious?

  1. You mention colord being fragile. Indeed, I saw this in dmesg, perhaps related:
    [1575678.434993] oyranos-compat-[14257]: segfault at 8 ip 00007f9a8c5f5b0f sp 00007ffd1163ad10 error 4 in libcolordcompat.so[7f9a8c5f4000+2000]
    [1575678.435002] Code: 8d 3d c2 00 00 00 41 bc 08 00 00 00 48 8b 70 08 31 c0 e8 c4 f4 ff ff e9 04 ff ff ff 0f 1f 80 00 00 00 00 48 8b 04 24 4c 89 f7 <4c> 8b 60 08 e8 58 f4 ff ff 48 8d 3d c4 00 00 00 48 89 c6 31 c0 4c

Should I open a new ticket for this?

  1. I think I did see an immediate full-screen effect in an earlier version of suse when setting Lab.icc. It's possible that I had compicc installed. Would you say I should try installing compicc from source again?

  2. As a meta point on the whole colour-correction thing, it seems that the number of moving parts and variables is incredibly high. I still have almost no idea what the different components (oyranos, colord, compicc, xcalib, the X server) exactly do, and what kind of icc profiles there are (VCGT/no VCGT, some other properties that I remember being important). I wish there was a good intro to all this stuff somewhere!

beku commented 5 years ago
  1. that is colord related, not sure what to do.
    • suppress? But then that brokenness becomes invisible.
    • remove the feature altogether?
  2. With a good backtrace it would be easier if that is still a error in Oyranos or colord. I can not reproduce.
  3. Then maybe KWin4 with KolorManager kded was active or indeed CompICC
  4. very brief:
    • Oyranos, colord and ArgyllCMS support ICC configuration, configuration DB and calibration part
    • xcalib is a calibration only tool. It is used by Oyranos. colord and ArgyllCMS have own calibration code.
    • Calibration versus Characterisation - ArgyllCMS
    • CompICC detects ICC monitor profiles configured by Oyranos and other settings, e.g. night time white point effect. It uses Oyranos to create from these ICC data 3D lookup tables. CompICC attaches those as OpenGL 3Dtextures + shaders to Compiz window GL textures. The OpenGL shaders + 3Dtexture convert pixel values live on the GPU.
    • CompICC is a plugin for the Compiz OpenGL compositor, they run on top of the X11 windowing system
    • X11 provides API's to connect to hardware, OpenGL API and drivers. It is not a compositor on it's own
    • Colour Correction Concepts for Monitors - Oyranos
beku commented 5 years ago

Pasted the above question 4. answer to: https://github.com/compiz-reloaded/compicc#terms-for-compicc-color-correction

tari3x commented 4 years ago
  1. I think the error is ok to preserve as long as it is clear about what component it comes from (colord in this case) and what the consequences of the error are.

  2. If you are happy to tell me how to produce a good backtrace, I'd give it a go.

  3. Presumably I need to be using compiz (as opposed to kde/kwin) for compicc to work? If I'm using kwin, then is kolormanager my only option? Sadly, 0.9.6 that ships with OpenSuSE is broken (https://github.com/oyranos-cms/oyranos/issues/53) and I'm a bit too daunted try to compile kde packages from scratch. Anything we can do to encourage OpenSuSE to upgrade to 0.9.7?

  4. Thanks a lot! Your first point implies that Oyranos, colord and ArgyllCMS do the same things, yet oyranos seems to be calling colord. What is it using colord for?

beku commented 4 years ago
  1. is adresed in commit: 3698015
  2. the same error might appear by using the command line as described in the

    $ oyranos-compat-gnome # Example: line

  3. Yes, compiz-0.8.X + compicc. KDE stuff is outdated or in flux. 3.1. The code base looks pretty good atm. It is time to release end of summer or autumn. https://github.com/oyranos-cms/oyranos/projects/3
  4. Oyranos syncs the monitor configuration of 'colord' API (SQL DB via D-Bus) with X11 (ArgyllCMS DB or Oyranos DB)
tari3x commented 4 years ago

Thanks! I think I'll wait for 0.9.7 to make its way into the release, and then resubmit any issues that are still remaining. Fine to close this for the time being.

tari3x commented 3 years ago

Gentle ping on releasing 0.9.7.