From: Eric Anholt Subject: [PATCH i-g-t 3/4] Add v3d helper library Date: Wed, 14 Nov 2018 14:28:31 -0800 Message-ID: <20181114222832.22839-3-eric@anholt.net> References: <20181114222832.22839-1-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from anholt.net (anholt.net [50.246.234.109]) by gabe.freedesktop.org (Postfix) with ESMTP id D05B26E585 for ; Wed, 14 Nov 2018 22:28:46 +0000 (UTC) In-Reply-To: <20181114222832.22839-1-eric@anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SnVzdCBhIGZldyBsaXR0bGUgaW9jdGwgd3JhcHBlcnMgdGhhdCB2M2QgdGVzdHMgd2lsbCB1c2Uu CgpTaWduZWQtb2ZmLWJ5OiBFcmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0PgotLS0KIGxpYi9N YWtlZmlsZS5zb3VyY2VzIHwgICAyICsKIGxpYi9kcm10ZXN0LmMgICAgICAgIHwgICAzICsKIGxp Yi9kcm10ZXN0LmggICAgICAgIHwgICAxICsKIGxpYi9pZ3RfdjNkLmMgICAgICAgIHwgMTMwICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYi9pZ3RfdjNkLmgg ICAgICAgIHwgIDQ2ICsrKysrKysrKysrKysrKwogbGliL21lc29uLmJ1aWxkICAgICAgfCAgIDEg KwogNiBmaWxlcyBjaGFuZ2VkLCAxODMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGxpYi9pZ3RfdjNkLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvaWd0X3YzZC5oCgpkaWZmIC0t Z2l0IGEvbGliL01ha2VmaWxlLnNvdXJjZXMgYi9saWIvTWFrZWZpbGUuc291cmNlcwppbmRleCBl OTg5ODlmZjhlZDkuLjgwOGI5NjE3ZWNhMiAxMDA2NDQKLS0tIGEvbGliL01ha2VmaWxlLnNvdXJj ZXMKKysrIGIvbGliL01ha2VmaWxlLnNvdXJjZXMKQEAgLTEwNyw2ICsxMDcsOCBAQCBsaWJfc291 cmNlX2xpc3QgPQkgCVwKIAlpZ3Rfc3luY29iai5oCQlcCiAJaWd0X3Bzci5jCQlcCiAJaWd0X3Bz ci5oCQlcCisJaWd0X3YzZC5jCQlcCisJaWd0X3YzZC5oCQlcCiAJJChOVUxMKQogCiAuUEhPTlk6 IHZlcnNpb24uaC50bXAKZGlmZiAtLWdpdCBhL2xpYi9kcm10ZXN0LmMgYi9saWIvZHJtdGVzdC5j CmluZGV4IGZlZTlkMzNhZDJhNS4uZDJhYTFjMTkxNTRmIDEwMDY0NAotLS0gYS9saWIvZHJtdGVz dC5jCisrKyBiL2xpYi9kcm10ZXN0LmMKQEAgLTIwMiw2ICsyMDIsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IG1vZHVsZSB7CiB9IG1vZHVsZXNbXSA9IHsKIAl7IERSSVZFUl9BTURHUFUsICJhbWRn cHUiIH0sCiAJeyBEUklWRVJfSU5URUwsICJpOTE1IiwgbW9kcHJvYmVfaTkxNSB9LAorCXsgRFJJ VkVSX1YzRCwgInYzZCIgfSwKIAl7IERSSVZFUl9WQzQsICJ2YzQiIH0sCiAJeyBEUklWRVJfVkdF TSwgInZnZW0iIH0sCiAJeyBEUklWRVJfVklSVElPLCAidmlydGlvLWdwdSIgfSwKQEAgLTM0MCw2 ICszNDEsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY2hpcHNldF90b19zdHIoaW50IGNoaXBzZXQp CiAJc3dpdGNoIChjaGlwc2V0KSB7CiAJY2FzZSBEUklWRVJfSU5URUw6CiAJCXJldHVybiAiaW50 ZWwiOworCWNhc2UgRFJJVkVSX1YzRDoKKwkJcmV0dXJuICJ2M2QiOwogCWNhc2UgRFJJVkVSX1ZD NDoKIAkJcmV0dXJuICJ2YzQiOwogCWNhc2UgRFJJVkVSX1ZHRU06CmRpZmYgLS1naXQgYS9saWIv ZHJtdGVzdC5oIGIvbGliL2RybXRlc3QuaAppbmRleCA5NDk4NjVlZTU0ZGQuLjk2ZWU1MTdlMmVj MSAxMDA2NDQKLS0tIGEvbGliL2RybXRlc3QuaAorKysgYi9saWIvZHJtdGVzdC5oCkBAIC00Myw2 ICs0Myw3IEBACiAjZGVmaW5lIERSSVZFUl9WR0VNCSgxIDw8IDIpCiAjZGVmaW5lIERSSVZFUl9W SVJUSU8JKDEgPDwgMykKICNkZWZpbmUgRFJJVkVSX0FNREdQVQkoMSA8PCA0KQorI2RlZmluZSBE UklWRVJfVjNECSgxIDw8IDUpCiAvKgogICogRXhjbHVkZSBEUlZFUl9WR0VNIGZyb20gRFJJVkVS X0FOWSBzaW5jZSBpZiB5b3UgcnVuIG9uIGEgc3lzdGVtCiAgKiB3aXRoIHZnZW0gYXMgd2VsbCBh cyBhIHN1cHBvcnRlZCBkcml2ZXIsIHlvdSBjYW4gZW5kIHVwIHdpdGggYQpkaWZmIC0tZ2l0IGEv bGliL2lndF92M2QuYyBiL2xpYi9pZ3RfdjNkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4xYTVlZGUxYmQ1ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvaWd0X3Yz ZC5jCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTYgQnJvYWRjb20K KyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5j bHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNv ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hF VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H CisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lu Y2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHNpZ25hbC5o PgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDxz eXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5o PgorI2luY2x1ZGUgPGZjbnRsLmg+CisKKyNpbmNsdWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAi aWd0X2F1eC5oIgorI2luY2x1ZGUgImlndF9jb3JlLmgiCisjaW5jbHVkZSAiaWd0X3YzZC5oIgor I2luY2x1ZGUgImlvY3RsX3dyYXBwZXJzLmgiCisjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCisjaW5j bHVkZSAiaW50ZWxfY2hpcHNldC5oIgorI2luY2x1ZGUgInYzZF9kcm0uaCIKKworI2lmIE5FV19D T05URVhUX1BBUkFNX05PX0VSUk9SX0NBUFRVUkVfQVBJCisjZGVmaW5lIExPQ0FMX0NPTlRFWFRf UEFSQU1fTk9fRVJST1JfQ0FQVFVSRSAweDQKKyNlbmRpZgorCisvKioKKyAqIFNFQ1RJT046aWd0 X3YzZAorICogQHNob3J0X2Rlc2NyaXB0aW9uOiBWM0Qgc3VwcG9ydCBsaWJyYXJ5CisgKiBAdGl0 bGU6IFYzRAorICogQGluY2x1ZGU6IGlndC5oCisgKgorICogVGhpcyBsaWJyYXJ5IHByb3ZpZGVz IHZhcmlvdXMgYXV4aWxpYXJ5IGhlbHBlciBmdW5jdGlvbnMgZm9yIHdyaXRpbmcgVjNECisgKiB0 ZXN0cy4KKyAqLworCitzdHJ1Y3QgdjNkX2JvICoKK2lndF92M2RfY3JlYXRlX2JvKGludCBmZCwg c2l6ZV90IHNpemUpCit7CisJc3RydWN0IHYzZF9ibyAqYm8gPSBjYWxsb2MoMSwgc2l6ZW9mKCpi bykpOworCisJc3RydWN0IGRybV92M2RfY3JlYXRlX2JvIGNyZWF0ZSA9IHsKKwkJLnNpemUgPSBz aXplLAorCX07CisKKwlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX1YzRF9DUkVBVEVfQk8sICZjcmVh dGUpOworCisJYm8tPmhhbmRsZSA9IGNyZWF0ZS5oYW5kbGU7CisJYm8tPm9mZnNldCA9IGNyZWF0 ZS5vZmZzZXQ7CisJYm8tPnNpemUgPSBzaXplOworCisJcmV0dXJuIGJvOworfQorCit2b2lkCitp Z3RfdjNkX2ZyZWVfYm8oaW50IGZkLCBzdHJ1Y3QgdjNkX2JvICpibykKK3sKKwlpZiAoYm8tPm1h cCkKKwkJbXVubWFwKGJvLT5tYXAsIGJvLT5zaXplKTsKKwlnZW1fY2xvc2UoZmQsIGJvLT5oYW5k bGUpOworCWZyZWUoYm8pOworfQorCit1aW50MzJfdAoraWd0X3YzZF9nZXRfYm9fb2Zmc2V0KGlu dCBmZCwgdWludDMyX3QgaGFuZGxlKQoreworCXN0cnVjdCBkcm1fdjNkX2dldF9ib19vZmZzZXQg Z2V0ID0geworCQkuaGFuZGxlID0gaGFuZGxlLAorCX07CisKKwlkb19pb2N0bChmZCwgRFJNX0lP Q1RMX1YzRF9HRVRfQk9fT0ZGU0VULCAmZ2V0KTsKKworCXJldHVybiBnZXQub2Zmc2V0OworfQor Cit1aW50MzJfdAoraWd0X3YzZF9nZXRfcGFyYW0oaW50IGZkLCBlbnVtIGRybV92M2RfcGFyYW0g cGFyYW0pCit7CisJc3RydWN0IGRybV92M2RfZ2V0X3BhcmFtIGdldCA9IHsKKwkJLnBhcmFtID0g cGFyYW0sCisJfTsKKworCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfVjNEX0dFVF9QQVJBTSwgJmdl dCk7CisKKwlyZXR1cm4gZ2V0LnZhbHVlOworfQorCit2b2lkICoKK2lndF92M2RfbW1hcF9ibyhp bnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDMyX3Qgc2l6ZSwgdW5zaWduZWQgcHJvdCkKK3sK KwlzdHJ1Y3QgZHJtX3YzZF9tbWFwX2JvIG1tYXBfYm8gPSB7CisJCS5oYW5kbGUgPSBoYW5kbGUs CisJfTsKKwl2b2lkICpwdHI7CisKKwlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX1YzRF9NTUFQX0JP LCAmbW1hcF9ibyk7CisKKwlwdHIgPSBtbWFwKDAsIHNpemUsIHByb3QsIE1BUF9TSEFSRUQsIGZk LCBtbWFwX2JvLm9mZnNldCk7CisJaWYgKHB0ciA9PSBNQVBfRkFJTEVEKQorCQlyZXR1cm4gTlVM TDsKKwllbHNlCisJCXJldHVybiBwdHI7Cit9CisKK3ZvaWQgaWd0X3YzZF9ib19tbWFwKGludCBm ZCwgc3RydWN0IHYzZF9ibyAqYm8pCit7CisJYm8tPm1hcCA9IGlndF92M2RfbW1hcF9ibyhmZCwg Ym8tPmhhbmRsZSwgYm8tPnNpemUsCisJCQkJICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKKwlp Z3RfYXNzZXJ0KGJvLT5tYXApOworfQpkaWZmIC0tZ2l0IGEvbGliL2lndF92M2QuaCBiL2xpYi9p Z3RfdjNkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iZGJjYjJk YmM1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvaWd0X3YzZC5oCkBAIC0wLDAgKzEsNDYgQEAK Ky8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNiBCcm9hZGNvbQorICoKKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh CisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0 aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNP RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs IEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBU SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwg REFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaWZuZGVmIElHVF9WM0RfSAorI2RlZmlu ZSBJR1RfVjNEX0gKKworI2luY2x1ZGUgInYzZF9kcm0uaCIKKworc3RydWN0IHYzZF9ibyAqaWd0 X3YzZF9jcmVhdGVfYm8oaW50IGZkLCBzaXplX3Qgc2l6ZSk7Cit2b2lkIGlndF92M2RfZnJlZV9i byhpbnQgZmQsIHN0cnVjdCB2M2RfYm8gKmJvKTsKKworLyogSU9DVEwgd3JhcHBlcnMgKi8KK3Vp bnQzMl90IGlndF92M2RfZ2V0X2JvX29mZnNldChpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSk7Cit1 aW50MzJfdCBpZ3RfdjNkX2dldF9wYXJhbShpbnQgZmQsIGVudW0gZHJtX3YzZF9wYXJhbSBwYXJh bSk7Cit2b2lkICppZ3RfdjNkX21tYXBfYm8oaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVpbnQz Ml90IHNpemUsIHVuc2lnbmVkIHByb3QpOworCit2b2lkIGlndF92M2RfYm9fbW1hcChpbnQgZmQs IHN0cnVjdCB2M2RfYm8gKmJvKTsKKworc3RydWN0IHYzZF9ibyB7CisJaW50IGhhbmRsZTsKKwl1 aW50MzJfdCBvZmZzZXQ7CisJdWludDMyX3Qgc2l6ZTsKKwl2b2lkICptYXA7Cit9OworCisjZW5k aWYgLyogSUdUX1YzRF9IICovCmRpZmYgLS1naXQgYS9saWIvbWVzb24uYnVpbGQgYi9saWIvbWVz b24uYnVpbGQKaW5kZXggODk2MWNhNDk0YWY4Li4xOWY1ZDUxY2VlYWQgMTAwNjQ0Ci0tLSBhL2xp Yi9tZXNvbi5idWlsZAorKysgYi9saWIvbWVzb24uYnVpbGQKQEAgLTQ4LDYgKzQ4LDcgQEAgbGli X3NvdXJjZXMgPSBbCiAJJ2lndF9kdW1teWxvYWQuYycsCiAJJ3V3aWxkbWF0L3V3aWxkbWF0LmMn LAogCSdpZ3Rfa21vZC5jJywKKwknaWd0X3YzZC5jJywKIAknaWd0X3ZjNC5jJywKIAknaWd0X3Bz ci5jJywKIF0KLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==