From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lankhorst, Maarten" Subject: Re: [RFC v5 0/8] Add Plane Color Properties Date: Wed, 26 Sep 2018 07:35:15 +0000 Message-ID: <1537947313.2540.4.camel@intel.com> References: <1537085731-6355-1-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1550471496==" Return-path: In-Reply-To: <1537085731-6355-1-git-send-email-uma.shankar@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Shankar, Uma" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" Cc: "Syrjala, Ville" , "alexandru-cosmin.gheorghe@arm.com" , "seanpaul@chromium.org" , "dcastagna@chromium.org" , "harry.wentland@amd.com" List-Id: dri-devel@lists.freedesktop.org --===============1550471496== Content-Language: en-US Content-Type: multipart/signed; micalg=sha-1; protocol="application/x-pkcs7-signature"; boundary="=-2sF2O+VW3tM8TG2UXfoR" --=-2sF2O+VW3tM8TG2UXfoR Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hey, s=C3=B6n 2018-09-16 klockan 13:45 +0530 skrev Uma Shankar: > This is how a typical display color hardware pipeline looks like: > +-------------------------------------------+ > | RAM | > | +------+ +---------+ +---------+ | > | | FB 1 | | FB 2 | | FB N | | > | +------+ +---------+ +---------+ | > +-------------------------------------------+ > | Plane Color Hardware Block | > +--------------------------------------------+ Should be some mention of color conversion (YUV -> RGB) through drm_color_encoding and drm_color_range enums interacting here? > | +---v-----+ +---v-------+ +---v------+ | > | | Plane A | | Plane B | | Plane N | | > | | DeGamma | | Degamma | | Degamma | | > | +---+-----+ +---+-------+ +---+------+ | > | | | | | > | +---v-----+ +---v-------+ +---v------+ | > | |Plane A | | Plane B | | Plane N | | > | |CSC/CTM | | CSC/CTM | | CSC/CTM | | > | +---+-----+ +----+------+ +----+-----+ | > | | | | | > | +---v-----+ +----v------+ +----v-----+ | > | | Plane A | | Plane B | | Plane N | | > | | Gamma | | Gamma | | Gamma | | > | +---+-----+ +----+------+ +----+-----+ | > | | | | | > +--------------------------------------------+ > +------v--------------v---------------v-------| > > > || > > > Pipe Blender || >=20 > +--------------------+------------------------+ > > | | > > +-----------v----------+ | > > | Pipe DeGamma | | > > | | | > > +-----------+----------+ | > > | Pipe Color | > > +-----------v----------+ Hardware | > > | Pipe CSC/CTM | | > > | | | > > +-----------+----------+ | > > | | > > +-----------v----------+ | > > | Pipe Gamma | | > > | | | > > +-----------+----------+ | > > | | Likewise, should probably be some mention about setting colorspace on the connector, so the output will knows what format is used? Perhaps pull it to this series since one can't work really well without the other? >=20 > +---------------------------------------------+ > | > v > Pipe Output >=20 > This patch series adds properties for plane color features. It adds > properties for degamma used to linearize data, CSC used for gamut > conversion, and gamma used to again non-linearize data as per panel > supported color space. These can be utilize by user space to convert > planes from one format to another, one color space to another etc. >=20 > Usersapce can take smart blending decisions and utilize these > hardware > supported plane color features to get accurate color profile. The > same > can help in consistent color quality from source to panel taking > advantage of advanced color features in hardware. >=20 > These patches just add the property interfaces and enable helper > functions. >=20 > This series adds Intel Gen9 specific plane gamma feature. We can > build up and add other platform/hardware specific implementation > on top of this series >=20 > Note: This is just to get a design feedback whether these interfaces > look ok. Based on community feedback on interfaces, we will implement > IGT tests to validate plane color features. This is un-tested > currently. >=20 > Userspace implementation using these properties have been done in drm > hwcomposer by "Alexandru-Cosmin Gheorghe Alexandru-Cosmin.Gheorghe@ar > m.com" > from ARM. A merge request has been opened by Alexandru for > drm_hwcomposer, > implementing the property changes for the same. Please review that as > well: > https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/merge_re > quests/25 >=20 > v2: Dropped legacy gamma table for plane as suggested by Maarten. > Added > Gen9/BDW plane gamma feature and rebase on tot. >=20 > v3: Added a new drm_color_lut_ext structure to accommodate 32 bit > precision > entries, pointed to by Brian, Starkey for HDR usecases. Addressed > Sean,Paul > comments and moved plane color properties to drm_plane instead of > mode_config. Added property documentation as suggested by Daniel, > Vetter. > Fixed a rebase fumble which occurred in v2, pointed by Emil Velikov. >=20 > v4: Rebase >=20 > v5: Added "Display Color Hardware Pipeline" flow to kernel > documentation as suggested by "Ville Syrjala" and "Brian Starkey". > Moved the property creation to drm_color_mgmt.c file to consolidate > all color operations at one place. Addressed Alexandru's review > comments. >=20 > Uma Shankar (8): > drm: Add Enhanced Gamma LUT precision structure > drm: Add Plane Degamma properties > drm: Add Plane CTM property > drm: Add Plane Gamma properties > drm: Define helper function for plane color enabling > drm/i915: Enable plane color features > drm/i915: Implement Plane Gamma for Bdw and Gen9 platforms > drm/i915: Load plane color luts from atomic flip >=20 > Documentation/gpu/drm-kms.rst | 99 > +++++++++++++++++++++ > drivers/gpu/drm/drm_atomic.c | 32 +++++++ > drivers/gpu/drm/drm_atomic_helper.c | 13 +++ > drivers/gpu/drm/drm_color_mgmt.c | 140 > +++++++++++++++++++++++++++++- > drivers/gpu/drm/i915/i915_drv.h | 5 ++ > drivers/gpu/drm/i915/i915_pci.c | 5 +- > drivers/gpu/drm/i915/i915_reg.h | 25 ++++++ > drivers/gpu/drm/i915/intel_atomic_plane.c | 4 + > drivers/gpu/drm/i915/intel_color.c | 80 +++++++++++++++++ > drivers/gpu/drm/i915/intel_device_info.h | 5 ++ > drivers/gpu/drm/i915/intel_display.c | 4 + > drivers/gpu/drm/i915/intel_drv.h | 10 +++ > drivers/gpu/drm/i915/intel_sprite.c | 4 + > include/drm/drm_color_mgmt.h | 6 ++ > include/drm/drm_plane.h | 61 +++++++++++++ > include/uapi/drm/drm_mode.h | 15 ++++ > 16 files changed, 504 insertions(+), 4 deletions(-) >=20 --=-2sF2O+VW3tM8TG2UXfoR Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Disposition: attachment; filename="smime.p7s" Content-Transfer-Encoding: base64 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 F2TV2+XSKn8UG1zPdFC7JTlLhsVFYM3NY6pi0lWk7rwsMgtYBGgv6zh8iLunLP0xuM+MQonT9KEo 9kkCAwEAAaOCAjkwggI1MB0GA1UdDgQWBBQzvZm2BWwDAD408y8HzIxxsewayTAfBgNVHSMEGDAW gBQeaSq03Cj+RxhOIQs/vKwRL/CY9TBlBgNVHR8EXjBcMFqgWKBWhlRodHRwOi8vd3d3LmludGVs LmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEV4dGVybmFsJTIwQmFzaWMlMjBJc3N1aW5nJTIw Q0ElMjA0QS5jcmwwgZ8GCCsGAQUFBwEBBIGSMIGPMGkGCCsGAQUFBzAChl1odHRwOi8vd3d3Lmlu dGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9JbnRlbCUyMEV4dGVybmFsJTIwQmFzaWMl MjBJc3N1aW5nJTIwQ0ElMjA0QS5jcnQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmludGVsLmNv bS8wCwYDVR0PBAQDAgeAMDwGCSsGAQQBgjcVBwQvMC0GJSsGAQQBgjcVCIbDjHWEmeVRg/2BKIWO n1OCkcAJZ4HevTmV8EMCAWQCAQkwHwYDVR0lBBgwFgYIKwYBBQUHAwQGCisGAQQBgjcKAwwwKQYJ KwYBBAGCNxUKBBwwGjAKBggrBgEFBQcDBDAMBgorBgEEAYI3CgMMMFMGA1UdEQRMMEqgKwYKKwYB BAGCNxQCA6AdDBttYWFydGVuLmxhbmtob3JzdEBpbnRlbC5jb22BG21hYXJ0ZW4ubGFua2hvcnN0 QGludGVsLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAJfZIpZQN1A6IaAcFZHe1oPyJW27+Jjg//4v4 E0ElHzO9OgQqqmZjngWwurgHmFpViwKkNeSN1xYHFt4+apmLzI6x7F3s3abJr5BpBv1vHqhL6cuS dFtsU8D24AhYoaWaYe3EhoDO8dG3VmO/vMarERoHokvqmSLVzZ+jeSRM/re/y+qkOfZNF62PRpvJ iAO71ed8USzrGowddFOshoXRnjvTPRIBzBHEVqJ/Ju0C5Vb2AwvRlXxzlcRw8BnwjFOJOig6x65o c18EGXYWYydy+h95Lq0DcqnLEvdRWFCLsKhG0lXa32Lb9CrcfDrXF/xnOb9dNXpJDGEhCPKvKDNm NjGCAhcwggITAgEBMIGQMHkxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEUMBIGA1UEBxMLU2Fu dGEgQ2xhcmExGjAYBgNVBAoTEUludGVsIENvcnBvcmF0aW9uMSswKQYDVQQDEyJJbnRlbCBFeHRl cm5hbCBCYXNpYyBJc3N1aW5nIENBIDRBAhMzAACsv9xtWzvNSJlXAAAAAKy/MAkGBSsOAwIaBQCg XTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xODA5MjYwNzM1MTNa MCMGCSqGSIb3DQEJBDEWBBRejizFqSqme+3GHBmagTzSYy6NbTANBgkqhkiG9w0BAQEFAASCAQBr 0UnvnzKc+UYm7JR7EU9PLHcXR7tsJcAMvG96PgQXMoX7rFv/5jTTjaY6ZwmirWwNtOXVYqJxRL3w iPMFu9+pr9Z3oTcxOKYkq81ld41cnYNZBpwfJq7bNlIbseqOiwgwLpiSY5+s7Hl2MDT0cgLCjyZZ msbHX/u6Da6tkbqvHW9S2krRdO98stunI1JXMU1CatOzDJOrmqoJMOWqVEwDvYh5/gvYkH1GgeT6 xXq1WQRSK1z41y9CE2261c97JSHWuHhS0jmMWctBHjsr5tUicfaoElxZGDCQF9ZgF5GKKKqm0LGY 5jrx1zh5DOTSQGbfG0I8wZ+lRDNqUUcBKBUhAAAAAAAA --=-2sF2O+VW3tM8TG2UXfoR-- --===============1550471496== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== --===============1550471496==--