# DisplayCAL—Display Calibration and Characterization powered by ArgyllCMS

## Changelog

2019-12-14 12:14 (UTC) 3.8.9.3

  ### DisplayCAL 3.8.9.3

  #### Fixed in this release:

  - [Cosmetic] [UI] Improve PCS to device gamut outline plot.
  - [Blocker] Linux, macOS: Fix failure to launch if initial install (regression of lockfile change in 3.8.9.2)

  2019-12-12 22:33 (UTC) 3.8.9.2

  ### DisplayCAL 3.8.9.2

  #### Fixed in this release:

  - [Minor] When previous instance was force quit, override leftover lockfile.
  - [Trivial] When using a custom profiling testchart with very few or no dark RGB gray patches, try to better maintain slope of existing points during shaper curve generation.

  2019-12-08 01:19 (UTC) 3.8.9.1

  ### DisplayCAL 3.8.9.1

  #### Fixed in this release:

  - [Moderate] Fix SpyderX calibration issue when using 32-bit ArgyllCMS executables.

  2019-12-07 16:21 (UTC) 3.8.9

  ### DisplayCAL 3.8.9

  #### Changed in this release:

  - [Enhancement] Show the instrument serial number (if available) when prompting to physically interact with the instrument.
  - [Enhancement] Check SpyderX dark offset calibration and abort if it is too high (user error).
  - [Enhancement] Adjust perceptual device to PCS table black point to match perceptual PCS to device table.
  - [Enhancement] Warn during automatic output levels detection if the display device input range or graphics driver output range look to be misconfigured.
  - [Enhancement] Profile loader (Windows): Use an alternate method to enforce single instance if local IPC is blocked.
  - Tone response curve plot now uses the illuminant-relative profile whitepoint instead of D50 for input values if using absolute colorimetric intent.
  - Rename “LG OLED” (.dcl) 3D LUT format to “DeviceControl” and unlock available resolutions.

  #### Fixed in this release:

  - [Trivial] Reload current calibration when cancelling profile installation (regression of a change to profile installation dialog handling in DisplayCAL 3.8.8, SVN revision r6252).
  - [Trivial] When loading settings from a profile, restore unused CIECAM02 viewing conditions (if applicable).
  - [Trivial] Prevent potential double prompt for instrument calibration.
  - [Cosmetic] Do not re-use logfiles for standalone tools as long as other instances are still running.
  - [Moderate] Linux: Failure to launch with pre-release versions of wxPython 4.

  2019-11-07 21:16 (UTC) 3.8.8.1

  ### DisplayCAL 3.8.8.1

  #### Fixed in this release:

  - [Moderate] Linux: Work-around failure to launch if wxPython 3.0 / wxWidgets 3.0 release number do not match (using wxPython 3.0 is deprecated).

  2019-11-06 23:12 (UTC) 3.8.8

  ### DisplayCAL 3.8.8

  #### Changed in this release:

  - [Enhancement] Detect and warn about malformed colorimeter corrections (e.g. from non-official sources). Move them to the trash automatically if they were previously (manually) installed.
  - [Enhancement] Always enumerate instruments on application startup if more than one instrument was detected the last time the application was used (cross-platform consistency).
  - [Enhancement] When prompting for instrument calibration, display the just now detected instrument name instead of the previously enumerated name (the latter might be stale if you forgot to refresh after changing connected instruments).
  - [Enhancement] Use a slightly improved smoothing method when creating high resolution PCS to device tables.
  - [Enhancement] Increase automatic PCS to device table resolution for L*a*b* LUT profiles to 45x45x45 if using smoothing.
  - [Enhancement] [UI] Only auto-close profile/3D LUT installation dialog after a successful installation.
  - [Enhancement] Don't auto-close madTPG after 3D LUT installation.
  - [Enhancement] macOS: Warn if a black luminance calibration target is set.
  - [Enhancement] Profile loader (Windows): Use a minimally faster method to check for other running applications.

  #### Fixed in this release:

  - [Minor] madVR 3D LUT generation: Always write D65 white to 3D LUT input primaries metadata so madVR does not attempt to correct whitepoint differences on its own when using a custom whitepoint (the 3D LUT itself will map the custom whitepoint correctly).
  - [Minor] madVR 3D LUT installation: Don't attempt to install 3D LUTs with unsupported input primaries metadata (i.e. not Rec. 709, SMPTE C, EBU/PAL, Rec. 2020 or DCI P3) as madVR will overwrite the metadata depending on the 3D LUT install slot. Such 3D LUTs should only be assigned manually in madVR instead.
  - [Trivial] [UI] When loading settings, always enable the 3D LUT tab if the display is virtual (consistent with display selection behavior).
  - [Trivial] Also apply black point correction when creating a matrix profile without black point compensation (consistency).
  - [Trivial] Do not create swapped matrix fallback tags for XYZ LUT profiles when using the alternate forward profiler and the used ArgyllCMS version is >= 2.1 (be consistent with ArgyllCMS).
  - [Trivial] madVR 3D LUT generation: Accept negative values for input primaries metadata.
  - [Trivial] madVR 3D LUT installation (Linux, macOS): Send the 3D LUT in chunks and increase the timeout to prevent the installation failing over a slow network (e.g. WiFi).
  - [Cosmetic] [UI] Profile loader (Windows): Prevent a stale tray icon remaining (until mouse over) in some rare cases after exiting the profile loader.
  - [Trivial] Profile loader (Windows 7): Skip incomplete display configuration registry entries.

  2019-10-01 20:50 (UTC) 3.8.7.1

  ### DisplayCAL 3.8.7.1

  #### Fixed in this release:

  - [Trivial] [UI] Profile information (Linux): When using wxPython 3.0 instead of 4.0, clicking the sash would throw an error (using wxPython 3.0 is deprecated).
  - [Trivial] macOS: Only automatically re-enable black point compensation if restoring defaults or loading a non-3D-LUT preset.
  - [Trivial] Profile loader (Windows): Work-around two instances of the profile loader being started after powering on the system if fast startup was enabled in Windows power settings.

  2019-09-22 13:23 (UTC) 3.8.7

  ### DisplayCAL 3.8.7

  #### Changed in this release:

  - [Enhancement] macOS: Automatically enable not using the video card gamma table to apply calibration during characterization measurements if using limited range (16..235). This should mitigate issues with older graphics chipsets and/or macOS versions that use the wrong output range internally when connected to some monitors that expect to receive limited range signals.
  - [Enhancement] Profile loader (Windows): A scheduled task now restarts the profile loader after resume from standby/hibernation as well as daily at 04:00 AM (whichever comes first), to mitigate the Windows GDI SetDeviceGammaRamp API leaking memory since Windows 10 1903.

  #### Fixed in this release:

  - [Trivial] Don't automatically disable interactive display adjustment when setting calibration tone curve to “As measured” (unintended behavioral change introduced in DisplayCAL 3.8.6, SVN revision r6194).
  - [Minor] Linux (GNOME on Wayland): Latency incurred by a large measurement window size was not accounted for, introducing the possibility of measurements failing due to loss of synchronization.
  - [Minor] Linux (GNOME on Wayland): Limited range (16..235) support.
  - [Cosmetic] [UI] macOS: Get rid of brief profile installation dialog flicker after installation.

  2019-09-06 10:23 (UTC) 3.8.6

  ### DisplayCAL 3.8.6

  #### Changed in this release:

  - [Enhancement] If the graphics drivers or hardware do not support loadable gamma ramps or calibration, show a more descriptive error message.
  - [Enhancement] Increase the timeout for display & instrument detection during application startup from 10 to 20 seconds, to allow for slow opening of legacy serial ports.
  - [Enhancement] Windows 10 1903: Always do instrument detection during application startup if more than one instrument was connected the last time the application was used, as the list of instruments is not guaranteed to be consistent between sessions under 1903.
  - [Enhancement] Profile loader (Windows): Apply smoothing to calibration if the quantization bitdepth is set to 8.
  - [Enhancement] Profile loader (Windows): No longer require running elevated to be able to detect changes in the display configuration under Windows 10 1903.

  #### Fixed in this release:

  - [Minor] Do not attempt to access properties of non-existent objects if a subprocess is not succesfully terminated after reaching a timeout during display & instrument detection at application startup (unexpected failure).
  - [Trivial] [UI] Disable the profile installation button if no displays have been detected.
  - [Trivial] [UI] Disable the measurement report menu item if no instruments have been detected.
  - [Trivial] Profile loader (Windows): Work around Windows 10 1903 handle leaks in Windows Color System APIs.

  2019-08-14 13:06 (UTC) 3.8.5

  ### DisplayCAL 3.8.5

  #### Changed in this release:

  - [Enhancement] macOS: Use `caffeinate` to prevent display sleep and screensaver.

  #### Fixed in this release:

  - [Moderate] DisplayCAL 3.8.4 broke video levels (16..235) output encoding/decoding for video card gamma table tags (profiles using calibration with video output levels created by 3.8.4 can be fixed by re-creating via menu “File”, “Create profile from measurement data...” and selecting the existing profile).

  2019-08-10 21:17 (UTC) 3.8.4

  ### DisplayCAL 3.8.4

  #### Changed in this release:

  - [Enhancement] Do early detection of highly non-monotonic luminance responses when doing on-the-fly generation of the preconditioning profile for auto-optimized testcharts with 425 or more patches.
  - [Enhancement] Always create a single shaper curve for the fallback matrix tags of cLUT profiles with nonlinear calibration.
  - [Enhancement] Profile loader (Windows): Only try to restore profile associations on exit if they had to be fixed on launch to begin with.

  #### Fixed in this release:

  - [Minor] Work-around Argyll applycal bug with gamma value TRC curve tags in profiles (fixes generating HDR 3D LUTs from display profiles with such tags).
  - [Trivial] [UI] Windows with display scaling above 100% (HiDPI): Prevent occasional text cutoff/wrapping issues on dialog messages by adding one pixel to the minimum width of the message text area (wxWidgets bug).

  2019-07-02 21:00 (UTC) 3.8.3

  ### DisplayCAL 3.8.3

  #### Changed in this release:

  - Profile loader (Windows): Work around Windows 10 1903 (May 2019 update) severe banding bug and automatically disable Microsoft Windows Color System Calibration Loader task. Logging out and back in is required, and may be required each time a display's default associated profile is changed.

  #### Fixed in this release:

  - [Minor] Verification: Prevent unintended mixing of unicode and binary strings when a device link profile is used.
  - [Cosmetic] [UI] Linux (KDE): Centering the measurement window would increase its size slightly and resetting its size would move the window down and right (regression of SVN revision r6137).

  2019-06-09 15:18 (UTC) 3.8.2

  ### DisplayCAL 3.8.2

  #### Changed in this release:

  - [Enhancement] Always try to skip initial colorimeter calibration for uniformity measurements (e.g. SpyderX).
  - [Enhancement] Linux: Use GObject Introspection for DBus access (if available).
  - [Enhancement] Linux: Use a default timeout of 500 ms for DBus calls.
  - [Enhancement] Profile loader (Windows): If registry access to the display configuration fails (e.g. due to running non-elevated), log a warning only once.
  - Windows: Only log Windows exceptions that are actually errors.

  #### Fixed in this release:

  - [Minor] If invoked from the main application's “Tools” menu, the synthetic ICC profile creator HDR configuration could affect the main application's 3D LUT HDR configuration.
  - [Minor] Successive requested instrument calibration during uniformity measurements did not wait for the calibration to complete before continuing (e.g. SpyderX).
  - [Trivial] Prevent potential blocking of socket binding if a previous instance exited unexpectedly.
  - [Trivial] [UI] Change parent inheritance for pathdialog wrappers so interacting with the parent is appropriately prevented when the wrapper dialog is shown via a scripting request.
  - [Trivial] [UI] Linux: Always prefer the global DPI value (Xft.dpi) for HiDPI scaling with wxGTK2.
  - [Trivial] [UI] Windows: Work-around wxPython Phoenix bug: Destroying a frame loaded from XRC affects subsequently loaded XRC resources (leading to instantiated controls being of the wrong type and failing initialization due to not having the expected interfaces).

  2019-05-24 01:13 (UTC) 3.8.1.1

  ### DisplayCAL 3.8.1.1

  #### Fixed in this release:

  - [Minor] [UI] Linux: Some custom widgets could have a size of zero with wxGTK2 under non-KDE desktop environments when `org.gnome.desktop.interface scaling-factor` was set to 0 (regression of a change in DisplayCAL 3.8.1, SVN revision r5979).
  - [Minor] [UI] Linux: No scaling for some custom widgets with wxGTK2 and HiDPI unless `org.gnome.desktop.interface scaling-factor` was set to a value of 2 or higher (regression of a change in DisplayCAL 3.8.1, SVN revision r6005). HiDPI scaling with wxGTK2 under X11 is now handled entirely by the global DPI value (Xft.dpi).
  - [Minor] [UI] Linux: Too small size for the contents of some custom widgets with wxGTK2 and HiDPI.
  - [Cosmetic] [UI] Linux: Too much padding inside some custom widgets with wxGTK2 and HiDPI.
  - [Cosmetic] [UI] Linux: Occasional glitchy window sizing under Wayland.
  - [Cosmetic] [UI] Linux: Added workaround for double window decorations when the environment variable GTK_CSD is set to a nonzero value under X11 (e.g. elementary OS Juno with Phanteon desktop).

  2019-05-18 15:11 (UTC) 3.8.1

  ### DisplayCAL 3.8.1

  #### Added in this release:

  - [Feature] Linux: Preliminary experimental Wayland support under GNOME 3 using colord (requires ArgyllCMS 2.1 or newer as well). Caveats do apply:
    - Window placement and ordering is completely up to the compositor under Wayland. There is generally no way for an application to place its own windows at specific relative locations or z-orders. As a result of this, the measurement window cannot stay always on top or be automatically centered. Extra care needs to be taken that other windows are not placed on top.
    - Video card gamma table (videoLUT) access is handled by colord. Some functions like viewing current videoLUT contents may not be available.
    - The measurement window color depth is limited to 8 bits per channel per pixel (but dithering is used to achieve a higher effective color depth).
    - The measurement window may be subject to desktop-wide color management in upcoming versions of Wayland (although the display device is inhibited during measurements via the org.freedesktop.ColorManager.Device D-Bus API which should prevent this, and as a fallback a linear calibration sRGB profile is temporarily installed during measurements if the D-BUs API is unavailable, which should result in an identity transform, i.e. effectively no color management, as well as linear video card gamma tables).
    - Application support for color management under Wayland via colord still seems to lacking (although the list may well be out-of-date).
    - Only tested under GNOME 3 (Fedora 30, Ubuntu 19.04). Support for other desktop environments will need to be implemented separately until Wayland gains a color management and calibration/profiling protocol.
  - [Feature] LG OLED 3D LUT format.

  #### Changed in this release:

  - [Enhancement] If the currently used ArgyllCMS version is not a standard version, but also not a beta, do not offer to switch to an installed official stable version if it's otherwise the same version number.
  - [Enhancement] Include Quantum Dot LED (Samsung QLED Q9F) spectral sample colorimeter correction when importing for i1 Display Pro and ColorMunki Display (sourced from community colorimeter corrections database).
  - [UI] Linux (Debian, Fedora, Ubuntu): Use wxPython Phoenix if installed.
  - Prisma, Resolve: Set pattern generator background color to pattern color if using fullscreen patterns.

  #### Fixed in this release:

  - [Moderate] UnicodeDecodeError when a CCSS file contains unicode characters in the display device description (regression of a change in DisplayCAL 3.8 to use localized technology descriptions, SVN revision r5810).
  - [Minor] APL calculation for Prisma and Resolve pattern generators was off by a few percent depending on pattern area and current pattern color.
  - [Minor] Quick reporting on calibrated or uncalibrated display did not try to detect output levels if set to “Auto”.
  - [Trivial] More gracefully deal with faulty tags in ICC profiles (fixes ICC profile information unhandled exception for colord-created profiles with malformed `targ` tags).
  - [Trivial] [UI] Correctly update the audio button state on progress dialogs when changed on a previous window.
  - [Cosmetic] [UI] Various minor potential rendering glitches.
  - [Cosmetic] [UI] macOS (standalone application bundle): Splash screen did not animate.
  - [Cosmetic] [UI] Linux: Add work-arounds for various Wayland-related wxPython rendering quirks and bugs (e.g. spacing around windows, popup menu placement).
  - [Trivial] Linux: Try to work around sporadic colord profile installation quirks (“The profile was not added in time”).

  Phasing out 0install support. While the 0install version of DisplayCAL (which was originally introduced as a replacement for the long-defunct Autopackage system under Linux) has had its uses, the low distribution (around 6%) of 0install versus the standalone version does no longer warrant the additional time and work needed to maintain this separate deployment path.
  0install support is thus being phased out starting with DisplayCAL 3.7.2 and following releases, which are only available as “standalone” installations. Windows and macOS users will be updated automatically to the standalone version. Linux users should switch to a standalone package at their earliest convenience.
  There will be a transition period of a few months during which old 0install-based DisplayCAL versions will continue to run, but afterwards the respective online infrastructure will be decommissioned.

  2019-04-26 01:17 (UTC) 3.8

  ### DisplayCAL 3.8

  #### Added in this release:

  - [Feature] SpyderX support (requires ArgyllCMS 2.1.0 or newer, use ArgyllCMS 2.1.1 or newer to be able to skip instrument self-calibration).
  - [Feature] Colorimeter correction information with graph.
  - [Feature] Synthetic ICC profile creator: Drag & drop support for TI3 measurement files.
  - [Enhancement] Rudimentary support for hypothetical future instruments and their measurement modes (any new instrument support added to ArgyllCMS in the future should be fully usable in DisplayCAL right away without needing an update for instrument-specific measurement modes).
  - [Enhancement] Display technology information to aid in the choice of a suitable measurement mode or correction.
  - [Enhancement] Include some additional spectral sample colorimeter corrections when importing for i1 Display Pro and ColorMunki Display (e.g. MacBook Pro 2016 Retina with PFS Phosphor WLED “P3” display, LG OLED 6-series WOLED based on samples from LG C6 and E6 OLED TVs, sourced and combined from community colorimeter corrections database contributions).
  - [Enhancement] macOS: Automatically warn about incompatibilities of Apple software with calibration black point hue correction and profile types other than single curve + matrix with black point compensation.

  #### Changed in this release:

  - [UI] Updated simplified chinese localization (thanks to Mars).
  - [UI] Updated french localization (thanks to Jean-Luc Coulon).
  - [Enhancement] Prefer colorimeter corrections from “ArgyllCMS” folder and ignore duplicate (spectral) colorimeter corrections from “color” folder (e.g. installed by HCFR under Windows).
  - [Enhancement] Default to high-resolution spectrum mode (if available) for spectrometers that support it.
  - [Enhancement] Implicitly try to skip repeat instrument self-calibration for colorimeters that want it if already done at least once per measurement run.
  - [Enhancement] Converted translation file format from JSON to YAML for better readability.
  - [Enhancement] Use a localized description for known quality spectral sample colorimeter corrections.
  - Use an application-specific download directory for updates and supporting files.

  #### Fixed in this release:

  - [Minor] Not all programmed measurement modes were enumerated for the K10-A colorimeter (regression of a change in DisplayCAL 3.7, SVN revision r5557).
  - [Minor] ColorHug/ColorHug2 “auto” measurement mode was not working anymore.
  - [Trivial] Curve viewer: Re-introduced being able to view the current contents of the video card gamma table if no display profile is set or the profile used does not contain calibration.
  - [Cosmetic] Curve viewer, profile information: Curve graphing identical channel detection was not working properly in some cases (only affected synthetic curves).
