From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH xf86-video-amdgpu 6/7] Compose non-legacy with legacy regamma LUT Date: Fri, 1 Jun 2018 12:03:36 -0400 Message-ID: <1527869017-9209-7-git-send-email-sunpeng.li@amd.com> References: <1527869017-9209-1-git-send-email-sunpeng.li@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1527869017-9209-1-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: "Leo (Sunpeng) Li" , michel-otUistvHUpPR7s880joybQ@public.gmane.org, harry.wentland-5C7GfCeVMHo@public.gmane.org RnJvbTogIkxlbyAoU3VucGVuZykgTGkiIDxzdW5wZW5nLmxpQGFtZC5jb20+CgpGcmVxdWVudGx5 LCBhIHVzZXIgbWF5IGhhdmUgbm9uLWxlZ2FjeSBnYW1tYSBlbmFibGVkIGZvciBtb25pdG9yCmNv cnJlY3Rpb24sIHdoaWxlIHVzaW5nIGxlZ2FjeSBnYW1tYSBmb3IgdGhpbmdzIGxpa2UKcmVkc2hp ZnQvbmlnaHRsaWdodC4KClRvIGRvIHNvLCB3ZSBjb21wb3NlIHRoZSB0d28gTFVUcy4gTGVnYWN5 IGdhbW1hIHdpbGwgYmUgYXBwbGllZCBmaXJzdCwKdGhlbiBub24tbGVnYWN5LiBpLmUuIG5vbi1s ZWdhY3lfTFVUKGxlZ2FjeV9MVVQoaW5fY29sb3IpKS4KCk5vdGUgdGhhdCB0aGUgc3RhZ2VkIGdh bW1hIExVVCB3aXRoaW4gdGhlIGRyaXZlci1wcml2YXRlIENSVEMgd2lsbAphbHdheXMgY29udGFp biB0aGUgbm9uLWxlZ2FjeSBMVVQuIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgd2UgaGF2ZSBhCmNh Y2hlZCBjb3B5IGZvciBmdXR1cmUgY29tcG9zaXRpb25zLgoKU2lnbmVkLW9mZi1ieTogTGVvIChT dW5wZW5nKSBMaSA8c3VucGVuZy5saUBhbWQuY29tPgotLS0KIHNyYy9kcm1tb2RlX2Rpc3BsYXku YyB8IDE3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogMSBmaWxlIGNoYW5nZWQsIDE3NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2RybW1vZGVfZGlzcGxheS5jIGIvc3JjL2RybW1vZGVfZGlzcGxheS5jCmlu ZGV4IDZlNWFlNzQuLmI0ZTFkNTcgMTAwNjQ0Ci0tLSBhL3NyYy9kcm1tb2RlX2Rpc3BsYXkuYwor KysgYi9zcmMvZHJtbW9kZV9kaXNwbGF5LmMKQEAgLTc4OCw2ICs3ODgsMTUwIEBAIHN0YXRpYyBC b29sIGRybW1vZGVfY3J0Y19jbV9lbmFibGVkKGRybW1vZGVfY3J0Y19wcml2YXRlX3B0ciBkcm1t b2RlX2NydGMpCiB9CiAKIC8qKgorICogSWYgbGVnYWN5IExVVCBpcyBhLCBhbmQgbm9uLWxlZ2Fj eSBMVVQgaXMgYiwgdGhlbiB0aGUgcmVzdWx0IG9mIGIoYSh4KSkgaXMKKyAqIHJldHVybmVkIGlu IG91dF9sdXQuIG91dF9sdXQncyBsZW5ndGggaXMgZXhwZWN0ZWQgdG8gYmUgdGhlIHNhbWUgYXMg dGhlCisgKiBub24tbGVnYWN5IExVVCBiLgorICoKKyAqIEBhXyhyZWR8Z3JlZW58Ymx1ZSk6IFRo ZSByZWQsIGdyZWVuLCBhbmQgYmx1ZSBjb21wb25lbnRzIG9mIHRoZSBsZWdhY3kgTFVULgorICog QGJfbHV0OiBUaGUgbm9uLWxlZ2FjeSBMVVQsIGluIERSTSdzIGNvbG9yIExVVCBmb3JtYXQuCisg KiBAb3V0X2x1dDogVGhlIGNvbXBvc2VkIExVVCwgaW4gRFJNJ3MgY29sb3IgTFVUIGZvcm1hdC4K KyAqIEBsZW5fYTogTGVuZ3RoIG9mIGxlZ2FjeSBsdXQuCisgKiBAbGVuX2I6IExlbmd0aCBvZiBu b24tbGVnYWN5IGx1dC4KKyAqLworc3RhdGljIHZvaWQgZHJtbW9kZV9sdXRfY29tcG9zZSh1aW50 MTZfdCAqYV9yZWQsCisJCQkJdWludDE2X3QgKmFfZ3JlZW4sCisJCQkJdWludDE2X3QgKmFfYmx1 ZSwKKwkJCQlzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqYl9sdXQsCisJCQkJc3RydWN0IGRybV9jb2xv cl9sdXQgKm91dF9sdXQsCisJCQkJdWludDMyX3QgbGVuX2EsIHVpbnQzMl90IGxlbl9iKQorewor CXVpbnQzMl90IGlfbCwgaV9yLCBpOworCXVpbnQzMl90IGlfYW1heCwgaV9ibWF4OworCXVpbnQz Ml90IGNvZWZmX2libWF4OworCXVpbnQzMl90IGo7CisJdWludDY0X3QgYV9vdXRfaWJtYXg7CisJ aW50IGNvbG9yOworCXNpemVfdCBzdHJ1Y3Rfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZHJtX2NvbG9y X2x1dCk7CisKKwl1aW50MzJfdCBtYXhfbHV0ID0gKDEgPDwgMTYpIC0gMTsKKworCWlfYW1heCA9 IGxlbl9hIC0gMTsKKwlpX2JtYXggPSBsZW5fYiAtIDE7CisKKwkvKiBBIGxpbmVhciBpbnRlcnBv bGF0aW9uIGlzIGRvbmUgb24gdGhlIGxlZ2FjeSBMVVQgYmVmb3JlIGl0IGlzCisJICogY29tcG9z ZWQsIHRvIGJyaW5nIGl0IHVwLXRvLXNpemUgd2l0aCB0aGUgbm9uLWxlZ2FjeSBMVVQuIFRoZQor CSAqIGludGVycG9sYXRpb24gdXNlcyBpbnRlZ2VycyBieSBrZWVwaW5nIHRoaW5ncyBtdWx0aXBs aWVkIHVudGlsIHRoZQorCSAqIGxhc3QgbW9tZW50LgorCSAqLworCWZvciAoY29sb3IgPSAwOyBj b2xvciA8IDM7IGNvbG9yKyspIHsKKwkJdWludDE2X3QgKmEsICpiLCAqb3V0OworCisJCS8qIFNl dCB0aGUgaW5pdGlhbCBwb2ludGVycyB0byB0aGUgcmlnaHQgY29sb3IgY29tcG9uZW50cy4gVGhl CisJCSAqIGlubmVyIGZvci1sb29wIHdpbGwgdGhlbiBtYWludGFpbiB0aGUgY29ycmVjdCBvZmZz ZXQgZnJvbQorCQkgKiB0aGUgaW5pdGlhbCBlbGVtZW50LgorCQkgKi8KKwkJaWYgKGNvbG9yID09 IDApIHsKKwkJCWEgPSBhX3JlZDsKKwkJCWIgPSAmYl9sdXRbMF0ucmVkOworCQkJb3V0ID0gJm91 dF9sdXRbMF0ucmVkOworCQl9IGVsc2UgaWYgKGNvbG9yID09IDEpIHsKKwkJCWEgPSBhX2dyZWVu OworCQkJYiA9ICZiX2x1dFswXS5ncmVlbjsKKwkJCW91dCA9ICZvdXRfbHV0WzBdLmdyZWVuOwor CQl9IGVsc2UgeworCQkJYSA9IGFfYmx1ZTsKKwkJCWIgPSAmYl9sdXRbMF0uYmx1ZTsKKwkJCW91 dCA9ICZvdXRfbHV0WzBdLmJsdWU7CisJCX0KKworCQlmb3IgKGkgPSAwOyBpIDwgbGVuX2I7IGkr KykgeworCQkJLyogaV9sIGFuZCBpX3IgdHJhY2tzIHRoZSBsZWZ0IGFuZCByaWdodCBlbGVtZW50 cyBpbgorCQkJICogYV9sdXQsIHRvIHRoZSBzYW1wbGUgcG9pbnQgaS4gQWxzbyBoYW5kbGUgbGFz dAorCQkJICogZWxlbWVudCBlZGdlIGNhc2UsIHdoZW4gaV9sID0gaV9hbWF4LgorCQkJICovCisJ CQlpX2wgPSBpICogaV9hbWF4IC8gaV9ibWF4OworCQkJaV9yID0gaV9sICsgISEoaV9hbWF4IC0g aV9sKTsKKworCQkJLyogY29lZmYgaXMgaW50ZW5kZWQgdG8gYmUgaW4gWzAsIDEpLCBkZXBlbmRp bmcgb24KKwkJCSAqIHdoZXJlIHNhbXBsZSBpIGlzIGJldHdlZW4gaV9sIGFuZCBpX3IuIFdlIGtl ZXAgaXQKKwkJCSAqIG11bHRpcGxpZWQgd2l0aCBpX2JtYXggdGhyb3VnaG91dCB0byBtYWludGFp bgorCQkJICogcHJlY2lzaW9uICovCisJCQljb2VmZl9pYm1heCA9IChpICogaV9hbWF4KSAtIChp X2wgKiBpX2JtYXgpOworCQkJYV9vdXRfaWJtYXggPSBpX2JtYXggKiBhW2lfbF0gKworCQkJCSAg ICAgIGNvZWZmX2libWF4ICogKGFbaV9yXSAtIGFbaV9sXSk7CisKKwkJCS8qIGogPSBmbG9vcigo YV9vdXQvbWF4X2x1dCkqaV9ibWF4KS4KKwkJCSAqIGkuZS4gdGhlIGVsZW1lbnQgaW4gTFVUIGIg dGhhdCBhX291dCBtYXBzIHRvLiBXZQorCQkJICogaGF2ZSB0byBkaXZpZGUgYnkgbWF4X2x1dCB0 byBub3JtYWxpemUgYV9vdXQsIHNpbmNlCisJCQkgKiB2YWx1ZXMgaW4gdGhlIExVVHMgYXJlIFsw LCAxPDwxNikKKwkJCSAqLworCQkJaiA9IGFfb3V0X2libWF4IC8gbWF4X2x1dDsKKwkJCSoodWlu dDE2X3QqKSgodm9pZCopb3V0ICsgKGkqc3RydWN0X3NpemUpKSA9CisJCQkJKih1aW50MTZfdCop KCh2b2lkKiliICsgKGoqc3RydWN0X3NpemUpKTsKKwkJfQorCX0KKworCWZvciAoaSA9IDA7IGkg PCBsZW5fYjsgaSsrKQorCQlvdXRfbHV0W2ldLnJlc2VydmVkID0gMDsKK30KKworLyoqCisgKiBS ZXNpemUgYSBMVVQsIHVzaW5nIGxpbmVhciBpbnRlcnBvbGF0aW9uLgorICoKKyAqIEBpbl8ocmVk fGdyZWVufGJsdWUpOiBMZWdhY3kgTFVUIGNvbXBvbmVudHMKKyAqIEBvdXRfbHV0OiBUaGUgcmVz aXplZCBMVVQgaXMgcmV0dXJuZWQgaGVyZSwgaW4gRFJNIGNvbG9yIExVVCBmb3JtYXQuCisgKiBA bGVuX2luOiBMZW5ndGggb2YgbGVnYWN5IExVVC4KKyAqIEBsZW5fb3V0OiBMZW5ndGggb2Ygb3V0 X2x1dCwgaS5lLiB0aGUgdGFyZ2V0IHNpemUuCisgKi8KK3N0YXRpYyB2b2lkIGRybW1vZGVfbHV0 X2ludGVycG9sYXRlKHVpbnQxNl90ICppbl9yZWQsCisJCQkJICAgIHVpbnQxNl90ICppbl9ncmVl biwKKwkJCQkgICAgdWludDE2X3QgKmluX2JsdWUsCisJCQkJICAgIHN0cnVjdCBkcm1fY29sb3Jf bHV0ICpvdXRfbHV0LAorCQkJCSAgICB1aW50MzJfdCBsZW5faW4sIHVpbnQzMl90IGxlbl9vdXQp Cit7CisJdWludDMyX3QgaV9sLCBpX3IsIGk7CisJdWludDMyX3QgaV9hbWF4LCBpX2JtYXg7CisJ dWludDMyX3QgY29lZmZfaWJtYXg7CisJdWludDY0X3Qgb3V0X2libWF4OworCWludCBjb2xvcjsK KwlzaXplX3Qgc3RydWN0X3NpemUgPSBzaXplb2Yoc3RydWN0IGRybV9jb2xvcl9sdXQpOworCisJ aV9hbWF4ID0gbGVuX2luIC0gMTsKKwlpX2JtYXggPSBsZW5fb3V0IC0gMTsKKworCS8qIFNlZSBA ZHJtbW9kZV9sdXRfY29tcG9zZSBmb3IgZGV0YWlscyAqLworCWZvciAoY29sb3IgPSAwOyBjb2xv ciA8IDM7IGNvbG9yKyspIHsKKwkJdWludDE2X3QgKmluLCAqb3V0OworCisJCWlmIChjb2xvciA9 PSAwKSB7CisJCQlpbiA9IGluX3JlZDsKKwkJCW91dCA9ICZvdXRfbHV0WzBdLnJlZDsKKwkJfSBl bHNlIGlmIChjb2xvciA9PSAxKSB7CisJCQlpbiA9IGluX2dyZWVuOworCQkJb3V0ID0gJm91dF9s dXRbMF0uZ3JlZW47CisJCX0gZWxzZSB7CisJCQlpbiA9IGluX2JsdWU7CisJCQlvdXQgPSAmb3V0 X2x1dFswXS5ibHVlOworCQl9CisKKwkJZm9yIChpID0gMDsgaSA8IGxlbl9vdXQ7IGkrKykgewor CQkJaV9sID0gaSAqIGlfYW1heCAvIGlfYm1heDsKKwkJCWlfciA9IGlfbCArICEhKGlfYW1heCAt IGlfbCk7CisKKwkJCWNvZWZmX2libWF4ID0gKGkgKiBpX2FtYXgpIC0gKGlfbCAqIGlfYm1heCk7 CisJCQlvdXRfaWJtYXggPSBpX2JtYXggKiBpbltpX2xdICsKKwkJCQkgICAgICBjb2VmZl9pYm1h eCAqIChpbltpX3JdIC0gaW5baV9sXSk7CisKKwkJCSoodWludDE2X3QqKSgodm9pZCopb3V0ICsg KGkqc3RydWN0X3NpemUpKSA9CisJCQkJb3V0X2libWF4IC8gaV9ibWF4OworCQl9CisJfQorCisJ Zm9yIChpID0gMDsgaSA8IGxlbl9vdXQ7IGkrKykKKwkJb3V0X2x1dFtpXS5yZXNlcnZlZCA9IDA7 Cit9CisKKy8qKgogICogQ29uZmlndXJlIGFuZCBjaGFuZ2UgYSBjb2xvciBwcm9wZXJ0eSBvbiBh IENSVEMsIHRocm91Z2ggUmFuZFIuIE9ubHkgdGhlCiAgKiBzcGVjaWZpZWQgb3V0cHV0IHdpbGwg YmUgYWZmZWN0ZWQsIGV2ZW4gaWYgdGhlIENSVEMgaXMgYXR0YWNoZWQgdG8gbXVsdGlwbGUKICAq IG91dHB1dHMuIE5vdGUgdGhhdCBjaGFuZ2VzIHdpbGwgYmUgbm9uLXBlbmRpbmc6IHRoZSBjaGFu Z2VzIHdvbid0IGJlIHB1c2hlZApAQCAtMTAwMCw2ICsxMTQ0LDcgQEAgc3RhdGljIGludCBkcm1t b2RlX2NydGNfcHVzaF9jbV9wcm9wKHhmODZDcnRjUHRyIGNydGMsCiB7CiAJZHJtbW9kZV9jcnRj X3ByaXZhdGVfcHRyIGRybW1vZGVfY3J0YyA9IGNydGMtPmRyaXZlcl9wcml2YXRlOwogCUFNREdQ VUVudFB0ciBwQU1ER1BVRW50ID0gQU1ER1BVRW50UHJpdihjcnRjLT5zY3JuKTsKKwlCb29sIGZy ZWVfYmxvYl9kYXRhID0gRkFMU0U7CiAJdWludDMyX3QgY3JlYXRlZF9ibG9iX2lkID0gMDsKIAl1 aW50MzJfdCBkcm1fcHJvcF9pZDsKIAlzaXplX3QgZXhwZWN0ZWRfYnl0ZXMgPSAwOwpAQCAtMTAx Myw3ICsxMTU4LDMwIEBAIHN0YXRpYyBpbnQgZHJtbW9kZV9jcnRjX3B1c2hfY21fcHJvcCh4Zjg2 Q3J0Y1B0ciBjcnRjLAogCQkvKiBDYWxjdWxhdGUgdGhlIGV4cGVjdGVkIHNpemUgb2YgdmFsdWUg aW4gYnl0ZXMgKi8KIAkJZXhwZWN0ZWRfYnl0ZXMgPSBzaXplb2Yoc3RydWN0IGRybV9jb2xvcl9s dXQpICoKIAkJCQkJZHJtbW9kZV9jcnRjLT5nYW1tYV9sdXRfc2l6ZTsKLQkJYmxvYl9kYXRhID0g ZHJtbW9kZV9jcnRjLT5nYW1tYV9sdXQ7CisKKwkJYmxvYl9kYXRhID0gbWFsbG9jKGV4cGVjdGVk X2J5dGVzKTsKKwkJaWYgKCFibG9iX2RhdGEpCisJCQlyZXR1cm4gQmFkQWxsb2M7CisJCWZyZWVf YmxvYl9kYXRhID0gVFJVRTsKKwkJLyoKKwkJICogQ29tcG9zZSBsZWdhY3kgYW5kIG5vbi1sZWdh Y3kgTFVUIGlmIG5vbi1sZWdhY3kgd2FzIHNldC4KKwkJICogT3RoZXJ3aXNlLCBpbnRlcnBvbGF0 ZSBsZWdhY3kgTFVUIHRvIG5vbi1sZWdhY3kgc2l6ZS4KKwkJICovCisJCWlmIChkcm1tb2RlX2Ny dGMtPmdhbW1hX2x1dCkgeworCQkJZHJtbW9kZV9sdXRfY29tcG9zZShjcnRjLT5nYW1tYV9yZWQs CisJCQkJCSAgICBjcnRjLT5nYW1tYV9ncmVlbiwKKwkJCQkJICAgIGNydGMtPmdhbW1hX2JsdWUs CisJCQkJCSAgICBkcm1tb2RlX2NydGMtPmdhbW1hX2x1dCwKKwkJCQkJICAgIGJsb2JfZGF0YSwg Y3J0Yy0+Z2FtbWFfc2l6ZSwKKwkJCQkJICAgIGRybW1vZGVfY3J0Yy0+Z2FtbWFfbHV0X3NpemUp OworCQl9IGVsc2UgeworCQkJZHJtbW9kZV9sdXRfaW50ZXJwb2xhdGUoY3J0Yy0+Z2FtbWFfcmVk LAorCQkJCQkJY3J0Yy0+Z2FtbWFfZ3JlZW4sCisJCQkJCQljcnRjLT5nYW1tYV9ibHVlLAorCQkJ CQkJYmxvYl9kYXRhLAorCQkJCQkJY3J0Yy0+Z2FtbWFfc2l6ZSwKKwkJCQkJCWRybW1vZGVfY3J0 Yy0+Z2FtbWFfbHV0X3NpemUpOworCQl9CiAJfSBlbHNlIGlmIChjbV9wcm9wX2luZGV4ID09IENN X0RFR0FNTUFfTFVUKSB7CiAJCWV4cGVjdGVkX2J5dGVzID0gc2l6ZW9mKHN0cnVjdCBkcm1fY29s b3JfbHV0KSAqCiAJCQkJCWRybW1vZGVfY3J0Yy0+ZGVnYW1tYV9sdXRfc2l6ZTsKQEAgLTEwMzIs NiArMTIwMCw4IEBAIHN0YXRpYyBpbnQgZHJtbW9kZV9jcnRjX3B1c2hfY21fcHJvcCh4Zjg2Q3J0 Y1B0ciBjcnRjLAogCQkJeGY4NkRydk1zZyhjcnRjLT5zY3JuLT5zY3JuSW5kZXgsIFhfRVJST1Is CiAJCQkJICAgIkNyZWF0aW5nIERSTSBibG9iIGZhaWxlZCB3aXRoIGVycm5vICVkXG4iLAogCQkJ CSAgIHJldCk7CisJCQlpZiAoZnJlZV9ibG9iX2RhdGEpCisJCQkJZnJlZShibG9iX2RhdGEpOwog CQkJcmV0dXJuIEJhZFJlcXVlc3Q7CiAJCX0KIAl9CkBAIC0xMDUzLDkgKzEyMjMsMTQgQEAgc3Rh dGljIGludCBkcm1tb2RlX2NydGNfcHVzaF9jbV9wcm9wKHhmODZDcnRjUHRyIGNydGMsCiAJCXhm ODZEcnZNc2coY3J0Yy0+c2Nybi0+c2NybkluZGV4LCBYX0VSUk9SLAogCQkJICAgIlNldHRpbmcg RFJNIHByb3BlcnR5IGJsb2IgZmFpbGVkIHdpdGggZXJybm8gJWRcbiIsCiAJCQkgICByZXQpOwor CQlpZiAoZnJlZV9ibG9iX2RhdGEpCisJCQlmcmVlKGJsb2JfZGF0YSk7CiAJCXJldHVybiBCYWRS ZXF1ZXN0OwogCX0KIAorCWlmIChmcmVlX2Jsb2JfZGF0YSkKKwkJZnJlZShibG9iX2RhdGEpOwor CiAJcmV0dXJuIFN1Y2Nlc3M7CiB9CiAKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2FtZC1nZngK