Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(312)

Issue 1182063002: Add support for more advanced color correction (Closed)

Created:
5 years, 6 months ago by robert.bradford
Modified:
4 years, 8 months ago
CC:
chromium-reviews, darin-cc_chromium.org, Greg Levin, jam, kalyank, oshima+watch_chromium.org, ozone-reviews_chromium.org, piman+watch_chromium.org, sadrul, stevenjb+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@qcms-fixed-point-gamma
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add support for more advanced color correction Rather than use just a gamma ramp (specified in a VCGT file) this change loads a correction matrix from the ICC file. As correction matrix needs to be applied in a linear colorspace it is also necesary to apply a "degamma" to adjust from rendered gamma (sRGB) to linear space. The display's gamma is then applied after the correction matrix. TEST=New unit tests in ash_unittests, interactive testing on Broadwell (like samus) device. BUG=495196 Committed: https://crrev.com/dda9fb755a50b7ea24346f9315e0d2f6a93a7864 Cr-Commit-Position: refs/heads/master@{#384525}

Patch Set 1 #

Patch Set 2 : Fill out patch with implementation #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : Rebase #

Patch Set 6 : Refactor for glevin@ and load VCGT always #

Total comments: 4

Patch Set 7 : Port to new kernel API, integrate review feedback. #

Total comments: 13

Patch Set 8 : Integrate dnicoara@ feedback #

Total comments: 16

Patch Set 9 : Improve memory management / casting #

Total comments: 10

Patch Set 10 : Address dcheng@ feedback #

Total comments: 4

Patch Set 11 : Rename typedefs & malloc appropriately #

Total comments: 6

Patch Set 12 : Address spang@ & dcheng@ feedback #

Total comments: 2

Patch Set 13 : Fix oshima@ nits #

Patch Set 14 : Rebase #

Patch Set 15 : Add .icc file used for CTM test #

Patch Set 16 : "reimplement" drmMode{Create,Destroy}PropertyBlob to fix build #

Total comments: 10

Patch Set 17 : Address spang@ feedback about imported code #

