From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 294266E8CF for ; Tue, 5 Nov 2019 01:03:38 +0000 (UTC) From: Vanshidhar Konda Date: Mon, 4 Nov 2019 17:03:37 -0800 Message-Id: <20191105010337.153654-1-vanshidhar.r.konda@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH] i915/gem_linear_blits: Use buffer with variable width and height 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: Q3VycmVudGx5IHRoZSB0ZXN0IHVzZXMgYSBoYXJkY29kZWQgd2lkdGggYW5kIGhlaWdodCBvZiA1 MTIgZWFjaC4gVGhlCnRlc3QgaXMgYmVpbmcgZXh0ZW5kZWQgdG8gdGFrZSB3aWR0aCBhbmQgaGVp Z2h0IGFzIHZhcmlhYmxlcyBpbnN0ZWFkLgpUaGUgZnVuY3Rpb24gdXNlZCB0byBjb3B5IHRoZSBi dWZmZXIgaXMgYWxzbyBwYXNzZWQgYXMgYW4gYXJndW1lbnQgLQp0aGlzIGFsbG93cyB1cyB0byBl eHRlbmQgdGhlIHRlc3Qgd2l0aCBkaWZmZXJlbnQgY29weSBmdW5jdGlvbnMuCgpTaWduZWQtb2Zm LWJ5OiBWYW5zaGlkaGFyIEtvbmRhIDx2YW5zaGlkaGFyLnIua29uZGFAaW50ZWwuY29tPgotLS0K IHRlc3RzL2k5MTUvZ2VtX2xpbmVhcl9ibGl0cy5jIHwgNzQgKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAzMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9saW5lYXJfYmxpdHMuYyBiL3Rl c3RzL2k5MTUvZ2VtX2xpbmVhcl9ibGl0cy5jCmluZGV4IDA3Y2EyZjI5Li44MDEwNjc5YiAxMDA2 NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fbGluZWFyX2JsaXRzLmMKKysrIGIvdGVzdHMvaTkxNS9n ZW1fbGluZWFyX2JsaXRzLmMKQEAgLTQ5LDEzICs0OSw4IEBACiBJR1RfVEVTVF9ERVNDUklQVElP TigiVGVzdCBkb2luZyBtYW55IGJsaXRzIHdpdGggYSB3b3JraW5nIHNldCBsYXJnZXIgdGhhbiB0 aGUiCiAJCSAgICAgIiBhcGVydHVyZSBzaXplLiIpOwogCi0jZGVmaW5lIFdJRFRIIDUxMgotI2Rl ZmluZSBIRUlHSFQgNTEyCi0KLXN0YXRpYyB1aW50MzJfdCBsaW5lYXJbV0lEVEgqSEVJR0hUXTsK LQogc3RhdGljIHZvaWQKLWNvcHkoaW50IGZkLCB1aW50MzJfdCBkc3QsIHVpbnQzMl90IHNyYykK K2NvcHkoaW50IGZkLCB1aW50MzJfdCBkc3QsIHVpbnQzMl90IHNyYywgdWludDMyX3Qgd2lkdGgs IHVpbnQzMl90IGhlaWdodCkKIHsKIAl1aW50MzJfdCBiYXRjaFsxMl07CiAJc3RydWN0IGRybV9p OTE1X2dlbV9yZWxvY2F0aW9uX2VudHJ5IHJlbG9jWzJdOwpAQCAtNzMsMTQgKzY4LDE0IEBAIGNv cHkoaW50IGZkLCB1aW50MzJfdCBkc3QsIHVpbnQzMl90IHNyYykKIAogCWJhdGNoW2krK10gPSAo MyA8PCAyNCkgfCAvKiAzMiBiaXRzICovCiAJCSAgKDB4Y2MgPDwgMTYpIHwgLyogY29weSBST1Ag Ki8KLQkJICBXSURUSCo0OworCQkgIHdpZHRoKjQ7CiAJYmF0Y2hbaSsrXSA9IDA7IC8qIGRzdCB4 MSx5MSAqLwotCWJhdGNoW2krK10gPSAoSEVJR0hUIDw8IDE2KSB8IFdJRFRIOyAvKiBkc3QgeDIs eTIgKi8KKwliYXRjaFtpKytdID0gKGhlaWdodCA8PCAxNikgfCB3aWR0aDsgLyogZHN0IHgyLHky ICovCiAJYmF0Y2hbaSsrXSA9IDA7IC8qIGRzdCByZWxvYyAqLwogCWlmIChpbnRlbF9nZW4oaW50 ZWxfZ2V0X2RybV9kZXZpZChmZCkpID49IDgpCiAJCWJhdGNoW2krK10gPSAwOwogCWJhdGNoW2kr K10gPSAwOyAvKiBzcmMgeDEseTEgKi8KLQliYXRjaFtpKytdID0gV0lEVEgqNDsKKwliYXRjaFtp KytdID0gd2lkdGgqNDsKIAliYXRjaFtpKytdID0gMDsgLyogc3JjIHJlbG9jICovCiAJaWYgKGlu dGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSkgPj0gOCkKIAkJYmF0Y2hbaSsrXSA9IDA7 CkBAIC0xMjMsMzEgKzExOCwzMyBAQCBjb3B5KGludCBmZCwgdWludDMyX3QgZHN0LCB1aW50MzJf dCBzcmMpCiB9CiAKIHN0YXRpYyB1aW50MzJfdAotY3JlYXRlX2JvKGludCBmZCwgdWludDMyX3Qg dmFsKQorY3JlYXRlX2JvKGludCBmZCwgdWludDMyX3QgdmFsLCB1aW50MzJfdCB3aWR0aCwgdWlu dDMyX3QgaGVpZ2h0LAorCSAgdWludDMyX3QgKmxpbmVhcikKIHsKIAl1aW50MzJfdCBoYW5kbGU7 CiAJaW50IGk7CiAKLQloYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCBzaXplb2YobGluZWFyKSk7CisJ aGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgKHNpemVvZih1aW50MzJfdCkqd2lkdGgqaGVpZ2h0KSk7 CiAKIAkvKiBGaWxsIHRoZSBCTyB3aXRoIGR3b3JkcyBzdGFydGluZyBhdCB2YWwgKi8KLQlmb3Ig KGkgPSAwOyBpIDwgV0lEVEgqSEVJR0hUOyBpKyspCisJZm9yIChpID0gMDsgaSA8IHdpZHRoKmhl aWdodDsgaSsrKQogCQlsaW5lYXJbaV0gPSB2YWwrKzsKLQlnZW1fd3JpdGUoZmQsIGhhbmRsZSwg MCwgbGluZWFyLCBzaXplb2YobGluZWFyKSk7CisJZ2VtX3dyaXRlKGZkLCBoYW5kbGUsIDAsIGxp bmVhciwgc2l6ZW9mKHVpbnQzMl90KSp3aWR0aCpoZWlnaHQpOwogCiAJcmV0dXJuIGhhbmRsZTsK IH0KIAogc3RhdGljIHZvaWQKLWNoZWNrX2JvKGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50 MzJfdCB2YWwpCitjaGVja19ibyhpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDMyX3QgdmFs LCB1aW50MzJfdCB3aWR0aCwKKwkgdWludDMyX3QgaGVpZ2h0LCB1aW50MzJfdCAqbGluZWFyKQog ewogCWludCBudW1fZXJyb3JzOwogCWludCBpOwogCi0JZ2VtX3JlYWQoZmQsIGhhbmRsZSwgMCwg bGluZWFyLCBzaXplb2YobGluZWFyKSk7CisJZ2VtX3JlYWQoZmQsIGhhbmRsZSwgMCwgbGluZWFy LCBzaXplb2YodWludDMyX3QpKndpZHRoKmhlaWdodCk7CiAKIAludW1fZXJyb3JzID0gMDsKLQlm b3IgKGkgPSAwOyBpIDwgV0lEVEgqSEVJR0hUOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgd2lk dGgqaGVpZ2h0OyBpKyspIHsKIAkJaWYgKGxpbmVhcltpXSAhPSB2YWwgJiYgbnVtX2Vycm9ycysr IDwgMzIpCiAJCQlpZ3Rfd2FybigiWyUwOHhdIEV4cGVjdGVkIDB4JTA4eCwgZm91bmQgMHglMDh4 IChkaWZmZXJlbmNlIDB4JTA4eClcbiIsCiAJCQkJIGkgKiA0LCB2YWwsIGxpbmVhcltpXSwgdmFs IF4gbGluZWFyW2ldKTsKQEAgLTE1Niw3ICsxNTMsMTAgQEAgY2hlY2tfYm8oaW50IGZkLCB1aW50 MzJfdCBoYW5kbGUsIHVpbnQzMl90IHZhbCkKIAlpZ3RfYXNzZXJ0X2VxKG51bV9lcnJvcnMsIDAp OwogfQogCi1zdGF0aWMgdm9pZCBydW5fdGVzdChpbnQgZmQsIGludCBjb3VudCkKK3N0YXRpYyB2 b2lkIHJ1bl90ZXN0KGludCBmZCwgaW50IGNvdW50LCB1aW50MzJfdCB3aWR0aCwKKwkJICAgICB1 aW50MzJfdCBoZWlnaHQsIHVpbnQzMl90ICpsaW5lYXIsCisJCSAgICAgdm9pZCAoKmNvcHlfZnVu YykoaW50LCB1aW50MzJfdCwgdWludDMyX3QsCisJCQkJICAgICAgIHVpbnQzMl90LCB1aW50MzJf dCkpCiB7CiAJdWludDMyX3QgKmhhbmRsZSwgKnN0YXJ0X3ZhbDsKIAl1aW50MzJfdCBzdGFydCA9 IDA7CkBAIC0xNjgsMzYgKzE2OCwzNiBAQCBzdGF0aWMgdm9pZCBydW5fdGVzdChpbnQgZmQsIGlu dCBjb3VudCkKIAlzdGFydF92YWwgPSBoYW5kbGUgKyBjb3VudDsKIAogCWZvciAoaSA9IDA7IGkg PCBjb3VudDsgaSsrKSB7Ci0JCWhhbmRsZVtpXSA9IGNyZWF0ZV9ibyhmZCwgc3RhcnQpOworCQlo YW5kbGVbaV0gPSBjcmVhdGVfYm8oZmQsIHN0YXJ0LCB3aWR0aCwgaGVpZ2h0LCBsaW5lYXIpOwog CQlzdGFydF92YWxbaV0gPSBzdGFydDsKIAkJc3RhcnQgKz0gMTAyNCAqIDEwMjQgLyA0OwogCX0K IAogCWlndF9kZWJ1ZygiVmVyaWZ5aW5nIGluaXRpYWxpc2F0aW9uLi4uXG4iKTsKIAlmb3IgKGkg PSAwOyBpIDwgY291bnQ7IGkrKykKLQkJY2hlY2tfYm8oZmQsIGhhbmRsZVtpXSwgc3RhcnRfdmFs W2ldKTsKKwkJY2hlY2tfYm8oZmQsIGhhbmRsZVtpXSwgc3RhcnRfdmFsW2ldLCB3aWR0aCwgaGVp Z2h0LCBsaW5lYXIpOwogCiAJaWd0X2RlYnVnKCJDeWNsaWMgYmxpdHMsIGZvcndhcmQuLi5cbiIp OwogCWZvciAoaSA9IDA7IGkgPCBjb3VudCAqIDQ7IGkrKykgewogCQlpbnQgc3JjID0gaSAlIGNv dW50OwogCQlpbnQgZHN0ID0gKGkgKyAxKSAlIGNvdW50OwogCi0JCWNvcHkoZmQsIGhhbmRsZVtk c3RdLCBoYW5kbGVbc3JjXSk7CisJCWNvcHlfZnVuYyhmZCwgaGFuZGxlW2RzdF0sIGhhbmRsZVtz cmNdLCB3aWR0aCwgaGVpZ2h0KTsKIAkJc3RhcnRfdmFsW2RzdF0gPSBzdGFydF92YWxbc3JjXTsK IAl9CiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCi0JCWNoZWNrX2JvKGZkLCBoYW5kbGVb aV0sIHN0YXJ0X3ZhbFtpXSk7CisJCWNoZWNrX2JvKGZkLCBoYW5kbGVbaV0sIHN0YXJ0X3ZhbFtp XSwgd2lkdGgsIGhlaWdodCwgbGluZWFyKTsKIAogCWlndF9kZWJ1ZygiQ3ljbGljIGJsaXRzLCBi YWNrd2FyZC4uLlxuIik7CiAJZm9yIChpID0gMDsgaSA8IGNvdW50ICogNDsgaSsrKSB7CiAJCWlu dCBzcmMgPSAoaSArIDEpICUgY291bnQ7CiAJCWludCBkc3QgPSBpICUgY291bnQ7CiAKLQkJY29w eShmZCwgaGFuZGxlW2RzdF0sIGhhbmRsZVtzcmNdKTsKKwkJY29weV9mdW5jKGZkLCBoYW5kbGVb ZHN0XSwgaGFuZGxlW3NyY10sIHdpZHRoLCBoZWlnaHQpOwogCQlzdGFydF92YWxbZHN0XSA9IHN0 YXJ0X3ZhbFtzcmNdOwogCX0KIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKLQkJY2hlY2tf Ym8oZmQsIGhhbmRsZVtpXSwgc3RhcnRfdmFsW2ldKTsKKwkJY2hlY2tfYm8oZmQsIGhhbmRsZVtp XSwgc3RhcnRfdmFsW2ldLCB3aWR0aCwgaGVpZ2h0LCBsaW5lYXIpOwogCiAJaWd0X2RlYnVnKCJS YW5kb20gYmxpdHMuLi5cbiIpOwogCWZvciAoaSA9IDA7IGkgPCBjb3VudCAqIDQ7IGkrKykgewpA QCAtMjA3LDExICsyMDcsMTEgQEAgc3RhdGljIHZvaWQgcnVuX3Rlc3QoaW50IGZkLCBpbnQgY291 bnQpCiAJCWlmIChzcmMgPT0gZHN0KQogCQkJY29udGludWU7CiAKLQkJY29weShmZCwgaGFuZGxl W2RzdF0sIGhhbmRsZVtzcmNdKTsKKwkJY29weV9mdW5jKGZkLCBoYW5kbGVbZHN0XSwgaGFuZGxl W3NyY10sIHdpZHRoLCBoZWlnaHQpOwogCQlzdGFydF92YWxbZHN0XSA9IHN0YXJ0X3ZhbFtzcmNd OwogCX0KIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotCQljaGVja19ibyhmZCwgaGFu ZGxlW2ldLCBzdGFydF92YWxbaV0pOworCQljaGVja19ibyhmZCwgaGFuZGxlW2ldLCBzdGFydF92 YWxbaV0sIHdpZHRoLCBoZWlnaHQsIGxpbmVhcik7CiAJCWdlbV9jbG9zZShmZCwgaGFuZGxlW2ld KTsKIAl9CiAKQEAgLTIyMyw2ICsyMjMsOCBAQCBzdGF0aWMgdm9pZCBydW5fdGVzdChpbnQgZmQs IGludCBjb3VudCkKIGlndF9tYWluCiB7CiAJaW50IGZkID0gMDsKKwl1aW50MzJfdCB3aWR0aCwg aGVpZ2h0OworCXVpbnQzMl90ICpsaW5lYXI7CiAKIAlpZ3RfZml4dHVyZSB7CiAJCWZkID0gZHJt X29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CkBAIC0yMzAsMzQgKzIzMiw0MiBAQCBpZ3RfbWFp bgogCQlnZW1fcmVxdWlyZV9ibGl0dGVyKGZkKTsKIAl9CiAKLQlpZ3Rfc3VidGVzdCgiYmFzaWMi KQotCQlydW5fdGVzdChmZCwgMik7CisJaWd0X3N1YnRlc3QoImJhc2ljIikgeworCQl3aWR0aCA9 IDEwMjQ7CisJCWhlaWdodCA9IDUxMjsKKwkJbGluZWFyID0gbWFsbG9jKHNpemVvZih1aW50MzJf dCkqd2lkdGgqaGVpZ2h0KTsKKwkJcnVuX3Rlc3QoZmQsIDIsIHdpZHRoLCBoZWlnaHQsIGxpbmVh ciwgY29weSk7CisJfQogCiAJaWd0X3N1YnRlc3QoIm5vcm1hbCIpIHsKIAkJdWludDY0X3QgY291 bnQ7CisJCXdpZHRoID0gNTEyOworCQloZWlnaHQgPSA1MTI7CiAKIAkJY291bnQgPSBnZW1fYXBl cnR1cmVfc2l6ZShmZCk7CiAJCWlmIChjb3VudCA+PiAzMikKIAkJCWNvdW50ID0gTUFYXzMyYjsK IAkJY291bnQgPSAzICogY291bnQgLyAoMTAyNCoxMDI0KSAvIDI7CiAJCWlndF9yZXF1aXJlKGNv dW50ID4gMSk7Ci0JCWludGVsX3JlcXVpcmVfbWVtb3J5KGNvdW50LCBzaXplb2YobGluZWFyKSwg Q0hFQ0tfUkFNKTsKKwkJaW50ZWxfcmVxdWlyZV9tZW1vcnkoY291bnQsIHNpemVvZih1aW50MzJf dCksIENIRUNLX1JBTSk7CiAKLQkJcnVuX3Rlc3QoZmQsIGNvdW50KTsKKwkJcnVuX3Rlc3QoZmQs IGNvdW50LCB3aWR0aCwgaGVpZ2h0LCBsaW5lYXIsIGNvcHkpOwogCX0KIAogCWlndF9zdWJ0ZXN0 KCJpbnRlcnJ1cHRpYmxlIikgewogCQl1aW50NjRfdCBjb3VudDsKLQorCQl3aWR0aCA9IDUxMjsK KwkJaGVpZ2h0ID0gNTEyOwogCQljb3VudCA9IGdlbV9hcGVydHVyZV9zaXplKGZkKTsKIAkJaWYg KGNvdW50ID4+IDMyKQogCQkJY291bnQgPSBNQVhfMzJiOwogCQljb3VudCA9IDMgKiBjb3VudCAv ICgxMDI0KjEwMjQpIC8gMjsKIAkJaWd0X3JlcXVpcmUoY291bnQgPiAxKTsKLQkJaW50ZWxfcmVx dWlyZV9tZW1vcnkoY291bnQsIHNpemVvZihsaW5lYXIpLCBDSEVDS19SQU0pOworCQlpbnRlbF9y ZXF1aXJlX21lbW9yeShjb3VudCwgc2l6ZW9mKHVpbnQzMl90KSwgQ0hFQ0tfUkFNKTsKIAorCQls aW5lYXIgPSBtYWxsb2Moc2l6ZW9mKHVpbnQzMl90KSp3aWR0aCpoZWlnaHQpOwogCQlpZ3RfZm9y a19zaWduYWxfaGVscGVyKCk7Ci0JCXJ1bl90ZXN0KGZkLCBjb3VudCk7CisJCXJ1bl90ZXN0KGZk LCBjb3VudCwgd2lkdGgsIGhlaWdodCwgbGluZWFyLCBjb3B5KTsKIAkJaWd0X3N0b3Bfc2lnbmFs X2hlbHBlcigpOwogCX0KIH0KLS0gCjIuMjMuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pZ3QtZGV2