Category Archives: General

DisplayCAL 3.5.2 released

Fixed in this release:

  • [Trivial] Prevent potential “service/proto not found” error due to unreliable system APIs when attempting to automatically download updates or vendor files.
  • [Trivial] Linux: Restore missing icons in the window switcher and panel under XFCE.
  • [Trivial] Linux: Add missing i1Studio entry to bundled instrument configuration files (ArgyllCMS >= 2.0).
  • [Trivial] Windows: Use bundled certificate authority (CA) certificates to circumvent potentially outdated system certificates under older versions of Windows.

DisplayCAL 3.5.1 released

This is a maintenance release.

Added in this release:

  • [Feature] Rudimentary support for WCS Color Device Model profiles (only description, author, white- & blackpoint, gamma, parametric curve, and matrix tags are recognized and mapped to appropriate ICCv2 types).

Changed in this release:

  • [UI] Updated traditional chinese localization (thanks to 楊添明).
  • [Enhancement] Update bundled vendor PNP ID database.
  • [Enhancement] Linux: Use SDL (Simple DirectMedia Layer) directly.

Fixed in this release:

  • [Minor] Work around Python issue #738361 (shell pattern compilation fails raising an unhandled exception if a path contains certain combinations of meta characters).
  • [Minor] Measurement report: Deal with quantization when creating the report (fixes error when using video output levels in combination with some display profiles).
  • [Minor] Profile loader (Windows): Display a proper error message when associating an invalid profile.
  • [Minor] Profile loader (Windows): In case of an invalid profile (e.g. damaged file), fall back to linear gamma ramps instead of using the previously cached ramps and change the tray icon to reflect this.
  • [Minor] Profile loader (Windows): Ignore potential stray WM_COMMAND messages caused by 3rd party application interference.
  • [Minor] Bump minimum required wxPython version to 3.0 (fixes a compatibility problem under Linux if wxPython 2.8 was installed).
  • [Cosmetic] Refresh output levels control when loading settings.

DisplayCAL 3.5 released

I’m happy to announce that I’ve released DisplayCAL 3.5, which brings new application icons, a slightly refreshed theme, and several improvements.

Added in this release:

  • [Feature] Support the madVR HDR 3D LUT installation API (madVR >= 0.92.13).

Changed in this release:

  • [Enhancement] In case of a download problem (e.g. automatic updates), offer to visit the download URL manually.
  • [Enhancement] Security: Check file hashes of application setup and portable archive downloads when updating DisplayCAL or ArgyllCMS.
  • [Enhancement] Security: Use HTTPS for ArgyllCMS download as well.
  • [UI] New application icons and slightly refreshed theme.
  • [UI] Improved HiDPI support by adjusting relative dialog button spacing, margins, and interactive display adjustment window gauge sizes to match proportionally regardless of DPI.
  • [UI] Improved visual consistency of tab buttons (don’t lose “selected” state if clicking on a button and then moving the mouse outside of it, “hover” state does no longer override “selected” state, keyboard navigation skips over selected button).
  • [Cosmetic] Measurement report: Make patch preview take into account the “Use absolute values” option again.
  • [Cosmetic] Measurement report: Colorize CCT graph points according to change in hue and chroma.
  • [Cosmetic] Measurement report: Colorize gamma graph points according to change in gamma.
  • [Cosmetic] Measurement report: Dynamically adjust gamma graph vertical axis to prevent cut-off.
  • [Cosmetic] Measurement report: Make RGB balance graph match HCFR (Rec. 709 only). Note that new and old balance graphs are only comparable to a limited extent (use “Update measurement or uniformity report” in the “Tools” menu to update existing reports).
  • [Cosmetic] Profile loader (Windows): Unset non belonging profile when resetting a profile association.
  • Mac OS X: Set default profile type to single curve + matrix with black point compensation due to long-standing Mac OS X bugs with any other profile type.