Patch Set 18 : Rebase after quirks changes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+683 lines, -135 lines) Patch
M ash/display/display_color_manager_chromeos.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +4 lines, -1 line 0 comments Download
M ash/display/display_color_manager_chromeos.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 5 chunks +111 lines, -21 lines 0 comments Download
M ash/display/display_color_manager_chromeos_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 5 chunks +112 lines, -35 lines 0 comments Download
A ash/display/test_data/4c834a42.icc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Binary file 0 comments Download
M ui/display/chromeos/display_configurator.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +7 lines, -4 lines 0 comments Download
M ui/display/chromeos/display_configurator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +6 lines, -3 lines 0 comments Download
M ui/display/chromeos/display_snapshot_virtual.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M ui/display/chromeos/test/action_logger_util.h View 1 2 3 4 5 6 1 chunk +7 lines, -3 lines 0 comments Download
M ui/display/chromeos/test/action_logger_util.cc View 1 2 3 4 5 6 1 chunk +24 lines, -8 lines 0 comments Download
M ui/display/chromeos/test/test_display_snapshot.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M ui/display/chromeos/test/test_display_snapshot.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +3 lines, -0 lines 0 comments Download
M ui/display/chromeos/test/test_native_display_delegate.h View 1 2 3 4 5 6 1 chunk +4 lines, -2 lines 0 comments Download
M ui/display/chromeos/test/test_native_display_delegate.cc View 1 2 3 4 5 6 1 chunk +6 lines, -3 lines 0 comments Download
M ui/display/chromeos/x11/display_snapshot_x11.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M ui/display/chromeos/x11/native_display_delegate_x11.h View 1 2 3 4 5 6 1 chunk +4 lines, -2 lines 0 comments Download
M ui/display/chromeos/x11/native_display_delegate_x11.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +4 lines, -2 lines 0 comments Download
M ui/display/types/display_snapshot.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +8 lines, -0 lines 0 comments Download
M ui/display/types/display_snapshot.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -0 lines 0 comments Download
M ui/display/types/native_display_delegate.h View 1 2 3 4 5 6 1 chunk +6 lines, -3 lines 0 comments Download
M ui/ozone/common/display_snapshot_proxy.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M ui/ozone/common/display_util.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M ui/ozone/common/gpu/ozone_gpu_message_params.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M ui/ozone/common/gpu/ozone_gpu_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +5 lines, -3 lines 0 comments Download
M ui/ozone/common/native_display_delegate_ozone.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +4 lines, -3 lines 0 comments Download
M ui/ozone/common/native_display_delegate_ozone.cc View 1 2 3 4 5 6 1 chunk +4 lines, -2 lines 0 comments Download
M ui/ozone/platform/drm/common/drm_util.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +15 lines, -0 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_device.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +5 lines, -0 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_device.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +227 lines, -0 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_display.h View 1 2 3 4 5 6 1 chunk +3 lines, -1 line 0 comments Download
M ui/ozone/platform/drm/gpu/drm_display.cc View 1 2 3 4 5 6 7 8 9 1 chunk +15 lines, -4 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h View 1 2 3 4 5 6 1 chunk +4 lines, -0 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_gpu_display_manager.cc View 1 2 3 4 5 6 1 chunk +5 lines, -3 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_thread.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +4 lines, -1 line 0 comments Download
M ui/ozone/platform/drm/gpu/drm_thread.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +7 lines, -3 lines 0 comments Download
M ui/ozone/platform/drm/gpu/drm_thread_message_proxy.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +4 lines, -1 line 0 comments Download
M ui/ozone/platform/drm/gpu/drm_thread_message_proxy.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +8 lines, -5 lines 0 comments Download
M ui/ozone/platform/drm/gpu/mock_drm_device.h View 1 2 3 4 5 6 1 chunk +4 lines, -0 lines 0 comments Download
M ui/ozone/platform/drm/gpu/mock_drm_device.cc View 1 2 3 4 5 6 1 chunk +8 lines, -0 lines 0 comments Download
M ui/ozone/platform/drm/host/drm_display_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -1 line 0 comments Download
M ui/ozone/platform/drm/host/drm_display_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +6 lines, -2 lines 0 comments Download
M ui/ozone/platform/drm/host/drm_gpu_platform_support_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +5 lines, -2 lines 0 comments Download
M ui/ozone/platform/drm/host/drm_gpu_platform_support_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +6 lines, -3 lines 0 comments Download
M ui/ozone/platform/drm/host/drm_native_display_delegate.h View 1 2 3 4 5 6 1 chunk +4 lines, -2 lines 0 comments Download
M ui/ozone/platform/drm/host/drm_native_display_delegate.cc View 1 2 3 4 5 6 1 chunk +5 lines, -3 lines 0 comments Download
M ui/ozone/platform/drm/host/gpu_thread_adapter.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +5 lines, -2 lines 0 comments Download
M ui/ozone/platform/drm/mus_thread_proxy.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +6 lines, -3 lines 0 comments Download
M ui/ozone/platform/drm/mus_thread_proxy.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +7 lines, -4 lines 0 comments Download

Messages

