From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by gabe.freedesktop.org (Postfix) with ESMTPS id 584BD894D4 for ; Fri, 22 Feb 2019 09:30:44 +0000 (UTC) From: Paul Kocialkowski Date: Fri, 22 Feb 2019 10:28:59 +0100 Message-Id: <20190222092911.8557-11-paul.kocialkowski@bootlin.com> In-Reply-To: <20190222092911.8557-1-paul.kocialkowski@bootlin.com> References: <20190222092911.8557-1-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v6 10/22] lib/igt_vc4: Add helpers for converting linear to T-tiled RGB buffers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Petri Latvala , Eben Upton , Thomas Petazzoni List-ID: SW4gb3JkZXIgdG8gaW50ZWdyYXRlIHRlc3Rpbmcgb2YgVC10aWxlZCBidWZmZXJzLCB0aGUgZWFz aWVzdCBwYXRoIGlzIHRvCmdlbmVyYXRlIHBhdHRlcm5zICh3aXRoIHRoZSBhbHJlYWR5LWV4aXN0 aW5nIGZ1bmN0aW9ucykgaW4gbGluZWFyCmJ1ZmZlcnMgYW5kIGNvbnZlcnQgdGhlbSB0byBULXRp bGVkIHN1YnNlcXVlbnRseS4KCkFkZCBoZWxwZXJzIHRvIGRvIHRoYXQgY29udmVyc2lvbiwgd2l0 aCBhIGZpcnN0IGhlbHBlciB0aGF0IHJldHVybnMgdGhlCm1lbW9yeSBvZmZzZXQgZm9yIGEgZ2l2 ZW4gcG9zaXRpb24gaW4gYSBULXRpbGVkIGJ1ZmZlciBhbmQgYSBzZWNvbmQKaGVscGVyIHRoYXQg dXNlcyBpdCBmb3IgY29udmVydGluZyBiZXR3ZWVuIGZyYW1lYnVmZmVycy4KClNpZ25lZC1vZmYt Ynk6IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBib290bGluLmNvbT4KQWNr ZWQtYnk6IEx5dWRlIFBhdWwgPGx5dWRlQHJlZGhhdC5jb20+ClJldmlld2VkLWJ5OiBNYXhpbWUg UmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3RsaW4uY29tPgotLS0KIGxpYi9pZ3RfdmM0LmMgfCAx MzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxp Yi9pZ3RfdmM0LmggfCAgIDQgKysKIDIgZmlsZXMgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9saWIvaWd0X3ZjNC5jIGIvbGliL2lndF92YzQuYwppbmRleCAxNmRmZTY3 YTQ0YjEuLmI2OTdiNWZkZjA4MiAxMDA2NDQKLS0tIGEvbGliL2lndF92YzQuYworKysgYi9saWIv aWd0X3ZjNC5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiZHJtdGVzdC5oIgogI2luY2x1 ZGUgImlndF9hdXguaCIKICNpbmNsdWRlICJpZ3RfY29yZS5oIgorI2luY2x1ZGUgImlndF9mYi5o IgogI2luY2x1ZGUgImlndF92YzQuaCIKICNpbmNsdWRlICJpb2N0bF93cmFwcGVycy5oIgogI2lu Y2x1ZGUgImludGVsX3JlZy5oIgpAQCAtMTc2LDMgKzE3NywxMzMgQEAgYm9vbCBpZ3RfdmM0X3B1 cmdlYWJsZV9ibyhpbnQgZmQsIGludCBoYW5kbGUsIGJvb2wgcHVyZ2VhYmxlKQogCiAJcmV0dXJu IGFyZy5yZXRhaW5lZDsKIH0KKwordW5zaWduZWQgaW50IGlndF92YzRfZmJfdF90aWxlZF9jb252 ZXJ0KHN0cnVjdCBpZ3RfZmIgKmRzdCwgc3RydWN0IGlndF9mYiAqc3JjKQoreworCXVuc2lnbmVk IGludCBmYl9pZDsKKwl1bnNpZ25lZCBpbnQgaSwgajsKKwl2b2lkICpzcmNfYnVmOworCXZvaWQg KmRzdF9idWY7CisJc2l6ZV90IGJwcCA9IHNyYy0+cGxhbmVfYnBwWzBdOworCXNpemVfdCBkc3Rf c3RyaWRlID0gQUxJR04oc3JjLT5zdHJpZGVzWzBdLCAxMjgpOworCisJZmJfaWQgPSBpZ3RfY3Jl YXRlX2ZiX3dpdGhfYm9fc2l6ZShzcmMtPmZkLCBzcmMtPndpZHRoLCBzcmMtPmhlaWdodCwKKwkJ CQkJICAgc3JjLT5kcm1fZm9ybWF0LAorCQkJCQkgICBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9W QzRfVF9USUxFRCwKKwkJCQkJICAgZHN0LCAwLCBkc3Rfc3RyaWRlKTsKKwlpZ3RfYXNzZXJ0KGZi X2lkID4gMCk7CisKKwlpZ3RfYXNzZXJ0KGJwcCA9PSAxNiB8fCBicHAgPT0gMzIpOworCisJc3Jj X2J1ZiA9IGlndF9mYl9tYXBfYnVmZmVyKHNyYy0+ZmQsIHNyYyk7CisJaWd0X2Fzc2VydChzcmNf YnVmKTsKKworCWRzdF9idWYgPSBpZ3RfZmJfbWFwX2J1ZmZlcihkc3QtPmZkLCBkc3QpOworCWln dF9hc3NlcnQoZHN0X2J1Zik7CisKKwlmb3IgKGkgPSAwOyBpIDwgc3JjLT5oZWlnaHQ7IGkrKykg eworCQlmb3IgKGogPSAwOyBqIDwgc3JjLT53aWR0aDsgaisrKSB7CisJCQlzaXplX3Qgc3JjX29m ZnNldCA9IHNyYy0+b2Zmc2V0c1swXTsKKwkJCXNpemVfdCBkc3Rfb2Zmc2V0ID0gZHN0LT5vZmZz ZXRzWzBdOworCisJCQlzcmNfb2Zmc2V0ICs9IHNyYy0+c3RyaWRlc1swXSAqIGkgKyBqICogYnBw IC8gODsKKwkJCWRzdF9vZmZzZXQgKz0gaWd0X3ZjNF90X3RpbGVkX29mZnNldChkc3Rfc3RyaWRl LAorCQkJCQkJCSAgICAgc3JjLT5oZWlnaHQsCisJCQkJCQkJICAgICBicHAsIGosIGkpOworCisJ CQlzd2l0Y2ggKGJwcCkgeworCQkJY2FzZSAxNjoKKwkJCQkqKHVpbnQxNl90ICopKGRzdF9idWYg KyBkc3Rfb2Zmc2V0KSA9CisJCQkJCSoodWludDE2X3QgKikoc3JjX2J1ZiArIHNyY19vZmZzZXQp OworCQkJCWJyZWFrOworCQkJY2FzZSAzMjoKKwkJCQkqKHVpbnQzMl90ICopKGRzdF9idWYgKyBk c3Rfb2Zmc2V0KSA9CisJCQkJCSoodWludDMyX3QgKikoc3JjX2J1ZiArIHNyY19vZmZzZXQpOwor CQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJaWd0X2ZiX3VubWFwX2J1ZmZlcihzcmMsIHNy Y19idWYpOworCWlndF9mYl91bm1hcF9idWZmZXIoZHN0LCBkc3RfYnVmKTsKKworCXJldHVybiBm Yl9pZDsKK30KKworLyogQ2FsY3VsYXRlIHRoZSB0LXRpbGUgd2lkdGggc28gdGhhdCBzaXplID0g d2lkdGggKiBoZWlnaHQgKiBicHAgLyA4LiAqLworI2RlZmluZSBWQzRfVF9USUxFX1coc2l6ZSwg aGVpZ2h0LCBicHApICgoc2l6ZSkgLyAoaGVpZ2h0KSAvICgoYnBwKSAvIDgpKQorCitzaXplX3Qg aWd0X3ZjNF90X3RpbGVkX29mZnNldChzaXplX3Qgc3RyaWRlLCBzaXplX3QgaGVpZ2h0LCBzaXpl X3QgYnBwLAorCQkJICAgICAgc2l6ZV90IHgsIHNpemVfdCB5KQoreworCWNvbnN0IHNpemVfdCB0 MWtfbWFwX2V2ZW5bXSA9IHsgMCwgMywgMSwgMiB9OworCWNvbnN0IHNpemVfdCB0MWtfbWFwX29k ZFtdID0geyAyLCAxLCAzLCAwIH07CisJY29uc3Qgc2l6ZV90IHQ0a190X2ggPSAzMjsKKwljb25z dCBzaXplX3QgdDFrX3RfaCA9IDE2OworCWNvbnN0IHNpemVfdCB0NjRfdF9oID0gNDsKKwlzaXpl X3Qgb2Zmc2V0ID0gMDsKKwlzaXplX3QgdDRrX3RfdywgdDRrX3csIHQ0a194LCB0NGtfeTsKKwlz aXplX3QgdDFrX3RfdywgdDFrX3gsIHQxa195OworCXNpemVfdCB0NjRfdF93LCB0NjRfeCwgdDY0 X3k7CisJc2l6ZV90IHBpeF94LCBwaXhfeTsKKwl1bnNpZ25lZCBpbnQgaW5kZXg7CisKKwkvKiBU LXRpbGluZyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgMTYgYW5kIDMyIGJwcC4gKi8KKwlpZ3RfYXNz ZXJ0KGJwcCA9PSAxNiB8fCBicHAgPT0gMzIpOworCisJLyogVC10aWxpbmcgc3RyaWRlIG11c3Qg YmUgYWxpZ25lZCB0byB0aGUgNEsgdGlsZXMgc3RyaWRlcy4gKi8KKwlpZ3RfYXNzZXJ0KChzdHJp ZGUgJSAoNDA5NiAvIHQ0a190X2gpKSA9PSAwKTsKKworCS8qIENhbGN1bGF0ZSB0aGUgdGlsZSB3 aWR0aCBmb3IgdGhlIGJwcC4gKi8KKwl0NGtfdF93ID0gVkM0X1RfVElMRV9XKDQwOTYsIHQ0a190 X2gsIGJwcCk7CisJdDFrX3RfdyA9IFZDNF9UX1RJTEVfVygxMDI0LCB0MWtfdF9oLCBicHApOwor CXQ2NF90X3cgPSBWQzRfVF9USUxFX1coNjQsIHQ2NF90X2gsIGJwcCk7CisKKwkvKiBBbGlnbmVk IHRvdGFsIHdpZHRoIGluIG51bWJlciBvZiA0SyB0aWxlcy4gKi8KKwl0NGtfdyA9IChzdHJpZGUg LyAoYnBwIC8gOCkpIC8gdDRrX3RfdzsKKworCS8qIFggYW5kIHkgY29vcmRpbmF0ZXMgaW4gbnVt YmVyIG9mIDRLIHRpbGVzLiAqLworCXQ0a194ID0geCAvIHQ0a190X3c7CisJdDRrX3kgPSB5IC8g dDRrX3RfaDsKKworCS8qIEluY3JlYXNlIG9mZnNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSA0 SyB0aWxlIHJvdy4gKi8KKwlvZmZzZXQgKz0gdDRrX3kgKiB0NGtfdyAqIDQwOTY7CisKKwkvKiBY IGFuZCBZIGNvb3JkaW5hdGVzIGluIG51bWJlciBvZiAxSyB0aWxlcyB3aXRoaW4gdGhlIDRLIHRp bGUuICovCisJdDFrX3ggPSAoeCAlIHQ0a190X3cpIC8gdDFrX3RfdzsKKwl0MWtfeSA9ICh5ICUg dDRrX3RfaCkgLyB0MWtfdF9oOworCisJLyogSW5kZXggZm9yIDFLIHRpbGUgbWFwIGxvb2t1cC4g Ki8KKwlpbmRleCA9IDIgKiB0MWtfeSArIHQxa194OworCisJLyogT2RkIHJvd3Mgc3RhcnQgZnJv bSB0aGUgcmlnaHQsIGV2ZW4gcm93cyBmcm9tIHRoZSBsZWZ0LiAqLworCWlmICh0NGtfeSAlIDIp IHsKKwkJLyogSW5jcmVhc2Ugb2Zmc2V0IHRvIHRoZSA0SyB0aWxlIChzdGFydGluZyBmcm9tIHRo ZSByaWdodCkuICovCisJCW9mZnNldCArPSAodDRrX3cgLSB0NGtfeCAtIDEpICogNDA5NjsKKwor CQkvKiBJbmNyYXNlIG9mZnNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSAob2RkKSAxSyB0aWxl LiAqLworCQlvZmZzZXQgKz0gdDFrX21hcF9vZGRbaW5kZXhdICogMTAyNDsKKwl9IGVsc2Ugewor CQkvKiBJbmNyZWFzZSBvZmZzZXQgdG8gdGhlIDRLIHRpbGUgKHN0YXJ0aW5nIGZyb20gdGhlIGxl ZnQpLiAqLworCQlvZmZzZXQgKz0gdDRrX3ggKiA0MDk2OworCisJCS8qIEluY3Jhc2Ugb2Zmc2V0 IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIChldmVuKSAxSyB0aWxlLiAqLworCQlvZmZzZXQgKz0g dDFrX21hcF9ldmVuW2luZGV4XSAqIDEwMjQ7CisJfQorCisJLyogWCBhbmQgWSBjb29yZGluYXRl cyBpbiBudW1iZXIgb2YgNjQgYnl0ZSB0aWxlcyB3aXRoaW4gdGhlIDFLIHRpbGUuICovCisJdDY0 X3ggPSAoeCAlIHQxa190X3cpIC8gdDY0X3RfdzsKKwl0NjRfeSA9ICh5ICUgdDFrX3RfaCkgLyB0 NjRfdF9oOworCisJLyogSW5jcmVhc2Ugb2Zmc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIDY0 LWJ5dGUgdGlsZS4gKi8KKwlvZmZzZXQgKz0gKHQ2NF95ICogKHQxa190X3cgLyB0NjRfdF93KSAr IHQ2NF94KSAqIDY0OworCisJLyogWCBhbmQgWSBjb29yZGluYXRlcyBpbiBudW1iZXIgb2YgcGl4 ZWxzIHdpdGhpbiB0aGUgNjQtYnl0ZSB0aWxlLiAqLworCXBpeF94ID0geCAlIHQ2NF90X3c7CisJ cGl4X3kgPSB5ICUgdDY0X3RfaDsKKworCS8qIEluY3JlYXNlIG9mZnNldCB0byB0aGUgY29ycmVj dCBwaXhlbC4gKi8KKwlvZmZzZXQgKz0gKHBpeF95ICogdDY0X3RfdyArIHBpeF94KSAqIGJwcCAv IDg7CisKKwlyZXR1cm4gb2Zmc2V0OworfQpkaWZmIC0tZ2l0IGEvbGliL2lndF92YzQuaCBiL2xp Yi9pZ3RfdmM0LmgKaW5kZXggZWJjOGEzODgxYjVlLi5kNWM1MjliYmNjZGEgMTAwNjQ0Ci0tLSBh L2xpYi9pZ3RfdmM0LmgKKysrIGIvbGliL2lndF92YzQuaApAQCAtMzMsNCArMzMsOCBAQCBib29s IGlndF92YzRfcHVyZ2VhYmxlX2JvKGludCBmZCwgaW50IGhhbmRsZSwgYm9vbCBwdXJnZWFibGUp Owogdm9pZCBpZ3RfdmM0X3NldF90aWxpbmcoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2 NF90IG1vZGlmaWVyKTsKIHVpbnQ2NF90IGlndF92YzRfZ2V0X3RpbGluZyhpbnQgZmQsIHVpbnQz Ml90IGhhbmRsZSk7CiAKK3Vuc2lnbmVkIGludCBpZ3RfdmM0X2ZiX3RfdGlsZWRfY29udmVydChz dHJ1Y3QgaWd0X2ZiICpkc3QsIHN0cnVjdCBpZ3RfZmIgKnNyYyk7CitzaXplX3QgaWd0X3ZjNF90 X3RpbGVkX29mZnNldChzaXplX3Qgc3RyaWRlLCBzaXplX3QgaGVpZ2h0LCBzaXplX3QgYnBwLAor CQkJICAgICAgc2l6ZV90IHgsIHNpemVfdCB5KTsKKwogI2VuZGlmIC8qIElHVF9WQzRfSCAqLwot LSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=