Fixed in this release:

  • [Moderate] Unhandled exception and UI freeze when the 3D LUT format was set to madVR and there never was a prior version of ArgyllCMS on the system or the previous version was older than or equal to 1.6.3 during that same DisplayCAL session, due to a missing capability check.
  • [Moderate] Division by zero when trying to create a SMPTE 2084 HDR 3D LUT if the profile black level was zero (regression of a change in DisplayCAL 3.4, SVN revision r4896).
  • [Minor] If using the alternate forward profiler and the profile type was XYZ LUT + swapped matrix, the swapped matrix was overwritten with an accurate one (regression introduced in DisplayCAL 3.3.4, SVN revision r4736).
  • [Minor] It was not possible to run a measurement report with a simulation profile set as display profile, but no profile assigned to the actual display.
  • [Minor] Rec. 1886 measurement report with originally non Rec. 709 tone response profile: Make sure to override the original tone response of the profile so Rec. 1886 gives the expected result.
  • [Minor] If a measurement report HTML file was mangled by another application that removed the XML self-closing tags forward slashes, it was not possible to correctly update the report using “Update measurement or uniformity report” from the “Tools” menu.
  • [Minor] If using a pattern generator, check it is valid before binding a disconnect-on-close event when using the visual whitepoint editor. Prevents an attribute error when using the visual whitepoint editor and the madTPG network implementation (i.e. under Mac OS X).
  • [Minor] Windows: Always use the active display device directly when querying or setting profiles instead of mimicking applications using the Windows GetICMProfile API (fixes getting the correct profile with display configurations consisting of three or more displays where some of them are deactivated).
  • [Minor] Profile loader (Windows): Check whether or not a display device is attached to multiple adapters and disable fixing profile associations in that case.
  • [Minor] Profile loader (Windows): Work-around hitching caused by Windows WcsGetDefaultColorProfile API call on some systems.
  • [UI] Measurement window: Make sure focus stays on the last focused control when the window itself gains focus again after losing focus.
  • [UI] Synthetic ICC Profile Creator: Update HDR SMPTE 2084 diffuse white info text when changing luminance.
  • [Trivial] HDR SMPTE 2084 3D LUT: Interpolate the last two segments before the clipping point of the intermediate input LUT shaper curves (prevents potential slight banding in highlights).
  • [Trivial] Windows: Make sure the profile loader is launched directly after installing a profile when using a portable version of DisplayCAL (parity with installer version).
  • [Trivial] Profile loader (Windows): Re-introduce --skip command line option.
  • [Cosmetic] Profile loader (Windows): When disassociating a profile from a device, suppress ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE error sometimes (in some cases always?) resulting from the WcsDisassociateColorProfileFromDevice Windows API call, even though the profile was successfully disassociated.

Enjoy!

DisplayCAL 3.4 released

I’m happy to announce that I’ve released DisplayCAL 3.4 as a prelude to the upcoming year 2018.

Added in this release:

  • [Feature] HDR Hybrid Log-Gamma transfer function option for 3D LUTs.
  • [Feature] HDR verification testcharts.
  • [UI] Simplified chinese translation thanks to 林泽帆(Xpesir).
  • [Enhancement] Linux: wxPython Phoenix 4.0.0b/rc1 compatibility.
  • [Enhancement] Profile loader (Windows): Notifications (for 3rd party calibration/profiling software and user-defined exceptions) can be turned off.

Changed in this release:

  • [Enhancement] HDR 3D LUTs: SMPTE 2084 with roll-off now allows specifying the mastering display minimum and peak luminance which are used to adjust the roll-off start and clipping points (BT.2390-3).
  • [Enhancement] HDR 3D LUTs: Chroma compression is now done in Lpt color space, providing improved preservation of detail in compressed highlights.
  • [Enhancement]
    Do not disable the measurement report button if the selected setting is a preset and a simulation profile is used as display profile with tone curve set to “Unchanged” (i.e. do not require selecting “<Current>” under settings to allow verifying the native device response against a selected simulation profile).
  • [Enhancement] Limit profile name length taking into account the full path of the final storage directory.
  • [Enhancement] Disable automatic output levels detection for colorimeter correction creation measurements.
  • Changed the “Softproof” and “Video” presets to no longer intentionally swap red and green for the fallback matrix.
  • [UI] [Cosmetic] Minor UI consistency changes.
  • [Enhancement] Linux: X11 root window _ICC_PROFILE_xxx atom enumeration for Xrandr now matches the Xinerama order, so that _ICC_PROFILE_xxx atoms match irrespective of which extension applications are using. This improves conformance to the ICC Profiles in X Specification and matches the respective change in ArgyllCMS 2.0.
  • Mac OS X (standalone application): No longer support OS X versions prior to 10.6. This streamlines and slims the application bundle and allows using more recent 3rd party dependencies which are not available for older Mac OS X releases. If you still need support for Mac OS X 10.5, use the 0install version of DisplayCAL.