Total messages: 46 (16 generated)
robert.bradford
spang@ / dnicoara@ Can you guys take a look over this change to tell me ...
5 years, 1 month ago (2015-11-09 19:15:43 UTC) #3
spang
On 2015/11/09 19:15:43, robert.bradford wrote: > spang@ / dnicoara@ Can you guys take a look ...
5 years, 1 month ago (2015-11-09 19:28:13 UTC) #5
spang
https://codereview.chromium.org/1182063002/diff/120001/ui/ozone/platform/drm/gpu/drm_device.cc File ui/ozone/platform/drm/gpu/drm_device.cc (right): https://codereview.chromium.org/1182063002/diff/120001/ui/ozone/platform/drm/gpu/drm_device.cc#newcode214 ui/ozone/platform/drm/gpu/drm_device.cc:214: #define RESAMPLE(array, m, i, r) \ Please put a ...
5 years, 1 month ago (2015-11-09 19:40:47 UTC) #6
robert.bradford
oshima@ Please review the changes in ash/ spang@ & dnicoara@ Please take a look at ...
4 years, 10 months ago (2016-02-04 18:52:28 UTC) #11
dnicoara
Sorry for the late response. Here are some initial comments. I'm not particularly familiar with ...
4 years, 10 months ago (2016-02-10 20:33:31 UTC) #12
dnicoara
https://codereview.chromium.org/1182063002/diff/140001/ui/ozone/platform/drm/gpu/drm_device.cc File ui/ozone/platform/drm/gpu/drm_device.cc (right): https://codereview.chromium.org/1182063002/diff/140001/ui/ozone/platform/drm/gpu/drm_device.cc#newcode174 ui/ozone/platform/drm/gpu/drm_device.cc:174: res = drmModeCreatePropertyBlob(fd, &data[0], data.size(), &blob_id); On 2016/02/10 20:33:31, ...
4 years, 10 months ago (2016-02-11 14:57:31 UTC) #13
robert.bradford
Hi dnicoara@ thanks for the feedback. Should be all integrated in new patch set. + ...
4 years, 10 months ago (2016-02-12 14:55:50 UTC) #16
robert.bradford
spang@/oshima@/dcheng@ ping! Looking for review on this change (please disregard the "WIP" in the email ...
4 years, 10 months ago (2016-02-22 16:44:32 UTC) #18
spang
https://codereview.chromium.org/1182063002/diff/180001/ui/ozone/platform/drm/gpu/drm_device.cc File ui/ozone/platform/drm/gpu/drm_device.cc (right): https://codereview.chromium.org/1182063002/diff/180001/ui/ozone/platform/drm/gpu/drm_device.cc#newcode137 ui/ozone/platform/drm/gpu/drm_device.cc:137: DrmColorLut* lut = reinterpret_cast<DrmColorLut*>(data.data()); Please use a vector<DrmColorLut> and ...
4 years, 10 months ago (2016-02-22 18:57:51 UTC) #19
spang
https://codereview.chromium.org/1182063002/diff/180001/ui/ozone/platform/drm/gpu/drm_device.cc File ui/ozone/platform/drm/gpu/drm_device.cc (right): https://codereview.chromium.org/1182063002/diff/180001/ui/ozone/platform/drm/gpu/drm_device.cc#newcode176 ui/ozone/platform/drm/gpu/drm_device.cc:176: LOG(ERROR) << "Error creating property blob: " << base::safe_strerror(res); ...
4 years, 10 months ago (2016-02-22 19:01:46 UTC) #20
robert.bradford
Hi spang@ thanks for the review. I dealt with all the memory & casting issues. ...
4 years, 10 months ago (2016-02-23 19:23:01 UTC) #21
robert.bradford
https://codereview.chromium.org/1182063002/diff/200001/ui/ozone/platform/drm/common/drm_util.cc File ui/ozone/platform/drm/common/drm_util.cc (right): https://codereview.chromium.org/1182063002/diff/200001/ui/ozone/platform/drm/common/drm_util.cc#newcode166 ui/ozone/platform/drm/common/drm_util.cc:166: if (property && !strcmp(property->name, "CTM")) { Property name changed ...
4 years, 10 months ago (2016-02-23 19:24:21 UTC) #22
dcheng
https://codereview.chromium.org/1182063002/diff/200001/ash/display/display_color_manager_chromeos.cc File ash/display/display_color_manager_chromeos.cc (right): https://codereview.chromium.org/1182063002/diff/200001/ash/display/display_color_manager_chromeos.cc#newcode34 ash/display/display_color_manager_chromeos.cc:34: base::FilePath PathForProductID(int64_t product_id) { #include <stdint.h> https://codereview.chromium.org/1182063002/diff/200001/ash/display/display_color_manager_chromeos.cc#newcode216 ash/display/display_color_manager_chromeos.cc:216: request ...
4 years, 10 months ago (2016-02-23 20:01:55 UTC) #23
robert.bradford
Thanks for the review dcheng@! New patch uploaded. https://codereview.chromium.org/1182063002/diff/200001/ash/display/display_color_manager_chromeos.cc File ash/display/display_color_manager_chromeos.cc (right): https://codereview.chromium.org/1182063002/diff/200001/ash/display/display_color_manager_chromeos.cc#newcode34 ash/display/display_color_manager_chromeos.cc:34: base::FilePath ...
4 years, 10 months ago (2016-02-24 12:34:20 UTC) #24
dnicoara
https://codereview.chromium.org/1182063002/diff/220001/ui/ozone/platform/drm/gpu/drm_device.cc File ui/ozone/platform/drm/gpu/drm_device.cc (right): https://codereview.chromium.org/1182063002/diff/220001/ui/ozone/platform/drm/gpu/drm_device.cc#newcode130 ui/ozone/platform/drm/gpu/drm_device.cc:130: typedef scoped_ptr<DrmColorLut, base::FreeDeleter> ScopedDrmColorLut; nit: Add a "Ptr" suffix ...
4 years, 10 months ago (2016-02-24 14:24:34 UTC) #25
robert.bradford
Thanks dnicoara@ typedefs renamed and malloc used in place of new. https://codereview.chromium.org/1182063002/diff/220001/ui/ozone/platform/drm/gpu/drm_device.cc File ui/ozone/platform/drm/gpu/drm_device.cc (right): ...
4 years, 10 months ago (2016-02-24 15:22:05 UTC) #26
spang
lgtm https://codereview.chromium.org/1182063002/diff/240001/ui/ozone/platform/drm/gpu/drm_device.cc File ui/ozone/platform/drm/gpu/drm_device.cc (right): https://codereview.chromium.org/1182063002/diff/240001/ui/ozone/platform/drm/gpu/drm_device.cc#newcode149 ui/ozone/platform/drm/gpu/drm_device.cc:149: for (int i = 0; i < 9; ...
4 years, 10 months ago (2016-02-24 16:05:45 UTC) #27
dcheng
ipc lgtm https://codereview.chromium.org/1182063002/diff/240001/ui/ozone/platform/drm/gpu/drm_device.cc File ui/ozone/platform/drm/gpu/drm_device.cc (right): https://codereview.chromium.org/1182063002/diff/240001/ui/ozone/platform/drm/gpu/drm_device.cc#newcode130 ui/ozone/platform/drm/gpu/drm_device.cc:130: typedef scoped_ptr<DrmColorLut, base::FreeDeleter> ScopedDrmColorLutPtr; Nit: prefer using ...
4 years, 10 months ago (2016-02-26 09:37:48 UTC) #28
robert.bradford
Much appreciated spang@ & dcheng@. oshima@ please review when you can. https://codereview.chromium.org/1182063002/diff/240001/ui/ozone/platform/drm/gpu/drm_device.cc File ui/ozone/platform/drm/gpu/drm_device.cc (right): ...
4 years, 10 months ago (2016-02-26 15:15:22 UTC) #29
robert.bradford
oshima@ ping? We're almost ready with the kernel patches so it would be nice to ...
4 years, 9 months ago (2016-03-08 11:38:21 UTC) #30
oshima
lgtm with nits https://codereview.chromium.org/1182063002/diff/250001/ash/display/display_color_manager_chromeos.cc File ash/display/display_color_manager_chromeos.cc (right): https://codereview.chromium.org/1182063002/diff/250001/ash/display/display_color_manager_chromeos.cc#newcode75 ash/display/display_color_manager_chromeos.cc:75: } nit: VLOG_IF https://codereview.chromium.org/1182063002/diff/250001/ash/display/display_color_manager_chromeos_unittest.cc File ash/display/display_color_manager_chromeos_unittest.cc ...
4 years, 9 months ago (2016-03-11 01:35:41 UTC) #31
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1182063002/310001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1182063002/310001
4 years, 9 months ago (2016-03-22 12:02:06 UTC) #33
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/143063)
4 years, 9 months ago (2016-03-22 12:40:09 UTC) #35
robert.bradford
Hi spang@ requesting re-review after "importing" the missing drm function calls into drm_device.cc directly.
4 years, 9 months ago (2016-03-22 16:26:21 UTC) #36
spang
https://codereview.chromium.org/1182063002/diff/320001/ui/ozone/platform/drm/gpu/drm_device.cc File ui/ozone/platform/drm/gpu/drm_device.cc (right): https://codereview.chromium.org/1182063002/diff/320001/ui/ozone/platform/drm/gpu/drm_device.cc#newcode130 ui/ozone/platform/drm/gpu/drm_device.cc:130: struct _drm_mode_create_blob { Follow our naming style. DrmModeCreateBlob https://codereview.chromium.org/1182063002/diff/320001/ui/ozone/platform/drm/gpu/drm_device.cc#newcode136 ...
4 years, 9 months ago (2016-03-23 16:19:37 UTC) #37
robert.bradford
Thank you spang@ for how to deal with the imported code, I wasn't sure to ...
4 years, 9 months ago (2016-03-23 20:52:33 UTC) #38
spang
lgtm
4 years, 9 months ago (2016-03-23 21:49:37 UTC) #39
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1182063002/360001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1182063002/360001
4 years, 8 months ago (2016-04-01 08:14:15 UTC) #42
commit-bot: I haz the power
Committed patchset #18 (id:360001)
4 years, 8 months ago (2016-04-01 09:08:46 UTC) #44
commit-bot: I haz the power
4 years, 8 months ago (2016-04-01 09:10:18 UTC) #46
Message was sent while issue was closed.
Patchset 18 (id:??) landed as
https://crrev.com/dda9fb755a50b7ea24346f9315e0d2f6a93a7864
Cr-Commit-Position: refs/heads/master@{#384525}

Powered by Google App Engine
This is Rietveld 408576698