From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 67C406E4B8 for ; Tue, 2 Apr 2019 19:12:50 +0000 (UTC) From: Maarten Lankhorst Date: Tue, 2 Apr 2019 21:12:46 +0200 Message-Id: <20190402191247.26247-1-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 1/2] lib/igt_fb: Add cairo conversion to igt_fb_convert_with_stride. 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 List-ID: ZmJfY29udmVydCgpIGNhbm5vdCBjb252ZXJ0IHRvIHRoZSBIRFIgZm9ybWF0cywgc28gd2UgbmVl ZCBhIGZhbGxiYWNrLgpXaGVuIGNhaXJvIGlzIGF2YWlsYWJsZSBvbiBzb3VyY2UgYW5kIHRhcmdl dCBmb3JtYXQsIGNyZWF0ZSBhIHN1cmZhY2UKZm9yIHNvdXJjZSBhbmQgdGFyZ2V0LiBUaGlzIHdh eSB3ZSBjYW4gY29udmVydCBmcmFtZWJ1ZmZlcnMgZGlyZWN0bHkKd2hlbiBubyBkaXJlY3QgY29u dmVyc2lvbiB1c2luZyBmYl9jb252ZXJ0KCkgaXMgYXZhaWxhYmxlLgoKVGhpcyBpcyByZXF1aXJl ZCB0byBtYWtlIHRoZSBrbXNfY2hhbWVsaXVtLiotY21wLXBsYW5lcy1yYW5kb20gdGVzdHMKcGFz cy4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb20+Ci0tLQogbGliL2lndF9mYi5jIHwgODcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUzIGlu c2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuYyBi L2xpYi9pZ3RfZmIuYwppbmRleCA2YWRmNDIyMjI4ZTguLjgzMTljNGQ1YjIyNyAxMDA2NDQKLS0t IGEvbGliL2lndF9mYi5jCisrKyBiL2xpYi9pZ3RfZmIuYwpAQCAtMjk3Niw1MyArMjk3Niw3MiBA QCB1bnNpZ25lZCBpbnQgaWd0X2ZiX2NvbnZlcnRfd2l0aF9zdHJpZGUoc3RydWN0IGlndF9mYiAq ZHN0LCBzdHJ1Y3QgaWd0X2ZiICpzcmMsCiAJdm9pZCAqZHN0X3B0ciwgKnNyY19wdHI7CiAJdWlu dDY0X3QgYmFzZV9tb2RpZmllcjsKIAlpbnQgZmJfaWQ7CisJY29uc3Qgc3RydWN0IGZvcm1hdF9k ZXNjX3N0cnVjdCAqc3JjX2Zvcm1hdCA9IGxvb2t1cF9kcm1fZm9ybWF0KHNyYy0+ZHJtX2Zvcm1h dCk7CisJY29uc3Qgc3RydWN0IGZvcm1hdF9kZXNjX3N0cnVjdCAqZHN0X2Zvcm1hdCA9IGxvb2t1 cF9kcm1fZm9ybWF0KGRzdF9mb3VyY2MpOwogCiAJaWYgKGlzX3ZjNF9kZXZpY2Uoc3JjLT5mZCkp CiAJCWJhc2VfbW9kaWZpZXIgPSBmb3VyY2NfbW9kX2Jyb2FkY29tX21vZChkc3RfbW9kaWZpZXIp OwogCWVsc2UKIAkJYmFzZV9tb2RpZmllciA9IGRzdF9tb2RpZmllcjsKIAotCWZiX2lkID0gaWd0 X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoc3JjLT5mZCwgc3JjLT53aWR0aCwgc3JjLT5oZWlnaHQs Ci0JCQkJCSAgIGRzdF9mb3VyY2MsCi0JCQkJCSAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUs ICZsaW5lYXIsCi0JCQkJCSAgIDAsIGRzdF9zdHJpZGUpOwotCWlndF9hc3NlcnQoZmJfaWQgPiAw KTsKKwlpZiAoc3JjX2Zvcm1hdC0+Y2Fpcm9faWQgPT0gQ0FJUk9fRk9STUFUX0lOVkFMSUQgfHwK KwkgICAgZHN0X2Zvcm1hdC0+Y2Fpcm9faWQgPT0gQ0FJUk9fRk9STUFUX0lOVkFMSUQpIHsKKwkJ ZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZShzcmMtPmZkLCBzcmMtPndpZHRoLCBz cmMtPmhlaWdodCwKKwkJCQkJCWRzdF9mb3VyY2MsCisJCQkJCQlMT0NBTF9EUk1fRk9STUFUX01P RF9OT05FLCAmbGluZWFyLAorCQkJCQkJMCwgZHN0X3N0cmlkZSk7CisJCWlndF9hc3NlcnQoZmJf aWQgPiAwKTsKIAotCXNyY19wdHIgPSBpZ3RfZmJfbWFwX2J1ZmZlcihzcmMtPmZkLCBzcmMpOwot CWlndF9hc3NlcnQoc3JjX3B0cik7CisJCXNyY19wdHIgPSBpZ3RfZmJfbWFwX2J1ZmZlcihzcmMt PmZkLCBzcmMpOworCQlpZ3RfYXNzZXJ0KHNyY19wdHIpOwogCi0JZHN0X3B0ciA9IGlndF9mYl9t YXBfYnVmZmVyKGxpbmVhci5mZCwgJmxpbmVhcik7Ci0JaWd0X2Fzc2VydChkc3RfcHRyKTsKKwkJ ZHN0X3B0ciA9IGlndF9mYl9tYXBfYnVmZmVyKGxpbmVhci5mZCwgJmxpbmVhcik7CisJCWlndF9h c3NlcnQoZHN0X3B0cik7CiAKLQljdnQuZHN0LnB0ciA9IGRzdF9wdHI7Ci0JY3Z0LmRzdC5mYiA9 ICZsaW5lYXI7Ci0JY3Z0LnNyYy5wdHIgPSBzcmNfcHRyOwotCWN2dC5zcmMuZmIgPSBzcmM7Ci0J ZmJfY29udmVydCgmY3Z0KTsKKwkJY3Z0LmRzdC5wdHIgPSBkc3RfcHRyOworCQljdnQuZHN0LmZi ID0gJmxpbmVhcjsKKwkJY3Z0LnNyYy5wdHIgPSBzcmNfcHRyOworCQljdnQuc3JjLmZiID0gc3Jj OworCQlmYl9jb252ZXJ0KCZjdnQpOwogCi0JaWd0X2ZiX3VubWFwX2J1ZmZlcihkc3QsIGRzdF9w dHIpOwotCWlndF9mYl91bm1hcF9idWZmZXIoc3JjLCBzcmNfcHRyKTsKKwkJaWd0X2ZiX3VubWFw X2J1ZmZlcihkc3QsIGRzdF9wdHIpOworCQlpZ3RfZmJfdW5tYXBfYnVmZmVyKHNyYywgc3JjX3B0 cik7CiAKLQlzd2l0Y2ggKGJhc2VfbW9kaWZpZXIpIHsKLQljYXNlIERSTV9GT1JNQVRfTU9EX0JS T0FEQ09NX1ZDNF9UX1RJTEVEOgotCQlmYl9pZCA9IGlndF92YzRfZmJfdF90aWxlZF9jb252ZXJ0 KGRzdCwgJmxpbmVhcik7Ci0JCWJyZWFrOwotCWNhc2UgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01f U0FORDMyOgotCWNhc2UgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDY0OgotCWNhc2UgRFJN X0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDEyODoKLQljYXNlIERSTV9GT1JNQVRfTU9EX0JST0FE Q09NX1NBTkQyNTY6Ci0JCWZiX2lkID0gdmM0X2ZiX3NhbmRfdGlsZWRfY29udmVydChkc3QsICZs aW5lYXIsIGRzdF9tb2RpZmllcik7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCWlndF9hc3NlcnQo ZHN0X21vZGlmaWVyID09IExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUpOwotCX0KKwkJc3dpdGNo IChiYXNlX21vZGlmaWVyKSB7CisJCWNhc2UgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fVkM0X1Rf VElMRUQ6CisJCQlmYl9pZCA9IGlndF92YzRfZmJfdF90aWxlZF9jb252ZXJ0KGRzdCwgJmxpbmVh cik7CisJCQlicmVhazsKKwkJY2FzZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5EMzI6CisJ CWNhc2UgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDY0OgorCQljYXNlIERSTV9GT1JNQVRf TU9EX0JST0FEQ09NX1NBTkQxMjg6CisJCWNhc2UgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FO RDI1NjoKKwkJCWZiX2lkID0gdmM0X2ZiX3NhbmRfdGlsZWRfY29udmVydChkc3QsICZsaW5lYXIs IGRzdF9tb2RpZmllcik7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWlndF9hc3NlcnQoZHN0 X21vZGlmaWVyID09IExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUpOworCQl9CiAKLQlpZ3RfYXNz ZXJ0KGZiX2lkID4gMCk7CisJCWlndF9hc3NlcnQoZmJfaWQgPiAwKTsKIAotCWlmIChkc3RfbW9k aWZpZXIgPT0gTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSkKLQkJKmRzdCA9IGxpbmVhcjsKLQll bHNlCi0JCWlndF9yZW1vdmVfZmIobGluZWFyLmZkLCAmbGluZWFyKTsKKwkJaWYgKGRzdF9tb2Rp ZmllciA9PSBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FKQorCQkJKmRzdCA9IGxpbmVhcjsKKwkJ ZWxzZQorCQkJaWd0X3JlbW92ZV9mYihsaW5lYXIuZmQsICZsaW5lYXIpOworCX0gZWxzZSB7CisJ CS8qIFVzZSB0aGUgY2Fpcm8gYXBpIHRvIGNvbnZlcnQgKi8KKwkJY2Fpcm9fc3VyZmFjZV90ICpz dXJmID0gaWd0X2dldF9jYWlyb19zdXJmYWNlKHNyYy0+ZmQsIHNyYyk7CisJCWNhaXJvX3QgKmNy OworCisJCWlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKHNyYy0+ZmQsIHNyYy0+d2lkdGgsIHNy Yy0+aGVpZ2h0LCBkc3RfZm91cmNjLAorCQkJCQkgICBkc3RfbW9kaWZpZXIsIGRzdCwgMCwgZHN0 X3N0cmlkZSk7CisKKwkJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkc3QtPmZkLCBkc3QpOworCQlj YWlyb19zZXRfc291cmNlX3N1cmZhY2UoY3IsIHN1cmYsIDAsIDApOworCQljYWlyb19wYWludChj cik7CisJCWlndF9wdXRfY2Fpcm9fY3R4KGRzdC0+ZmQsIGRzdCwgY3IpOworCisJCWNhaXJvX3N1 cmZhY2VfZGVzdHJveShzdXJmKTsKKwl9CiAKIAlyZXR1cm4gZmJfaWQ7CiB9Ci0tIAoyLjIwLjEK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYg bWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==