Fixed in this release:

  • [Critical] Ensure alternate forward profiler device to PCS table input curves are strictly monotonically increasing to prevent clipping resulting in peaks in the response in case of bad underlying (non-monotonic) device behavior (regression of a change in DisplayCAL 3.3.5, SVN revision r4838).
  • [Minor] Always force the first entry in PCS to device table input curves to zero when generating high resolution PCS to device tables (fixes potential unexpected non-zero RGB output for zero input to perceptual PCS to device table).
  • [UI] [Cosmetic] When not confirming a manual DisplayCAL update but ArgyllCMS is up to date, reflect this in the final dialog message.
  • [Trivial] ReShade 3D LUT: If ReShade 3.x default shaders are installed, write the different parts of the 3D LUT to the correct respective sub-directories and no longer write the superfluous ReShade.fx.
  • [UI] [Cosmetic] Linux: Prevent flickering of tab buttons on some systems when switching tabs.
  • [Moderate] Linux: The way display device enumeration was performed was not always guaranteed to give consistent results across the different available external device to profile mapping APIs, which could lead to wrong profile associations in multi-display configurations (this fix is required to match how ArgyllCMS 2.0 enumerates displays).
  • [Minor] Mac OS X (standalone application): Bundle certificate authority certificates to enable verifying server certificates (fixes not being able to automatically download updates).
  • [Minor] Windows: When creating a colorimeter correction from measurement file(s) stored in a path where one or more components(s) started with a number from 1-9 or the lowercase letter g, the operation failed and the created colorimeter correction had to be retrieved from the temporary directory manually.
  • [Minor] Profile loader (Windows): When manually disabling calibration loading via the pop-up menu, and then starting DisplayCAL (or another application detected by the profile loader) and closing it again, the profile loader would stay disabled, including the calibration loading related menu items, requiring a profile loader restart.

Enjoy!

DisplayCAL 3.3.5 released

This is a maintenance/bugfix release.

Changed in this release:

  • [Enhancement] Updated french localization (thanks to Jean-Luc Coulon).
  • [Enhancement] When generating high resolution PCS to device tables for XYZ LUT profiles, round PCS candidate “fit” so a good match is not potentially needlessly discarded in favor of a match with lower effective usage of the available lookup table grid points (may speed up the process as well).
  • [Enhancement] Use single curve detection based on calibration accuracy for shaper tags of XYZ LUT profiles as well.

Fixed in this release:

  • [Minor] When enabling the Spyder2, check if the spyd2PLD.bin firmware has actually been successfully extracted (taking into account the install scope) and fall back to alternate methods when using automatic mode if the firmware cannot be extracted from the vendor software present in the local filesystem (fixes inability to enable the Spyder2 under Mac OS X if the vendor software is installed).
  • [Minor] Windows: Make measurement report filename safe for filesystem encoding (works around encoding quirks with certain locales).
  • [Minor] Windows: Windows silently strips any combination of trailing spaces and dots in file and folder names, so do the same for the profile name.
  • [Minor] Profile loader (Windows): WCS can return no profile without error in some situations, but the no error case wasn’t accounted for, resulting in an unhandled exception in that case.
  • [Minor] Profile loader (Windows): Get the process identifier before enumerating windows to prevent an unhandled exception if a madVR instance is already running before starting the profile loader.
  • [Cosmetic] Profile loader (Windows): Detect if the current display profile video card gamma table tag contains linear calibration when checking if madVR did reset the video card gamma table to linear to prevent the profile loader alternating between enabled and disabled state if using windowed overlay in madVR.

DisplayCAL 3.3.4.1 (Linux & Mac OS X only) released

Fixed in this release:

  • [Moderate] Linux (profile installation and profile loading): Getting the fallback XrandR display device ID could unexpectedly return no result in some cases due to incorrect parsing, leading to potential application of a stale device to profile mapping or no profile at all (regression of SVN revision r4800).
  • [Minor] Linux, Mac OS X: The visual whitepoint editor was failing to update the test pattern area of a connected madTPG instance when madVR was selected as display device, due to an implementation bug related to setting the background color.

DisplayCAL 3.3.4 released

This is a maintenance/bugfix release.

Added in this release:

  • Verification charts for ISO 14861:2015 soft proofing evaluation.