2019-03-17 18:36 (UTC) 3.7.2

  ### DisplayCAL 3.7.2

  #### Added in this release:

  - [UI] Russian and ukrainian localization (thanks to Alex Sikorsky).

  #### Changed in this release:

  - [Enhancement] Apply black point correction/compensation to measurement data directly instead of device-to-PCS table (improves smoothness of profiles for displays with not very neutral black).
  - [Enhancement] Optimize single gamma curve without offset to single gamma value.
  - [Enhancement] Network: Get rid of `gethostbyname` usage because it can have a long delay.
  - [UI] Updated traditional chinese localization (thanks to 楊添明).

  #### Fixed in this release:

  - [Minor] Fallback TRC tags were created using a wrong backward matrix when using ArgyllCMS 2.0.2b or newer.
  - [Trivial] When connecting to a pattern generator, closing the connection dialog should be equivalent to cancelling.
  - [Cosmetic] [UI] Show a dialog while the UI is blocked when connecting to madTPG.
  - [Cosmetic] [UI] Do not show the visual whitepoint editor fullscreen warning if using a pattern generator.
  - [Cosmetic] [UI] Synthetic ICC creator: Set chromatic adaptation up/down arrow increment to 0.0001.
  - [Cosmetic] [UI] Synthetic ICC creator: Hide (unused) hue & saturation controls for SMPTE 2084 hard clip.
