From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH xf86-video-amdgpu 06/13] Compose non-legacy with legacy gamma LUT before pushing to kernel DRM Date: Thu, 3 May 2018 14:31:48 -0400 Message-ID: <1525372315-28462-7-git-send-email-sunpeng.li@amd.com> References: <1525372315-28462-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: <1525372315-28462-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 YyB8IDEwNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogMSBmaWxlIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2RybW1vZGVfZGlzcGxheS5jIGIvc3JjL2RybW1vZGVfZGlzcGxheS5jCmlu ZGV4IDcyMjNiOTMuLjljOGMzNDQgMTAwNjQ0Ci0tLSBhL3NyYy9kcm1tb2RlX2Rpc3BsYXkuYwor KysgYi9zcmMvZHJtbW9kZV9kaXNwbGF5LmMKQEAgLTg2OSw2ICs4NjksOTUgQEAgZXJyX2FsbG9j czoKIH0KIAogLyoqCisgKiBJZiBsZWdhY3kgTFVUIGlzIGEsIGFuZCBub24tbGVnYWN5IExVVCBp cyBiLCB0aGVuIHRoZSByZXN1bHQgb2YgYihhKHgpKSBpcworICogcmV0dXJuZWQgaW4gb3V0X2x1 dC4gb3V0X2x1dCdzIGxlbmd0aCBpcyBleHBlY3RlZCB0byBiZSB0aGUgc2FtZSBhcyB0aGUKKyAq IG5vbi1sZWdhY3kgTFVUIGIuCisgKgorICogQGFfKHJlZHxncmVlbnxibHVlKTogVGhlIHJlZCwg Z3JlZW4sIGFuZCBibHVlIGNvbXBvbmVudHMgb2YgdGhlIGxlZ2FjeSBMVVQuCisgKiBAYl9sdXQ6 IFRoZSBub24tbGVnYWN5IExVVCwgaW4gRFJNJ3MgY29sb3IgTFVUIGZvcm1hdC4KKyAqIEBvdXRf bHV0OiBUaGUgY29tcG9zZWQgTFVULCBpbiBEUk0ncyBjb2xvciBMVVQgZm9ybWF0LgorICogQGxl bl9hOiBMZW5ndGggb2YgbGVnYWN5IGx1dC4KKyAqIEBsZW5fYjogTGVuZ3RoIG9mIG5vbi1sZWdh Y3kgbHV0LgorICovCitzdGF0aWMgdm9pZCBkcm1tb2RlX2x1dF9jb21wb3NlKHVpbnQxNl90ICph X3JlZCwKKwkJCQl1aW50MTZfdCAqYV9ncmVlbiwKKwkJCQl1aW50MTZfdCAqYV9ibHVlLAorCQkJ CXN0cnVjdCBkcm1fY29sb3JfbHV0ICpiX2x1dCwKKwkJCQlzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAq b3V0X2x1dCwKKwkJCQl1aW50MzJfdCBsZW5fYSwgdWludDMyX3QgbGVuX2IpCit7CisJdWludDMy X3QgaV9sLCBpX3IsIGk7CisJdWludDMyX3QgaV9hbWF4LCBpX2JtYXg7CisJdWludDMyX3QgY29l ZmZfaWJtYXg7CisJdWludDMyX3QgajsKKwl1aW50NjRfdCBhX291dF9pYm1heDsKKwlpbnQgY29s b3I7CisJc2l6ZV90IHN0cnVjdF9zaXplID0gc2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfbHV0KTsK KworCXVpbnQzMl90IG1heF9sdXQgPSAoMSA8PCAxNikgLSAxOworCisJaV9hbWF4ID0gbGVuX2Eg LSAxOworCWlfYm1heCA9IGxlbl9iIC0gMTsKKworCS8qIEEgbGluZWFyIGludGVycG9sYXRpb24g aXMgZG9uZSBvbiB0aGUgbGVnYWN5IExVVCBiZWZvcmUgaXQgaXMKKwkgKiBjb21wb3NlZCwgdG8g YnJpbmcgaXQgdXAtdG8tc2l6ZSB3aXRoIHRoZSBub24tbGVnYWN5IExVVC4gVGhlCisJICogaW50 ZXJwb2xhdGlvbiB1c2VzIGludGVnZXJzIGJ5IGtlZXBpbmcgdGhpbmdzIG11bHRpcGxpZWQgdW50 aWwgdGhlCisJICogbGFzdCBtb21lbnQuCisJICovCisJZm9yIChjb2xvciA9IDA7IGNvbG9yIDwg MzsgY29sb3IrKykgeworCQl1aW50MTZfdCAqYSwgKmIsICpvdXQ7CisKKwkJLyogU2V0IHRoZSBp bml0aWFsIHBvaW50ZXJzIHRvIHRoZSByaWdodCBjb2xvciBjb21wb25lbnRzLiBUaGUKKwkJICog aW5uZXIgZm9yLWxvb3Agd2lsbCB0aGVuIG1haW50YWluIHRoZSBjb3JyZWN0IG9mZnNldCBmcm9t CisJCSAqIHRoZSBpbml0aWFsIGVsZW1lbnQuCisJCSAqLworCQlpZiAoY29sb3IgPT0gMCkgewor CQkJYSA9IGFfcmVkOworCQkJYiA9ICZiX2x1dFswXS5yZWQ7CisJCQlvdXQgPSAmb3V0X2x1dFsw XS5yZWQ7CisJCX0gZWxzZSBpZiAoY29sb3IgPT0gMSkgeworCQkJYSA9IGFfZ3JlZW47CisJCQli ID0gJmJfbHV0WzBdLmdyZWVuOworCQkJb3V0ID0gJm91dF9sdXRbMF0uZ3JlZW47CisJCX0gZWxz ZSB7CisJCQlhID0gYV9ibHVlOworCQkJYiA9ICZiX2x1dFswXS5ibHVlOworCQkJb3V0ID0gJm91 dF9sdXRbMF0uYmx1ZTsKKwkJfQorCisJCWZvciAoaSA9IDA7IGkgPCBsZW5fYjsgaSsrKSB7CisK KwkJCS8qIGlfbCBhbmQgaV9yIHRyYWNrcyB0aGUgbGVmdCBhbmQgcmlnaHQgZWxlbWVudHMgaW4K KwkJCSAqIGFfbHV0LCB0byB0aGUgc2FtcGxlIHBvaW50IGkuIEFsc28gaGFuZGxlIGxhc3QKKwkJ CSAqIGVsZW1lbnQgZWRnZSBjYXNlLCB3aGVuIGlfbCA9IGlfYW1heC4KKwkJCSAqLworCQkJaV9s ID0gaSAqIGlfYW1heCAvIGlfYm1heDsKKwkJCWlfciA9IGlfbCArICEhKGlfYW1heCAtIGlfbCk7 CisKKwkJCS8qIGNvZWZmIGlzIGludGVuZGVkIHRvIGJlIGluIFswLCAxKSwgZGVwZW5kaW5nIG9u CisJCQkgKiB3aGVyZSBzYW1wbGUgaSBpcyBiZXR3ZWVuIGlfbCBhbmQgaV9yLiBXZSBrZWVwIGl0 CisJCQkgKiBtdWx0aXBsaWVkIHdpdGggaV9ibWF4IHRocm91Z2hvdXQgdG8gbWFpbnRhaW4KKwkJ CSAqIHByZWNpc2lvbiAqLworCQkJY29lZmZfaWJtYXggPSAoaSAqIGlfYW1heCkgLSAoaV9sICog aV9ibWF4KTsKKwkJCWFfb3V0X2libWF4ID0gaV9ibWF4ICogYVtpX2xdICsKKwkJCQkgICAgICBj b2VmZl9pYm1heCAqIChhW2lfcl0gLSBhW2lfbF0pOworCisJCQkvKiBqID0gZmxvb3IoKGFfb3V0 L21heF9sdXQpKmlfYm1heCkuCisJCQkgKiBpLmUuIHRoZSBlbGVtZW50IGluIExVVCBiIHRoYXQg YV9vdXQgbWFwcyB0by4gV2UKKwkJCSAqIGhhdmUgdG8gZGl2aWRlIGJ5IG1heF9sdXQgdG8gbm9y bWFsaXplIGFfb3V0LCBzaW5jZQorCQkJICogdmFsdWVzIGluIHRoZSBMVVRzIGFyZSBbMCwgMTw8 MTYpCisJCQkgKi8KKwkJCWogPSBhX291dF9pYm1heCAvIG1heF9sdXQ7CisJCQkqKHVpbnQxNl90 KikoKHZvaWQqKW91dCArIChpKnN0cnVjdF9zaXplKSkgPQorCQkJCSoodWludDE2X3QqKSgodm9p ZCopYiArIChqKnN0cnVjdF9zaXplKSk7CisJCX0KKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgbGVu X2I7IGkrKykKKwkJb3V0X2x1dFtpXS5yZXNlcnZlZCA9IDA7Cit9CisKKy8qKgogICogQ29uZmln dXJlIGFuZCBjaGFuZ2UgYSBjb2xvciBwcm9wZXJ0eSBvbiBhIENSVEMsIHRocm91Z2ggUmFuZFIu IE9ubHkgdGhlCiAgKiBzcGVjaWZpZWQgb3V0cHV0IHdpbGwgYmUgYWZmZWN0ZWQsIGV2ZW4gaWYg dGhlIENSVEMgaXMgYXR0YWNoZWQgdG8gbXVsdGlwbGUKICAqIG91dHB1dHMuIElmIHRoZSByZXF1 ZXN0IGlzIHBlbmRpbmcsIHRoZW4gdGhlIGNoYW5nZSB3aWxsIG1ha2UgaXQncyB3YXkgaW50bwpA QCAtMTEzMCw3ICsxMjE5LDIyIEBAIHN0YXRpYyBpbnQgZHJtbW9kZV9jcnRjX3B1c2hfY21fcHJv cCh4Zjg2Q3J0Y1B0ciBjcnRjLAogCQkvKiBDYWxjdWxhdGUgdGhlIGV4cGVjdGVkIHNpemUgb2Yg dmFsdWUgaW4gYnl0ZXMgKi8KIAkJZXhwZWN0ZWRfYnl0ZXMgPSBzaXplb2Yoc3RydWN0IGRybV9j b2xvcl9sdXQpICoKIAkJCQkJZHJtbW9kZV9jcnRjLT5nYW1tYV9sdXRfc2l6ZTsKLQkJYmxvYl9k YXRhID0gZHJtbW9kZV9jcnRjLT5kZWdhbW1hX2x1dDsKKworCQkvKiBDb21wb3NlIGxlZ2FjeSBh bmQgbm9uLWxlZ2FjeSBMVVQgKi8KKwkJaWYgKGRybW1vZGVfY3J0Yy0+Z2FtbWFfbHV0KSB7CisJ CQlibG9iX2RhdGEgPSBtYWxsb2MoZXhwZWN0ZWRfYnl0ZXMpOworCQkJaWYgKCFibG9iX2RhdGEp CisJCQkJcmV0dXJuIEJhZEFsbG9jOworCQkJZHJtbW9kZV9sdXRfY29tcG9zZShjcnRjLT5nYW1t YV9yZWQsCisJCQkJCSAgICBjcnRjLT5nYW1tYV9ncmVlbiwKKwkJCQkJICAgIGNydGMtPmdhbW1h X2JsdWUsCisJCQkJCSAgICBkcm1tb2RlX2NydGMtPmdhbW1hX2x1dCwKKwkJCQkJICAgIGJsb2Jf ZGF0YSwgY3J0Yy0+Z2FtbWFfc2l6ZSwKKwkJCQkJICAgIGRybW1vZGVfY3J0Yy0+Z2FtbWFfbHV0 X3NpemUpOworCQkJZnJlZV9ibG9iX2RhdGEgPSBUUlVFOworCQl9IGVsc2UKKwkJCWJsb2JfZGF0 YSA9IE5VTEw7CisKIAl9IGVsc2UgaWYgKGNtX3Byb3BfaW5kZXggPT0gQ01fREVHQU1NQV9MVVQp IHsKIAkJZXhwZWN0ZWRfYnl0ZXMgPSBzaXplb2Yoc3RydWN0IGRybV9jb2xvcl9sdXQpICoKIAkJ CQkJZHJtbW9kZV9jcnRjLT5kZWdhbW1hX2x1dF9zaXplOwotLSAKMi43LjQKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0 CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=