Changed in this release:

  • [Enhancement] More even and consistent CPU utilization on multi CPU/multi core systems during high resolution device-to-PCS table generation.
  • [Enhancement] Multi-threaded gamut view calculation.
  • [Enhancement] Use an alternate way to generate the matrix for profiles created from the small testchart for matrix profiles (may improve accuracy on very linear displays) and use an optimized tone response curve if using a single curve and the measured response is a good match to an idealized parametric or standardized tone response curve.
  • [Enhancement] Uniformity report: No longer include (meaningless) correlated/closest color temperature. Use “traffic light” visual indicators in conjunction with unambiguous pass/fail messages to allow easy at-a-glance assessment of the results, and also include contrast ratio deviation to fully conform to ISO 12646:2015 and 14861:2015. You can update old reports via “Update measurement or uniformity report…” in the “Report” sub-menu of the “Tools” menu.
  • [Enhancement] Measurement report: Use the display profile whitepoint as reference white for the measured vs. profile white delta E calculation and use the assumed target whitepoint as reference white for the measured vs. assumed white delta E calculation to make the reported delta E more meaningful.
  • [Enhancement] Measurement report: Allow to use the display profile whitepoint as reference white when using absolute (not D50 adapted) values.
  • [Enhancement] Profile installation (Linux): Always do fallback colord profile installation using colormgr if available unless the ARGYLL_USE_COLORD environment variable is set.
  • [Enhancement] Profile loader (Linux): Include the profile source (colord or Argyll’s UCMM) in diagnostic output and use the XrandR device ID as fallback when no EDID is available.
  • [Enhancement] Profile loader (Windows): Slightly improve encoding accuracy of quantizing to 8 < n < 16 bits.
  • [Trivial] Offer the complete range of input encodings for the eeColor 3D LUT format and do not force an identical output encoding.
  • [Trivial] Do not store calibration settings in a profile if calibration is disabled.
  • [Trivial] Revert the default profile type for the 79 patches auto-optimized testchart slider step to XYZ LUT + matrix.
  • [Trivial] Iridas cube 3D LUTs: Increase compatibility by stripping leading whitespace from text lines and adding DOMAIN_MIN/MAX keywords if missing.
  • [Trivial] Measurement report: Calculate true combined a*b* range for grayscale instead of summing separate ranges.
  • [Trivial] Measurement report: Automatically enable “Use absolute values” if using full whitepoint simulation (i.e. not relative to display profile whitepoint).

Fixed in this release:

  • [Moderate] When cancelling profiling measurements with the testchart set to “Auto”, the testchart UI and the internal test chart setting were no longer in sync until changing the profile type or restarting the application.
  • [Moderate] Synthetic ICC profile creator: Unhandled exception when trying to create DICOM (regression of a change in DisplayCAL 3.1.5, SVN revision r4020) or SMPTE 2084 profiles (regression of multiprocessing changes in DisplayCAL 3.3).
  • [Minor] Protect against potentially clipping slightly above black values during high resolution device-to-PCS table generation (regression of a change in DisplayCAL 3.3.3, SVN revision r4705).
  • [Minor] Protect against enumerating displays and ports in response to a DISPLAY_CHANGED event when the main window isn’t shown or isn’t enabled which could lead to a hang due to a race condition.
  • [Minor] Verification using a simulation profile that defines an identity matrix in its ‘chad’ tag (e.g. ISOnewspaperv4) did not work correctly due to the matrix being mapped to “None” insatead of “XYZ scaling”.
  • [Minor] Verification using a CMYK simulation profile failed with a “Profile invalid” error if previously “Use simulation profile as display profile” and “Device link profile” were enabled but no device link profile selected.
  • [Minor] Remove separate videoLUT access support under Windows and Mac OS X (separate videoLUT access is only supported under X11).
  • [Minor] Downloaded files were not renamed from their temporary name if the server did not return a Content-Length header (this typically only happens for text files, not binary files). Fixes not being able to import colorimeter corrections from iColor Display.
  • [Trivial] Do not reflect the black point hue in tone response curves of single curve + matrix profiles when not using black point compensation.
  • [Trivial] Measurement report: Additional stats median calculation index was off by n+1.
  • [Cosmetic] Display model name and manufacturer description tags were missing from profiles created using the alternate forward profiler.
  • [Cosmetic] Measurement report: Eliminate “Use absolute values” having a side-effect on the RGB patches preview.
  • [Cosmetic] Windows: When closing some of the standalone tools when minimized, e.g. by right-clicking the taskbar button and choosing “Close” from the menu, or by using the taskbar preview close button, the application did not close until restored from its minified state (i.e. by clicking on the taskbar button or switching to it with the task switcher).