2019-01-24 14:44 (UTC) 3.7.1.4

  ### DisplayCAL 3.7.1.4

  #### Changed in this release:

  - [Enhancement] Changed full field pattern insertion interval and duration granularity to 0.1 seconds.
  - [Enhancement] Store and read full field pattern insertion parameters from profile.
  - [Enhancement] madVR (Windows): Search on the network before trying to start a local madTPG instance.

  #### Fixed in this release:

  - [Minor] Full field pattern insertion should not run during display update delay measurements and requires an extra delay after being shown.
  - [cosmetic] [UI] Include full field pattern insertion in estimated measurement time calculation.
  - [Minor] Profile loader (Windows): Undefined variable under legacy versions of Windows (i.e. XP) when selecting the profile associations popup menu item.
2018-12-03 00:48 (UTC) 3.7.1.3

  ### DisplayCAL 3.7.1.3

  #### Changed in this release:

  - [Cosmetic] [UI] Show ColorMunki spectrometer as “ColorMunki Design/Photo, i1Studio” in instrument dropdown for better differentiation from “ColorMunki Display” and “ColorMunki Smile” colorimeters.

  #### Fixed in this release:

  - [Minor]: UnicodeError when trying to access 3rd-party ICC v4 profiles MultiLocalizedUnicodeType tags with non-US/UK country code(s) for english language.
  - [Minor] Profile loader (Windows): Work-around an incompatibility with Wacom tablets (tray icon right-click popup menu didn't work).
  - [Minor] macOS: Creating a colorimeter correction didn't work if the display manufacturer couldn't be determined automatically (regression of autocomplete change in DisplayCAL 3.7 due to undocumented wxPython incompatibility).
2018-11-14 20:19 (UTC) 3.7.1.2

  ### DisplayCAL 3.7.1.2

  #### Fixed in this release:

  - [Regression] Linux: Display enumeration didn't work correctly due to 3.7.1 full field pattern insertion change for ArgyllCMS 2.0.2b.
2018-11-02 15:50 (UTC) 3.7.1.1

  ### DisplayCAL 3.7.1.1

  #### Fixed in this release:

  - [Moderate] macOS: Potential startup problem introduced by 3.7 splash screen changes.
2018-11-01 22:30 (UTC) 3.7.1

  ### DisplayCAL 3.7.1

  #### Changed in this release:

  - [Enhancement] Measurement report: Updated Fogra Media Wedge V3 evaluation criteria to ISO 12647-7:2016 version of the standard (use ΔE*00 and ΔCh for CMY gray).
  - [Enhancement] Measurement report: Moved ΔICtCp to general evaluation criteria so it can be shown in the additional statistics for all available criteria.
  - [Enhancement] Updated simplified chinese translation (thanks to Mars).
  - [Enhancement] Full field pattern insertion: Support the latest ArgyllCMS 2.0.2 Beta development code.
  - [Enhancement] [UI] Consistency: When changing the verification chart, set the simulate whitepoint relative to display profile whitepoint option according to the simulation profile (just as when changing the simuation profile itself) and don't reset the simulate whitepoint option when changing the simulation profile.
  - [Cosmetic] Automatically fall back to the default verification chart if the selected one no longer exists (due to the chart file having been moved or deleted).
  - [Cosmetic] Detect highly non-monotonic luminance responses when creating shaper curves (intended to let creating a profile from highly non-monotonic measurements fail just as before, but with a nicer, more descriptive error message instead of the raw exception from the underlying fitting function).
  - [Cosmetic] When creating a profile fails and results in an error dialog, do not show the superfluous additional “profiling not finished” message.

  #### Fixed in this release:

  - [Minor] Restored the ability to create colorimeter corrections for virtual displays, which was accidentally removed in DisplayCAL 3.7.
  - [Trivial] madVR (Linux, macOS): Querying the madVR configured black & white level didn't work via the madVR network protocol.
  - [Cosmetic] madVR (Linux, macOS, Windows when using pattern insertion): Prevent lingering madTPG OSD messages.
  - [Cosmetic] [UI] macOS: Incorrect rendering of splash screen under macOS 10.14 Mojave.
2018-10-10 22:04 (UTC) 3.7

  ### DisplayCAL 3.7

  #### Added in this release:

  - [Feature] Full field pattern insertion option for selected pattern generators (madTPG*, Prisma and Resolve).
    *madTPG on Windows requires using a modified version of ArgyllCMS.
  - [Feature] Chromatic adaptation control for the synthetic ICC profile creator.
  - Resolve HDR 3D LUT preset (SMPTE 2084 hard clip, no tonemapping).

  #### Changed in this release:

  - [Enhancement] Show a column with the spectral resolution and range of the reference measurements when listing colorimeter corrections from the online database (if available).
  - [Enhancement] Improved support for (3rd party) profiles with chromatic adaptation transforms other than Bradford, e.g. for use as 3D LUT source profiles.
  - [Enhancement] Early abort when cancelling video level detection measurements.
  - [Enhancement] Early abort if connecting to madTPG fails.
  - [Enhancement] Updated simplified chinese translation (thanks to Mars).
  - [Enhancement] If using madTPG and continuing from interactive adjustment to iterative grayscale calibration, wait three seconds after switching to fullscreen and exclusive fullscreen respectively, to give the display time to complete the switch, before commencing measurements.
  - [Enhancement] Show messages from instrument related popup dialogs during measurements on the madTPG on-screen display as well.
  - Hue preservation less than 100% for HDR SMPTE 2084 3D LUTs with roll-off tonemapping now only affects red-orange/orange/amber hues (i.e. match madVR's “color tweaks for fire & explosions”).
  - [Enhancement] Verification: Before attempting to create a measurement report, automatically check the PCS to device table resolution for LUT profiles if necessary and warn about low resolution tables.
  - [Enhancement] 3D LUT verification: When using a different whitepoint target for a 3D LUT, use the altered source profile as simulation profile for verification.
  - [Enhancement] 3D LUT verification: When creating a self check report, automatically use the device link profile.
  - [Enhancement] Measurement report: Show weighted ΔL, ΔC and ΔH for ΔE*94 and ΔE*00.
  - [Enhancement] Measurement report: Signed values for ΔL*76, ΔL*94, ΔC*76 and ΔC*94 are now always relative to the nominal values (match ΔE*00 and ΔICtCp).
  - [Enhancement] Measurement report: Measured vs display profile whitepoint is now a purely informational statistic, no longer a pass criteria.
  - [UI] When creating a colorimeter correction, allow selecting a display manufacturer via autocomplete if not set.
  - [UI] [Cosmetic] Minor UI spacing adjustments.
  - [Cosmetic] For HDR 3D LUTs with SMPTE 2084 (hard clip) tone curve, set the mastering display peak luminance in the simulation profile description to the target peak.
  - [Enhancement] macOS: For iMacs, use the model identifier as display description.

  #### Fixed in this release:

  - [Minor] Interpolation between clipping and roll-off for HDR 3D LUTs with SMPTE 2084 tone curve was not as smooth as intended with mastering display peak luminance below 10000 cd/m² or just above target peak.
  - [Minor] HDR 3D LUTs with SMPTE 2084 (hard clip) tone curve did reproduce slightly too low luminance in a limited region below the chosen target peak.
  - [Minor] Verification controls were not being initialized if loading settings before switching to the verification tab.
  - [Trivial] Also update verification tone curve controls if a matrix profile with non-identical shaper curves is selected as simulation profile.
  - [Trivial] Make eeColor to madVR converter exit cleanly when receiving SIGBREAK.
  - [Trivial] Correctly escape/unescape quotes in CGATS.
  - [Trivial] Reset enumerated measurement modes when changing Argyll version.
  - [Trivial] Do not automatically disable interactive display adjustment after visual whitepoint editor measurement.
  - [Trivial] When using madTPG, restore fullscreen and OSD button states when continuing on to calibration after interactive adjustment.
  - [Trivial] madTPG did not automatically enter fullscreen if enabled when skipping interactive display adjustment and detecting video levels.
  - [Trivial] Only show the place instrument on screen countdown in madTPG if we don't temporarily leave fullscreen for interactive adjustment during calibration anyway.
  - [Trivial] Always force HDR 3D LUT SMPTE 2084 mastering display peak luminance to be greater than or equal to target peak luminance.
  - [Cosmetic] Do not show HDR 3D LUT tone mapping hue/saturation controls for SMPTE 2084 (hard clip).
  - [Minor] Measurement report: Measured vs assumed/profile whitepoint delta ICtCp should always be referenced to assumed/profile whitepoint.
  - [Minor] Measurement report: Using absolute values without display profile whitepoint as reference in ICtCp mode referenced the values to D50 instead of the natural ICtCp whitepoint of D65.
  - [Cosmetic] Measurement report: RGB color comparison swatches when using absolute values and display profile whitepoint as reference were not referenced to chosen whitepoint.
  - [Trivial] Profile information: Whitepoint delta E to locus should always be referenced to locus, not D50.
  - [Cosmetic] Profile information: Use correct axis labels for DIN99b 2D gamut plot.
  - [Minor] Standalone 3D LUT maker: Unmatched Thaw() call when setting abstract profile.
  - [Minor] Linux: Prevent potential subprocess memory leak.
  - [Minor] Linux, macOS: When connecting to madTPG, don't send 'bye' commands when closing duplicate connections so madTPG doesn't close the main connection prematurely.
  - [Trivial] Linux with wxPython Phoenix, Windows: Menu item labels in submenus weren't updated until restarting the application after switching to a different language.
  - [Trivial] Profile loader (Windows): Use Unicode APIs for creating the popup menu items, so that they are displayed correctly regardless of Windows codepage (makes non-western languages display correctly on western versions of Windows).
  - [Trivial] Windows: Restore compatibility of measurement report with MSIE 11.
  - [Cosmetic] macOS: When creating a colorimeter correction for a MacBook, correctly unescape backslashes in the automatically filled description.
2018-08-25 14:03 (UTC) 3.6.2

  ### DisplayCAL 3.6.2

  #### Added in this release:

  - [Feature] Measurement report: ICtCp and ΔICtCp color distance metric.

  #### Changed in this release:

  - [Enhancement] Show report type in self check report.
  - [Enhancement] Add actual display profile description to self check report if a simulation profile is used as display profile.
  - [Enhancement] Use the same method to create HDR 3D LUTs whether the display profile is cLUT or matrix based.
  - [Enhancement] Verification: Do not automatically enable “Simulate whitepoint relative to display profile whitepoint” if the verification chart does not contain L*a*b* reference data.
  - [Enhancement] Measurement and self check report: Only automatically enable the use of absolute values when simulating the reference whitepoint if no simulation profile was used.
  - [Enhancement] macOS: On Apple computers with integrated displays (i.e. iMac/MacBook), use the model identifier (e.g. “MacBookPro15,2”) instead of the generic “Color LCD” as display name and add the model description (e.g. “MacBook Pro (Mid 2018)”) when creating colorimeter corrections, to ease identification.

  #### Fixed in this release:

  - [Minor] 3D LUT/verification with a display profile that has a black level of zero, but embedded characterization data black level above zero: Black offset also needs to be applied if not using BT.1886 for correct results.
  - [Minor] When generating high resolution PCS to device tables during HDR 3D LUT creation, use the configured resolution even if low quality PCS to device tables were generated when creating the profile.
2018-08-07 16:14 (UTC) 3.6.1.1

  ### DisplayCAL 3.6.1.1

  #### Fixed in this release:

  - [Minor] Linux: Don't call setlocale() unconditionally, and restore previous locale (fixes build under non-english locales, regression of XDG changes in DisplayCAL 3.6.1, SVN revision 5457 and up).
2018-08-06 13:57 (UTC) 3.6.1

  ### DisplayCAL 3.6.1

  #### Added in this release:

  - [Feature] Adjustable hue preservation (values less than 100% will gradually hue shift very bright and saturated red-orange/orange/yellow-green hues to a more yellowish tone, preserving more saturation and detail) for HDR SMPTE 2084 3D LUTs with roll-off tonemapping (default 50%).
  - [Feature] Ability to set a calibration target luminance by measuring the ambient light level.
  - [Feature] Verification tab: Hold the “alt” key on your keyboard to create a profile or device link (3D LUT) self check report instead of a measurement report.
  - [Enhancement] DCI P3 D65 profile for use as 3D LUT source colorspace or measurement report simulation profile.

  #### Changed in this release:

  - [Enhancement] Increased the default number of patches for the madVR HDR preset back to 425.
  - [Enhancement] HDR 3D LUT SMPTE 2084 tonemapping: Restored near black tone reproduction for displays with non-zero black level and output offset less than 100% to pre-v3.6 values.
  - [Enhancement] Improved HDR 3D LUT SMPTE 2084 tonemapping speed.
  - [Enhancement] Improved HDR 3D LUT accuracy for colorimetric rendering intents.
  - [Enhancement] Increased default display update delay for Resolve preset to 1000 ms.
  - [Enhancement] Quantize Autodesk/Kodak (.3dl) 3D LUT values by always rounding up (match the format specification in the Lustre user guide).
  - [Enhancement] Limit the number of concurrent worker processes depending on system memory to avoid swapping.
  - [Enhancement] Always normalize CGATS data to Y = 100 when processing files not created by DisplayCAL.
  - [Enhancement] Get the black level for computation of 3D LUT or verification target tone curves from the embedded characterization data if a lookup through the display profile returns zero (makes e.g. Rec. 1886 work properly in that case).
  - [Enhancement] Synthetic ICC profile creator: Increase number of decimal digits for black level to 6 and do not clamp to 16-bit integer values to offer more fine grained control.
  - [Enhancement] Linux: Use configured XDG “well known” user directories (currently only used to determine the localized name of the “Downloads” directory).
  - [UI] Moved HDR 3D LUT SMPTE 2084 tonemapping luminance/saturation/hue preservation controls to advanced options (hidden by default).

  #### Fixed in this release:

  - [Moderate] madVR 3D LUT generation via the main application: When using a non-standard source colorspace whitepoint (by setting a calibration whitepoint target different from the source colorspace's original whitepoint, e.g. not using DCI white for DCI P3), non-standard values for input primaries and whitepoint were written to the 3D LUT header, madVR 3D LUT slot auto-detection for installation did not work if the source colorspace was not Rec. 709, and color conversion was affected if the 3D LUT was not installed via the madVR API (i.e. by not clicking the “Install 3D LUT” button, but choosing the 3D LUT manually in madVR's settings).
  - [Minor] Downloads within DisplayCAL failed if the download directory didn't exist (regression of changes made in DisplayCAL 3.5, SVN revision 5081).
  - [Minor] HDR 3D LUT SMPTE 2084 tonemapping for non-Rec. 2020 source colorspaces did not work correctly (Rec. 2020 was assumed despite different choice).
  - [Minor] Standalone 3D LUT maker: Don't unexpectedly switch to the source profile's gamma for simple gamma + matrix source profiles (e.g. DCI P3) when creating a 3D LUT.
  - [Minor] Profile loader (Windows): Catch errors in case of a corrupted Windows registry.
2018-06-21 22:06 (UTC) 3.6

  ### DisplayCAL 3.6

  #### Added in this release:

  - [Feature] Adjustable weighting between luminance and saturation preservation for HDR SMPTE 2084 3D LUTs with roll-off tonemapping.
  - [Feature] Option to adjust the roll-off for HDR SMPTE 2084 3D LUTs with roll-off tonemapping when the mastering display peak luminance is below 10000 cd/m² (previous behavior with the introduction of BT.2390-2 was to always adjust, the new default behavior is don't adjust).

  #### Changed in this release:

  - [Enhancement] Improved HDR 3D LUT SMPTE 2084 roll-off tonemapping to eliminate possible over-darkening in rolled-off highlights due to luminance reduction related effects.
  - [Enhancement] Removed HDR 3D LUT SMPTE 2084 roll-off tonemapping allowance for hue shifts in rolled-off highlights.
  - [Enhancement] Increased HDR 3D LUT SMPTE 2084 default target peak luminance to 480 cd/m² (makes BT.2390 roll-off leave 0-100 cd/m² alone).
  - [Enhancement] Use extended model for HDR 3D LUT Hybrid-Log Gamma (HLG) display gamma adjustment described in BT.2390-4.
  - [Enhancement] Do not create PCS-to-device tables for synthetic HDR SMPTE 2084 profiles with roll-off tonemapping as they are meant purely as source profiles.
  - [Enhancement] Only enable the visual whitepoint editor button if the whitepoint target is set to chromaticity coordinates.
  - [UI] Keep dropdowns with only one choice enabled.
  - [Cosmetic] Catch any madTPG connection errors to show a nicer error dialog without a traceback.
  - [Trivial] Do not update the profile description when increasing the effective resolution of an existing profile's PCS-to-device tables.
  - [Trivial] Testchart editor: Only limit the view to six decimal digits, not the underlying data.

  #### Fixed in this release:

  - [Minor] Confirm instrument placement when madTPG is not fullscreen.
  - [Minor] Creating synthetic grayscale profiles with HLG tone response did not work correctly.
  - [Trivial] Set allowed filetypes for selecting files when importing 3rd party software colorimeter corrections to “any”.
  - [Trivial] Mac OS X: Updated bundled Python to 2.7.15 which includes a recent version of OpenSSL (fixes SSL connection errors due to more recent server-side encryption when using the standalone application bundles).
  - [Trivial] Mac OS X: Restored correct BundleId for application bundles.
  - [UI] Linux (GTK3 under Wayland): Explicit refresh/update needed for ClientDC (fixes graphs not updating until the window is resized).
2018-04-25 13:30 (UTC) 3.5.3

  ### DisplayCAL 3.5.3

  #### Added in this release:

  - [Feature] Rudimentary ICCv4 profile autoconversion support (only matrix profile types).
  - [Enhancement] Lookup table based test profiles for evaluating display color management.
  - [Enhancement] Profile information: Ability to plot CMYK profile tone response curves.
  - [Feature] Profile loader (Windows): Tray icon animation toggle.

  #### Changed in this release:

  - [Enhancement] HDR SMPTE 2084 roll-off 3D LUT: Improved tone mapping.
  - [Enhancement] Slightly improved accuracy of XYZ LUT profile CIECAM02 gamut mapping.
  - Linux: Temporarily restored compatibility with wxPython 2.8.11/12 to support older distribution LTS releases that have not yet reached end-of-life. Note that this compatibility will not be maintained indefinitely, and will likely end by no later than April 2019. If you cannot update to a newer wxPython version on your current Linux distribution, consider upgrading your distribution to the latest release if possible.

  #### Fixed in this release:

  - [Minor] Restored ability to create profiles from non RGB device measurement files.
  - [Minor] Profile information: Deal with potential NULL values in meta tags of 3rd party ICC profiles.
  - [Trivial] Profile information: Correctly parse non-default device media type attributes.
  - [Trivial] Profile information: Keep original tag order of 3rd party profiles when checking ID.
  - [Minor] Profile loader (Windows): Popup menu items stopped responding when used for a long time.
2018-03-31 21:11 (UTC) 3.5.2

  ### DisplayCAL 3.5.2

  #### 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 i1 Studio 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.
2018-03-16 16:04 (UTC) 3.5.1

  ### DisplayCAL 3.5.1

  #### 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.
2018-02-18 14:47 (UTC) 3.5

  ### DisplayCAL 3.5

  #### 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.
2017-12-30 14:16 (UTC) 3.4

  ### DisplayCAL 3.4

  #### 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.
2017-10-18 17:34 (UTC) 3.3.5

  ### DisplayCAL 3.3.5

  #### 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.
2017-09-13 12:09 (UTC) 3.3.4.1

  ### DisplayCAL 3.3.4.1

  #### 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 a change in DisplayCAL 3.3.4, 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.
2017-09-09 15:53 (UTC) 3.3.4

  ### DisplayCAL 3.3.4

  #### 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).
2017-08-08 18:40 (UTC) 3.3.3

  ### DisplayCAL 3.3.3

  #### 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.
2017-06-29 15:10 (UTC) 3.3.2

  ### DisplayCAL 3.3.2

  #### 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.
2017-06-04 16:04 (UTC) 3.3.1

  ### DisplayCAL 3.3.1

  #### Fixed in this release:

  - Unhandled exception if using CIECAM02 gamut mapping when creating XYZ LUT profiles from regularly spaced grid patch sets with the alternate forward profiling method introduced in DisplayCAL 3.3.
2017-05-30 17:48 (UTC) 3.3

  ### DisplayCAL 3.3

  #### Added in this release:

  - Profiling engine enhancements:
    - [Feature] Better multi CPU/multi core support. Generating high resolution PCS-to-device tables is now taking more advantage of multiple (physical or logical) processors (typical 2x speedup on a i7 6700K CPU).
    - [Enhancement] Generating a simple high resolution perceptual table is now done by copying the colorimetric table and only generating new input curves. This markedly reduces the processing time needed to create the perceptual table (6x speedup on a i7 6700K CPU).
    - [Enhancement] Black point compensation now tries to maintain the whitepoint hue until closer to the black point. This makes curves + matrix profiles in the default configuration (slightly) more accurate as well as the default simple perceptual table of cLUT profiles provide a result that is closer to the colorimetric table.
    - [Enhancement] The curves tags of XYZ LUT + matrix profiles will now more closely match the device-to-PCS table response (improves grayscale accuracy of the curves tags and profile generation speed slightly).
    - [Enhancement] The curves tags of matrix profiles are further optimized for improved grayscale accuracy (possibly slightly reduced overall accuracy if a display device is not very linear).
    - [Enhancement] XYZ LUT profiles created from small patch sets (79 and 175 patches) with regularly spaced grids (3x3x3+49 and 5x5x5+49) now have improved accuracy due to an alternate forward profiling method that works better for very sparsely sampled data. Most presets now use 5x5x5+49 grid-based patch sets by default that provide a reduction in measurement time at about the same or in some cases even slightly better accuracy than the previously used small patch sets.
    - [Enhancement] Additional PCS candidate based on the actual measured primaries of the display device for generating high resolution PCS-to-device tables. This may further reduce PCS-to-device table generation time in some cases and lead to better utilization of the available cLUT grid points.
  - [Feature] Calibration whitepoint targets other than “As measured” will now also be used as 3D LUT whitepoint target, allowing the use of the visual whitepoint editor to set a custom whitepoint target for 3D LUTs.
  - [Feature] Automatically offer to change the 3D LUT rendering intent to relative colorimetric when setting the calibration whitepoint to “As measured”.
  - [Feature] Support for madVR's ability to send HDR metadata to the display via nVidia or Windows 10 APIs (i.e. switch a HDR capable display to HDR mode) when creating SMPTE 2084 3D LUTs. Note that you need to have profiled the display in HDR mode as well (currently only possible by manually enabling a display's HDR mode).
  - [Feature] Output levels selection as advanced option and automatic output levels detection. Note that this cannot detect if you're driving a display that expects full range (0..255) in limited range (16..235), but it can detect if you're driving a display that expects limited range in full range and will adjust the output levels accordingly.
  - [Feature] New experimental profiling patch sequence advanced options. “Minimize display response delay” is the ArgyllCMS default (same as in previous versions of DisplayCAL). “Maximize lightness difference”, “Maximize luma difference”, “Maximize RGB difference” and “Vary RGB difference” are alternate choices which are aimed at potentially dealing better with displays employing ASBL (automatic static brightness limiting) leading to distorted measurements, and should be used together with display white level drift compensation.
  - [Feature] Optional alternate method for creating colorimeter correction matrices that minimizes xy chromaticity difference (four color matrix method).
  - [Feature] The curve viewer and profile information now have the ability to plot tone response curves of RGB device link profiles.
  - [Feature] The white and black level calibration target can now be set by measurement.
  - [Enhancement] The visual whitepoint editor is now compatible with Chromecast, Web @ localhost, madVR, Prisma and Resolve pattern generators.
  - [Enhancement] 3D LUT generator ReShade 3.0 compatibility.
  - [Feature] Support calibration from WCS profiles embedded in ICC profiles (like the ones created by the Windows Display Color Calibration Tool).
  - [Feature] Profile loader (Windows): Detect the Windows Display Color Calibration Tool.
  - [Feature] Profile loader (Windows): The quantization bitdepth can now be selected.

  #### Changed in this release:

  - [Enhancement] The visual whitepoint editor now uses the calibration of the currently active display profile as the initial whitepoint.
  - [Enhancement] Temporary files will no longer be removed if moving the files to the final location failed, and a non-empty temporary directory will no longer be removed on exit.
  - [Enhancement] Incomplete runs are now always saved to a folder named 'incomplete' in the parent directory of the 'storage' directory (previously when creating a profile from existing measurement data, a failed run could overwrite existing files in a source folder that did not reside in the 'storage' directory).
  - [Enhancement] Use a different (numbered) logfile name when starting additional instances of the standalone tools.
  - [Enhancement] When creating colorimeter correction matrices from existing spectral reference data, use the selected observer.
  - [UI] Hide the observer selector in the colorimeter correction creation dialog when creating a spectral colorimeter correction as observer isn't applicable in that case.
  - [UI] Remove the single “Browse...” button from the colorimeter correction creation dialog and add individual file pickers for reference and colorimeter measurement data files.
  - [UI] When creating colorimeter corrections for “virtual” display devices like madVR or Resolve, offer to specify the actual display model and manufacturer.
  - [UI] Use smaller increments when paging up/down the black point rate or testchart patches amount sliders.
  - [Cosmetic] Default whitepoint color temperature and chromaticity to 6500K and D65 respectively.
  - [Cosmetic] If you explicitly pause measurements prior to attempting to cancel them, and then dismiss the confirmation dialog, the measurements will no longer automatically resume (unpause) anymore.
  - [Enhancement] Linux: When installing instrument udev rules, backup existing rules to a timestamped backup directory ~/.local/share/DisplayCAL/backup/YYYYMMDDTHHMMSS instead of overwriting existing backups in ~/.local/share/DisplayCAL/backup, and automatically add the current user to the 'colord' group (which will be created if nonexistent) if not yet a member.
  - [Cosmetic] Mac OS X: Don't include ID in profile header (stops ColorSync utility from complaining).
  - [Enhancement] Profile loader (Windows): The selected calibration state will not be implicitly (re-)applied every three seconds, but only if a change in the running processes or video card gamma tables is detected. This has been reported to stop hitching on some systems using Intel integrated graphics, and works around an issue with the Windows 10 Creators Update and fullscreen applications (e.g. games) where the calibration state would not be restored automatically when returning to the desktop.
  - [Enhancement] Profile loader (Windows): The profile loader will check whether or not madVR resets the videoLUT and preserve calibration state if not.
  - [UI] [Cosmetic] Profile loader (Windows): Renamed “Preserve calibration state” menu item to “Load calibration on login & preserve calibration state” to reduce ambiguity.
  - [UI] [Cosmetic] Profile loader (Windows): The tray icon will animate when calibration is reloaded.
  - [UI] [Cosmetic] Windows 7 and newer: Show progress in the taskbar.

  #### Fixed in this release:

  - [Minor] Prevent ArgyllCMS from removing measurements with one or two zero CIE components by fudging them to be non-zero.
  - [Minor] In some cases the high resolution colorimetric PCS-to-device table of XYZ LUT profiles would clip slightly more near black than expected.
  - [Trivial] Save and restore SMPTE 2084 content colorspace 3D LUT settings with profile.
  - [UI] [Minor] Changing the application language for the second time in the same session when a progress dialog had been shown at any point before changing the language for the first time, resulted in an unhandled exception. This error had the follow-up effect of preventing any standalone tools to be notified of the second language change.
  - [UI] [Trivial] The “Install Argyll instrument drivers” menu item in the “Tools” menu is now always enabled (previously, you would need to select the location of the ArgyllCMS executables first, which was counter-intuitive as the driver installer is separate since DisplayCAL 3.1.7).
  - [UI] [Cosmetic] When showing the main window (e.g. after measurements), the progress dialog (if present) could become overlapped by the main window instead of staying in front of it. Clicking on the progress dialog would not bring it back into the foreground.
  - [UI] [Minor] 3D LUT tab: When selecting a source colorspace with a custom gamma tone response curve, the gamma controls should be shown regardless of whether advanced options are enabled or not.
  - [Trivial] Testchart editor: Pasting values did not enable the “Save” button.
  - [UI] [Minor] Untethered measurement window: The “Measure” button visual state is now correctly updated when cancelling a confirmation to abort automatic measurements.
  - [Minor] Windows: Suppress errors related to WMI (note that this will prevent getting the display name from EDID and individual ArgyllCMS instrument driver installation).
  - [UI] [Cosmetic] Profile loader (Windows): Changing the scaling in Windows display settings would prevent further profile loader tray icon updates (this did not affect functionality).
  - [Minor] Profile loader (Windows): Undefined variable if launched without an active display (i.e. if launched under a user account that is currently not the active session).
  - [Minor] Profile loader (Windows): Original profile loader instance did not close after elevation if the current user is not an administrator.
2017-02-18 15:52 (UTC) 3.2.4

  ### 3.2.4

  #### Added in this release:

  - Korean translation thanks to 김환(Howard Kim).

  #### Changed in this release:

  - Disable observer selection if observer is set by a colorimeter correction.
  - 3D LUT maker: Enable black output offset choice for 16-bit table-based source profiles.
  - Profile loader (Windows): “Automatically fix profile associations” is now enabled by default.
  - Build system: Filter out “build”, “dist” as well as entries starting with a dot (“.”) to speed up traversing the source directory tree (distutils/setuptools hack).

  #### Fixed in this release:

  - Could not create colorimeter correction from existing measurements for instruments that don't support alternative standard observers.
  - ColorHug / ColorHug2 “Auto” measurement mode threw an error if the extended display identification data did not contain a model name.
  - [Trivial] [Cosmetic] Testchart editor: When adding reference patches, resize row labels if needed.
  - Profile loader (Linux): When errors occured during calibration loading, there was no longer any message popup.
  - Profile loader (Windows): Filter non-existing profiles (e.g. ones that have been deleted via Windows Explorer without first disassociating them from the display device) from the list of associated profiles (same behavior as Windows color management settings).
  - Profile loader (Windows): When changing the language on-the-fly via DisplayCAL, update primary display device identfier string.
2017-01-04 14:10 (UTC) 3.2.3

  ### 3.2.3

  #### Changed in this release:

  - Updated traditional chinese translation (thanks to 楊添明).
  - Profile loader (Windows): When creating the profile loader launcher task, set it to stop existing instance of the task when launching to circumvent a possible Windows bug where a task would not start even if no previous instance was running.

  #### Fixed in this release:

  - When querying the online colorimeter corrections database for matching corrections, only query for corrections with a matching manufacturer ID in addition to a matching display model name (fixes corrections being offered for displays from different manufacturers, but matching model names).
  - Profile loader (Windows): Fix unhandled exception if no profile is assigned to a display (regression of a change to show the profile description instead of just the file name in DisplayCAL 3.2.1).
2016-12-13 22:27 (UTC) 3.2.2

  ### 3.2.2

  #### Changed in this release:

  - Importing colorimeter corrections from other display profiling software now only imports from the explicitly selected entries in automatic mode.
  - Profile loader launcher (Windows): Pass through `--oneshot` argument to profile loader.

  #### Fixed in this release:

  - Visual whitepoint editor: Opening a second editor on the same display without first dragging the previously opened editor to another display would overwrite the cached profile association for the current display with the visual whitepoint editor temporary profile, thus preventing the correct profile association being restored when the editor was closed.
  - Mac OS X: Fall back to HTTP when downloading X3D viewer components to work around broken Python TLS support.
  - Windows: When installing instrument drivers, catch WMI errors while trying to query device hardware IDs for instruments.
  - Profile loader (Windows): Possibility of unhandled exception when resuming from sleep if the graphics chipset is an Intel integrated HD graphics with more than one attached display device (may affect other graphics chipsets as well).
2016-11-25 13:35 (UTC) 3.2.1

  ### 3.2.1

  #### Changed in this release:

  - Profile loader (Windows Vista and later): The profile loader process now auto-starts with the highest available privileges if installed as administrator. This allows changing system default profile associations whenever logged in with administrative privileges.
  - Profile loader (Windows Vista and later): If running under a restricted user account and using system defaults, clicking any of the “Add...”, “Remove” and “Set as default” buttons will allow to restart the profile loader with elevated privileges.
  - Profile loader (Windows): Show profile description in addition to profile file name in profile associations dialog.

  #### Fixed in this release:

  - Linux, Windows: Visual whitepoint editor was not working in HiDPI mode.
  - Windows: Irritating “File not found” error after installing a profile with special characters in the profile name (note that the profile was installed regardless).
  - [Cosmetic] Standalone executables (Windows): In HiDPI mode, taskbar and task switcher icons could be showing placeholders due to missing icon files.
  - [Minor] Profile loader (Windows): Enable the profile associations dialog “Add...” button irrespective of the current list of profiles being empty.
  - [Minor] Profile loader (Windows): Suppress error message when trying to remove a profile from the active display device if the profile is the system default for said device (and thus cannot be removed unless running as administrator) but not for the current one.
  - Profile loader (Windows): Do not fail to close profile information windows if the profile associations dialog has already been closed.
  - Profile loader (Windows): If logging into another user account with different DPI settings while keeping the original session running, then logging out of the other account and returning to the original session, the profile loader could deadlock.
2016-11-19 11:01 (UTC) 3.2

  ### 3.2

  #### Added in this release:

  - Visual whitepoint editor. This allows visually adjusting the whitepoint on display devices that lack hardware controls as well as match several displays to one another (or a reference). To use it, set the whitepoint to “Chromaticity” on the “Calibration” tab and click the visual whitepoint editor button (you can open as many visual whitepoint editors simultaneously as you like, so that e.g. one can be left unchanged as reference, while the other can be adjusted to match said reference). The editor window can be put into a distraction-free fullscreen mode by maximizing it (press ESC to leave fullscreen again). Adjust the whitepoint using the controls on the editor tool pane until you have achieved a visual match. Then, place your instrument on the measurement area and click “Measure”. The measured whitepoint will be set as calibration target.
  - Another “Auto” testchart slider step with 154 patches (equal to small testchart for LUT profiles) for XYZ LUT + matrix profile type.

  #### Changed in this release:

  - Menu overhaul. Menus are now better organized using categorized sub-menus and some menu items have been moved to more appropriate locations:
    - The “Options” menu no longer contains any functionality besides actual options. Advanced options have been moved to a sub-menu.
    - Profile creation from existing measurement files or EDID, profile installation as well as profile upload (sharing) functionality can now be found in the “File” menu.
    - Most functionality available in the “Tools” menu has been grouped into categorized sub-menus, with some of the less-used functionality now available under a separate “Advanced” sub-menu.
    - Measuring the selected testchart, enhancing the effective resolution of a colorimetric PCS-to-device table, loading calibration and resetting the video card gamma tables, detecting displays & instruments, as well as user-initiated spectrometer self-calibration functionality has been moved to the “Tools” menu and respective sub-menus where applicable.
  - Changed default curves + matrix profile testchart as well as first “Auto” testchart slider step back to pre-3.1.7 chart with 73 patches.
  - Better curves + matrix profiles as well as faster computation of XYZ LUT + matrix profiles. The matrix and shaper curves of gamma + matrix, curves + matrix as well as XYZ LUT + matrix profiles are now generated in separate steps which improves the shape and grayscale neutrality of the curves on less well-behaved displays. XYZ LUT + matrix profiles will compute faster, because the curves and matrix are created from a sub-set of the profiling patches, and take around the same time as XYZ LUT + swapped matrix profiles, resulting in a typical overall computation speed increase of around +33% (+100% if just looking at the time needed when not creating PCS-to-device tables) for a XYZ LUT + matrix profile computed from 1148 patches. XYZ LUT + matrix profiles computed from more patches should see a larger computation speed increase of up to +100% depending on patch count.
  - Resolve pattern generator and non-native madVR network implementation: Determine the computer's local network IP address in a way that is hopefully more reliable across platforms.
  - Profile loader (Windows): Detect and work-around buggy Intel video drivers which, despite reverting to linear gamma tables at certain points (e.g. UAC prompts), will effectively ignore attempts to restore the gamma table calibration if it is considered to be already loaded by the driver.
  - Profile loader (Windows): Replaced “Open Windows color management settings...” pop-up menu item with own “Profile associations...” implementation. This should work better with multi-display configurations in contrast to Windows' braindead built-in counterpart, i.e. display devices will be listed under their EDID name (if available) as well as their viewport position and size on the virtual desktop and not only their often meaningless generic driver name like “PnP-Monitor”. Also, there won't be multiple entries for the same display device or ambiguous “1|2” identifications if there are display devices that are currently not part of the desktop due to being disabled in Windows display settings. Changing profile associations around is of course still using Windows color management functionality, but the custom UI will look and act more sane than what Windows color management settings has to offer.
  - Profile loader (Windows): Clicking the task bar tray icon will now always show up-to-date (at the time of clicking) information in the notification popup even if the profile loader is disabled.
  - Profile loader (Windows): Starting a new instance of the profile loader will now always attempt to close an already running instance instead of just notifying it, allowing for easy re-starting.
  - Windows (Vista and later): Installing a profile as system default will now automatically turn off “Use my settings for this device” for the current user, so that if the system default profile is changed by another user, the change is propagated to all users that have opted to use the system default profile (which is the whole point of installing a profile as system default).

  #### Fixed in this release:

  - Spectrometer self-calibration using an i1 Pro or i1 Pro 2 with Argyll >= 1.9 always presented the emissive dark calibration dialog irrespective of measurement mode (but still correctly did a reflective calibration if the measurement mode was one of the high resolution spectrum modes).
  - User-initiated spectrometer self-calibration was not performed if “Allow skipping of spectrometer self-calibration” was enabled in the “Options” menu and the most recent self-calibration was still fresh.
  - Cosmetic: If an update check, colorimeter correction query or profile sharing upload returned a HTTP status code equal to or greater than 400 (server-side error), an unhandled exception was raised instead of presenting a nicer, formatted error dialog (regression of DisplayCAL 3.1.7 instrument driver installer download related changes).
  - Profile loader (Windows, cosmetic): Reflect changed display resolution and position in UI (doesn't influence functionality).
  - Resolve pattern generator: Unhandled exception if the system hostname could not be resolved to an IP address.
2016-10-24 10:13 (UTC) 3.1.7.3

  ### 3.1.7.3

  #### Fixed in this release:

  - 0install (Linux): `(un)install-standalone-tools-icons` command was broken with 3.1 release.
  - Profile loader (Linux): Unhandled exception if oyranos-monitor is present (regression of late initialization change made in 3.1.7).
2016-10-21 12:26 (UTC) 3.1.7.2

  ### 3.1.7.2

  #### Changed in this release:

  - Windows: Toggling the “Load calibration on login” checkbox in the profile installation dialog now also toggles preserving calibration state in the profile loader and vice versa, thus actually affecting if calibration is loaded on login or not (this restores functionality that was lost with the initial DisplayCAL 3.1 release).
  - Windows: The application, setup and Argyll USB driver installer executables are now digitally signed (starting from October 18, 2016 with SHA-1 digest for 3.1.7.1 and dual SHA-1 and SHA-256 digests for 3.1.7.2 from October 21, 2016).

  #### Fixed in this release:

  - Profile loader (Windows): User-defined exceptions could be lost if exiting the profile loader followed by (re-)loading settings or restoring defaults in DisplayCAL.
2016-10-18 10:00 (UTC) 3.1.7.1

  ### 3.1.7.1

  #### Fixed in this release:

  - Profile loader (Windows): Setting calibration state to reset video card gamma tables overwrote cached gamma ramps for the 2nd display in a multi-display configuration.
2016-10-04 20:49 (UTC) 3.1.7

  ### 3.1.7

  #### Added in this release:

  - 3D LUT sizes 5x5x5 and 9x9x9.
  - JETI spectraval 1511/1501 support (requires ArgyllCMS >= 1.9).
  - Profile loader (Windows): User-definable exceptions.
  - Profile loader (Windows): Added `reset-vcgt` scripting command (equivalent to selecting “Reset video card gamma table” from the popup menu).

  #### Changed in this release:

  - “Auto” resolution of PCS-to-device tables is now limited to 45x45x45 to prevent excessive processing times with profiles from “funky” measurements (i.e. due to bad/inaccurate instrument).
  - Automatically optimized testcharts now use curves + matrix profiles for preconditioning to prevent a possible hang while creating the preconditioned testchart with LUT-type profiles from sufficiently “badly behaved” displays.
  - 2nd auto-optimized testchart slider step now defaults to XYZ LUT profile type as well, and the previous patch count was increased from 97 to 271 (necessary for baseline LUT profile accuracy).
  - Adjusted curves + matrix testcharts to only include fully saturated RGB and grayscale to prevent tinted neutrals and/or “rollercoaster” curves on not-so-well behaved displays (also reduces testchart patch count and measurement time, but may worsen the resulting profile's overall accuracy).
  - Removed near-black and near-white 1% grayscale increments from “video” verification charts.
  - Use a 20 second timeout for unresponsive downloads.
  - Windows: Much easier ArgyllCMS instrument driver installation (for instruments that require it). No need to disable driver signature enforcement under Windows 8/10 anymore. Select “Install ArgyllCMS instrument drivers...” from the “Tools” menu, click “Download & install”, wait briefly for the download to finish (400 KB), confirm the User Access Control popup, done. Note that the driver installer executable is currently not digitally signed (obtaining a suitable certificate from a trusted authority is in progress), but the driver itself is signed as usual. The installer is based on libwdi.
  - Profile loader (Windows): Changed `apply-profiles` scripting command to behave excatly like selecting “Load calibration from current display device profile(s)” from the popup menu, i.e. not only load calibration, but also change the setting.
  - Profile loader (Windows): Also count calibration state being (re)applied when the profile loader state or profile association(s) changes.

  #### Fixed in this release:

  - Update measurement modes after importing colorimeter corrections. Fixes additional measurement modes for the Spyder4/5 not appearing until the program is restarted or a different instrument is selected first.
  - Trivial: Instrument setup was unnecessarily being called twice after downloading ArgyllCMS when the latter wasn't previously detected.
  - Mac OS X: Work around a wxPython bug which prevents launching the application from a path containing non-ASCII characters.
  - Mac OS X: Work around a configuration problem affecting ArgyllCMS 1.9 and 1.9.1 (fixes Spyder2 firmware, additional Spyder4/5 measurement modes, and imported colorimeter corrections not being seen by DisplayCAL if imported via ArgyllCMS 1.9 or 1.9.1).
2016-08-24 21:33 (UTC) 3.1.6

  ### 3.1.6

  #### Added in this release:

  - HDR/SMPTE 2084: Advanced options to specify maximum content light level for roll-off (use with care!) as well as content colorspace (affects perceptual intent gamut mapping, less so colorimetric).

  #### Changed in this release:

  - Increased timeout to launch ArgyllCMS tools to 20 seconds.
  - Show failed items when otherwise successfully importing colorimeter corrections, and detect updated CCSS files.
  - HDR/SMPTE 2084: Improve overall saturation preservation.
  - Linux/colord: When checking for a valid colord device ID, also try with manufacturer omitted.
  - Windows Vista and later: Use “known folders” API to determine path to “Downloads” directory.

  #### Fixed in this release:

  - HDR/SMPTE 2084: Slightly too light near-black tones when black output offset was set to below 100%.
  - Synthetic ICC Profile Creator: Undefined variable when creating synthetic profile with custom gamma or BT.1886 and non-zero black level (regression of HDR-related changes made in 3.1.5).
  - When loading settings from a profile created with DisplayCAL prior to 3.1.5 and custom 3D LUT tone curve gamma in DisplayCAL 3.1.5, the gamma and output offset controls wouldn't be shown if advanced options weren't enabled until re-selecting the tone curve choice.
  - Cosmetic (Windows 10): Banner would go blank under some Windows 10 configurations when showing the profile or 3D LUT installation dialog.
  - Cosmetic (Linux): Missing backgrounds and wrongly sized combo boxes when wxGTK is built against GTK3.
  - Linux: Profile loader autostart entry was installed under wrong (mixed-case) name if installing for the current user, which lead to the loader unnecesarily being run twice if DisplayCAL was installed from a RPM or DEB package. The superfluous loader entry will be automatically removed the next time you install a profile, or you can remove it manually by running `rm ~/.config/autostart/z-DisplayCAL-apply-profiles.desktop` in a terminal.
  - Linux/colord: Don't cache device IDs that are not the result of a successful query.
  - Windows: Make elevated subprocess calls synchronous. Fixes importing colorimeter corrections system-wide not listing all succesfully imported items on the first use.
2016-08-02 22:28 (UTC) 3.1.5

  ### 3.1.5

  #### Added in this release:

  - HDR: Allow specifying of black output offset for SMPTE 2084.

  #### Changed in this release:

  - HDR: Implemented SMPTE 2084 rolloff according to ITU-R BT.2390.
  - HDR: Implemented SMPTE 2084 3D LUT tone mapping (preserve hue and saturation with rolloff).
  - HDR: Improved SMPTE 2084 3D LUT perceptual intent rendering (better preserve saturation). Note that colorimetric intent is recommended and will also do tone mapping.
  - Linux/colord: Increase timeout when querying for newly installed profiles to 20 seconnds.

  #### Fixed in this release:

  - Minor: HDR peak luminance textbox was sometimes not able to receive focus.
  - Minor (Mac OS X): Don't omit ICC files from compressed archives (regression of adding device link profiles as possible 3D LUT output format in DisplayCAL 3.1.3).
2016-07-10 23:35 (UTC) 3.1.4

  ### 3.1.4

  #### Added in this release:

  - A fourth Rec. 709 encompassing color space variant as a profile connection space candidate for XYZ LUT profiles. May lead to better utilization of PCS-to-device color lookup table grid points in some cases (and thus potentially smaller profiles when the effective resolution is set to the default of “Auto”).
  - An option to include legacy serial ports (if any) in detected instruments.
  - SMPTE 2084 (HDR) as 3D LUT tone curve choice.

  #### Changed in this release:

  - Don't preserve shaper curves in ICC device link profiles if selected as 3D LUT output format (effectively matching other 3D LUT formats).
  - Removed “Prepress” preset due to large overlap with “Softproof”.
  - Changed “Softproof” preset to use 5800K whitepoint target (in line with Fogra softproof handbook typical photography workflow suggested starting point value) and automatic black point hue correction.
  - Synthetic ICC profile creator: Changed SMPTE 2084 to always clip (optionally with roll-off) if peak white is below 10000 cd/m².
  - Synthetic ICC profile creator: Changed transition to specified black point of generated profiles to be consistent with BT.1886 black point blending (less gradual transition, blend over to specified black point considerably closer to black).
  - Profile loader (Windows): If no profile assigned, load implicit linear calibration.

  #### Fixed in this release:

  - When loading settings from an existing profile, some CIECAM02 advanced profiling options were not recognized correctly.
  - Don't accidentally remove the current display profile if ArgyllCMS is older than version 1.1 or the ArgyllCMS version is not included in the first line of output due to interference with QuickKeys under Mac OS X.
  - Make sure the ArgyllCMS version is detected even if it isn't contained in the first line of output (fixes ArgyllCMS version not being detected if QuickKeys Input Manager is installed under Mac OS X).
  - When loading settings, add 3D LUT input profile to selector if not yet present.
  - Curve viewer/profile information: Fix potential division by zero error when graphing unusual curves (e.g. non-monotonic or with very harsh bends).
  - Profile information: Reset right pane row background color on each profile load (fixes “named color” profile color swatches sticking even after loading a different profile).
2016-04-11 10:50 (UTC) 3.1.3.1

  ### 3.1.3.1

  #### Changed in this release:

  - Updated traditional chinese localization (work-in-progress, thanks to 楊添明).
  - Windows: If madTPG is set to fullscreen and there's more than one display connected, don't temporarily override fullscreen if interactive display adjustment is enabled.

  #### Fixed in this release:

  - Windows: If interactive display adjustment is disabled and madTPG is set to fullscreen, show instrument placement countdown messages in madTPG OSD.
  - Windows: Restore madTPG fullscreen button state on disconnect if it was temporarily overridden.
  - Profile loader (Windows): Error message when right-clicking the profile loader task tray icon while DisplayCAL is running.
2016-04-09 12:16 (UTC) 3.1.3

  ### 3.1.3

  If you update from DisplayCAL 3.1/3.1.1/3.1.2 standalone under Windows using the installer, please close the profile loader manually (if it is running) before running setup - due to an unfortunate bug, the installer may not be able to close and restart the profile loader automatically, which may then require using the task manager to end the profile loader process. Apologies for the inconvenience.

  #### Added in this release:

  - Device link profile as possible 3D LUT output format.
  - French ReadMe (thanks to Jean-Luc Coulon).
  - Partial traditional chinese localization (work-in-progress, thanks to 楊添明).
  - When you change the language in DisplayCAL, the Windows Profile Loader will follow on-the-fly if running.
  - Synthetic ICC profile creator: Capability to specify profile class, technology and colorimetric image state.
  - Windows: When the display configuration is changed while DisplayCAL is running, automatically re-enumerate displays, and load calibration if using the profile loader.
  - Profile loader (Windows): Starting the loader with the `--oneshot` argument will make it exit after launching.

  #### Changed in this release:

  - Updated ReShade 3D LUT installation instructions in the ReadMe.
  - Improved “Enhance effective resolution of PCS to device tables” smoothing accuracy slightly.
  - Profile loader (Windows):
    - Detect CPKeeper (Color Profile Keeper) and HCFR.
    - Show any calibration loading errors on startup or display/profile change in a notification popup, and also reflect this with a different icon.

  #### Fixed in this release:

  - Added semicolon (“;”) to disallowed profile name characters.
  - ICC profile objects were leaking memory.
  - Windows: Made sure that the virtual console size is not larger than the maximum allowed size (fixes possible inability to launch ArgyllCMS tools on some systems if the Windows scaling factor was equal to or above 175%).
  - Windows (Vista and newer): Use system-wide profiles if per-user profiles are disabled.
  - Profile loader (Windows):
    - If Windows calibration management is enabled (not recommended!), correctly reflect the disabled state of the profile loader in the task tray icon and don't load calibration when launching the profile loader (but keep track of profile assignment changes).
    - Prevent a race condition when “Fix profile associations automatically” is enabled and changing the display configuration, which could lead to wrong profile associations not being fixed.
    - Sometimes the loader did not exit cleanly if using `taskkill` or similar external methods.
    - Prevent a race condition where the loader could try to access a no longer available display device right after a display configuration change, which resulted in no longer being able to influence the calibration state (requiring a loader restart to fix).
    - Profile loader not reacting to display changes under Windows XP.
2016-03-03 22:33 (UTC) 3.1.2

  ### 3.1.2

  #### Fixed in this release:

  - Profile loader (Windows): Pop-up wouldn't work if task bar was set to auto-hide.
2016-02-29 17:42 (UTC) 3.1.1

  ### 3.1.1

  #### Added in this release:

  - Profile loader (Windows): Right-click menu items to open Windows color management and display settings.

  #### Changed in this release:

  - Profile loader (Windows):
    - Detect f.lux and dispcal/dispread when running outside DisplayCAL.
    - Don't notify on launch or when detecting DisplayCAL or madVR.
    - Detect madVR through window enumeration instead of via madHcNet (so madVR can be updated without having to close and restart the profile loader).
    - Enforce calibration state periodically regardless of video card gamma table state.
    - Don't use Windows native notifications to overcome their limitations (maximum number of lines, text wrapping).
    - Show profile associations and video card gamma table state in notification popup.

  #### Fixed in this release:

  - Error after measurements when doing verification with “Untethered” selected as display device and using a simulation profile (not as target).
  - Windows: Sporadic application errors on logout/reboot/shutdown on some systems when DisplayCAL or one of the other applications was still running.
  - Standalone installer (Windows): Remove dispcalGUI program group entries on upgrade.
  - Profile loader (Windows):
    - Error when trying to enable “Fix profile associations automatically” when one or more display devices don't have a profile assigned.
    - Sporadic errors related to taskbar icon redraw on some systems when showing a notification after changing the display configuration (possibly a wxPython/wxWidgets bug).
  - Mac OS X: Application hang when trying to quit while the testchart editor had unsaved changes.
2016-02-01 00:32 (UTC) 3.1

  ### 3.1

  #### dispcalGUI has been renamed to DisplayCAL.

  If you upgrade using 0install under Linux: It is recommended that you download the respective DisplayCAL-0install package for your distribution and install it so that the applications accessible via the menu of your desktop environment are updated properly.

  If you upgrade using 0install under Mac OS X: It is recommended that you delete existing dispcalGUI application icons, then download the DisplayCAL-0install.dmg disk image to get updated applications.

  #### Added in this release:

  - Better HiDPI support. All text should now be crisp on HiDPI displays (with the exception of axis labels on curve and gamut graphs under Mac OS X). Icons will be scaled according to the scaling factor or DPI set in the display settings under Windows, or the respective (font) scaling or DPI system setting under Linux. Icons will be scaled down or up from their 2x version if a matching size is not available. Note that support for crisp icons in HiDPI mode is currently not available in the GTK3 and Mac OS X port of wxPython/wxWidgets. Also note that if you run a multi-monitor configuration, the application is system-DPI aware but not per-monitor-DPI aware, which is a limitation of wxPython/wxWidgets (under Windows, you will need to log out and back in after changing DPI settings for changes to take effect in DisplayCAL).
  - When having created a compressed archive of a profile and related files, it can now also be imported back in via drag'n'drop or the “Load settings...” menu entry and respective button.
  - ArgyllCMS can be automatically downloaded and updated.
  - A compressed logs archive can be created from the log window.
  - Windows: New profile loader. It will stay in the taskbar tray and automatically reload calibration if the display configuration changes or if the calibration is lost (although fullscreen Direct3D applications can still override the calibration). It can also automatically fix profile associations when switching from a multi-monitor configuration to a single display and vice versa (only under Vista and later). In addition, the profile loader is madVR-aware and will disable calibration loading if it detects e.g. madTPG or madVR being used by a video player.

  #### Changed in this release:

  - Changed default calibration speed from “Medium” to “Fast”. Typically this cuts calibration time in half, while the accuracy difference is negligible at below 0.2 delta E.
  - Enabled “Enhance effective resolution of PCS to device tables” and smoothing for L*a*b* LUT profiles.

  #### Fixed in this release:

  - In some cases, importing colorimeter corrections from the vendor software CD could fail (falling back to downloading them from the web).
  - Moving the auto testchart patches slider to a value that changed the profile type did not update BPC accordingly (shaper+matrix defaults to BPC on).
  - Minor: Safari/IE messed up positioning of CCT graph vertical axis labels in measurement reports.
  - Minor: When clicking the “Install profile” button while not on the 3D LUT tab, and “Create 3D LUT after profiling” is enabled, don't create a 3D LUT.
  - Minor: When changing profile type, only change the selected testchart if needed, and default to “Auto” for all profile types.
  - Minor: 1st launch defaults were slightly different from what was intended (testchart should be “Auto”).
  - Minor: Use OS line separator when writing configuration files.
  - Linux: Text and icon sizes should be more consistent accross the application when the system text scaling or DPI has been adjusted (application restart required).
  - Linux: Fall back to use the XrandR display name for colord device IDs if EDID is not available.
  - Linux/Mac OS X: madVR test pattern generator interface was prone to connection failures due to a race condition. Also, verifying a madVR 3D LUT didn't work.

View changelog entries for older versions

DisplayCAL © 2008-2019 Florian Höch | Imprint | Privacy | Terms of Service