DisplayCAL 3.3.3 released

This is a maintenance/bugfix release.

Added in this release:

  • Intermediate auto-optimized testchart step with 115 patches.

Changed in this release:

  • [UI] [Cosmetic] Verification tab: Always show advanced tone response curve options when “Show advanced options” is enabled in the “Options” menu.
  • [UI] [Trivial] Verification tab: Don’t reset the simulation profile tone response curve choice unless changing the simulation profile.
  • [Enhancement] [Trivial] When encountering an invalid peak white reading during output levels detection, advise to check if the instrument sensor is blocked.
  • [Enhancement] Visual whitepoint editor: Use whitepoint of currently selected profile (unless it’s a preset or “<Current>”) instead of associated display profile.
  • [Enhancement] Blend profile black point to a*b* = 0 by default. This makes the visual appearance of black and near black response in Photoshop (which uses relative colorimetric intent with black point compensation for display by default) match the DisplayCAL perceptual table of XYZ LUT profiles (which means neutral hues gradually blend over to the display black point hue relatively close to black. The rate of this blend and black point hue correction are influenced by the respective calibration settings, which is another added benefit of this change).
  • [Enhancement] Measurement & uniformity report: Change average delta a, b, L, C, and H to be calculated from absolute values.
  • [Enhancement] Profile loader (Windows): Don’t implicitly reset the video card gamma table to linear if no profile is assigned or couldn’t be determined. Show an orange-red error icon in the latter case and display details in the left-click notification popup.
  • [Cosmetic] Windows: Log errors when trying to determine the active display device during profile installation.

Fixed in this release:

  • [UI] [Cosmetic] Verification tab: Don’t accidentally enable the simulation profile tone response curve black output offset (100%) radio button when switching tabs.
  • [Trivial] Show error dialog if not able to connect to instrument for single reading.
  • [Minor] Strip the “firmware missing” message from the Spyder2 instrument name if it was not yet enabled (makes the automatic popup to enable the Spyder2 work).
  • [Minor] Prisma 3D LUT upload with 1.07 firmware.
  • [Minor] More accurately encode the black point in the colorimetric PCS to device table by explicitly clipping below black values to zero.

Enjoy!

DisplayCAL 3.3.2 released

This is a maintenance/bugfix release.

Added in this release:

  • IPT and Lpt color spaces (profile information 2D and 3D gamut view, testchart editor 3D view).
  • ACEScg and DCDM X’Y’Z’ source profiles.

Changed in this release:

  • [Enhancement] Changed HDR 3D LUT SMPTE 2084 roll-off colorimetric rendering to do gamut mapping in ICtCp (slightly improved hue and saturation preservation of bright saturated colors).
  • [Trivial] Include output levels detection related files in session archives.

Fixed in this release:

  • [Moderate] Unhandled exception when trying to set a white or black level target on the calibration tab via the newly introduced measurement buttons (regression of a change in DisplayCAL 3.3.x, SVN revision r4557).
  • [Moderate] Black point compensation for cLUT-type profiles in the advanced options did not work correctly (regression of a change in DisplayCAL 3.3.x, SVN revision r4538).
  • [Moderate] Unhandled exception when creating L*a*b* LUT profiles (regression of multiprocessing changes in DisplayCAL 3.3.x, SVN revision r4433). Note that creating L*a*b* LUT profiles is not recommended due to the limited ICC encoding range (not suitable for wide-gamut) and lower accuracy and smoothness compared to XYZ LUT.
  • [Minor] Output levels detection and alternate forward profiler were not working when using output levels quantization via additional dispread command line option -Z nbits.
  • [Minor] Do not create shaper curves for gamma + matrix profiles.
  • [Minor] Don’t fall back to colorimetric rendering for HDR 3D LUT SMPTE 2084 roll-off when using luminance matched appearance or luminance preserving perceptual appearance rendering intents.
  • [Trivial] DIN99c and DIN99d white point misalignment (profile information 2D and 3D gamut view, testchart editor 3D view).
  • [UI] [Cosmetic] Change info panel text to use system text color instead of defaulting to black.
  • [Minor] Linux (0install): Prevent system-installed protobuf package shadowing 0install implementation.