From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from anholt.net (anholt.net [50.246.234.109]) by gabe.freedesktop.org (Postfix) with ESMTP id ABB776E680 for ; Thu, 15 Nov 2018 18:57:44 +0000 (UTC) From: Eric Anholt Date: Thu, 15 Nov 2018 10:57:35 -0800 Message-Id: <20181115185737.19311-4-eric@anholt.net> In-Reply-To: <20181115185737.19311-1-eric@anholt.net> References: <20181115185737.19311-1-eric@anholt.net> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 4/6] v3d: Add a helper library 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: SnVzdCBhIGZldyBsaXR0bGUgaW9jdGwgd3JhcHBlcnMgdGhhdCB2M2QgdGVzdHMgd2lsbCB1c2Uu Cgp2MjogTW92ZSB0aGUgc3RydWN0IGFib3ZlIHRoZSBwcm90b3R5cGVzLgoKU2lnbmVkLW9mZi1i eTogRXJpYyBBbmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD4KLS0tCiBsaWIvTWFrZWZpbGUuc291cmNl cyB8ICAgMiArCiBsaWIvZHJtdGVzdC5jICAgICAgICB8ICAgMyArCiBsaWIvZHJtdGVzdC5oICAg ICAgICB8ICAgMSArCiBsaWIvaWd0X3YzZC5jICAgICAgICB8IDEzMCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIvaWd0X3YzZC5oICAgICAgICB8ICA0NiAr KysrKysrKysrKysrKysKIGxpYi9tZXNvbi5idWlsZCAgICAgIHwgICAxICsKIDYgZmlsZXMgY2hh bmdlZCwgMTgzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvaWd0X3YzZC5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2lndF92M2QuaAoKZGlmZiAtLWdpdCBhL2xpYi9NYWtl ZmlsZS5zb3VyY2VzIGIvbGliL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggZTk4OTg5ZmY4ZWQ5Li44 MDhiOTYxN2VjYTIgMTAwNjQ0Ci0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL2xpYi9N YWtlZmlsZS5zb3VyY2VzCkBAIC0xMDcsNiArMTA3LDggQEAgbGliX3NvdXJjZV9saXN0ID0JIAlc CiAJaWd0X3N5bmNvYmouaAkJXAogCWlndF9wc3IuYwkJXAogCWlndF9wc3IuaAkJXAorCWlndF92 M2QuYwkJXAorCWlndF92M2QuaAkJXAogCSQoTlVMTCkKIAogLlBIT05ZOiB2ZXJzaW9uLmgudG1w CmRpZmYgLS1naXQgYS9saWIvZHJtdGVzdC5jIGIvbGliL2RybXRlc3QuYwppbmRleCBmZWU5ZDMz YWQyYTUuLmQyYWExYzE5MTU0ZiAxMDA2NDQKLS0tIGEvbGliL2RybXRlc3QuYworKysgYi9saWIv ZHJtdGVzdC5jCkBAIC0yMDIsNiArMjAyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtb2R1bGUg ewogfSBtb2R1bGVzW10gPSB7CiAJeyBEUklWRVJfQU1ER1BVLCAiYW1kZ3B1IiB9LAogCXsgRFJJ VkVSX0lOVEVMLCAiaTkxNSIsIG1vZHByb2JlX2k5MTUgfSwKKwl7IERSSVZFUl9WM0QsICJ2M2Qi IH0sCiAJeyBEUklWRVJfVkM0LCAidmM0IiB9LAogCXsgRFJJVkVSX1ZHRU0sICJ2Z2VtIiB9LAog CXsgRFJJVkVSX1ZJUlRJTywgInZpcnRpby1ncHUiIH0sCkBAIC0zNDAsNiArMzQxLDggQEAgc3Rh dGljIGNvbnN0IGNoYXIgKmNoaXBzZXRfdG9fc3RyKGludCBjaGlwc2V0KQogCXN3aXRjaCAoY2hp cHNldCkgewogCWNhc2UgRFJJVkVSX0lOVEVMOgogCQlyZXR1cm4gImludGVsIjsKKwljYXNlIERS SVZFUl9WM0Q6CisJCXJldHVybiAidjNkIjsKIAljYXNlIERSSVZFUl9WQzQ6CiAJCXJldHVybiAi dmM0IjsKIAljYXNlIERSSVZFUl9WR0VNOgpkaWZmIC0tZ2l0IGEvbGliL2RybXRlc3QuaCBiL2xp Yi9kcm10ZXN0LmgKaW5kZXggOTQ5ODY1ZWU1NGRkLi45NmVlNTE3ZTJlYzEgMTAwNjQ0Ci0tLSBh L2xpYi9kcm10ZXN0LmgKKysrIGIvbGliL2RybXRlc3QuaApAQCAtNDMsNiArNDMsNyBAQAogI2Rl ZmluZSBEUklWRVJfVkdFTQkoMSA8PCAyKQogI2RlZmluZSBEUklWRVJfVklSVElPCSgxIDw8IDMp CiAjZGVmaW5lIERSSVZFUl9BTURHUFUJKDEgPDwgNCkKKyNkZWZpbmUgRFJJVkVSX1YzRAkoMSA8 PCA1KQogLyoKICAqIEV4Y2x1ZGUgRFJWRVJfVkdFTSBmcm9tIERSSVZFUl9BTlkgc2luY2UgaWYg eW91IHJ1biBvbiBhIHN5c3RlbQogICogd2l0aCB2Z2VtIGFzIHdlbGwgYXMgYSBzdXBwb3J0ZWQg ZHJpdmVyLCB5b3UgY2FuIGVuZCB1cCB3aXRoIGEKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfdjNkLmMg Yi9saWIvaWd0X3YzZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MWE1ZWRlMWJkNWZjCi0tLSAvZGV2L251bGwKKysrIGIvbGliL2lndF92M2QuYwpAQCAtMCwwICsx LDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE2IEJyb2FkY29tCisgKgorICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0 aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0 ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFu ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVk IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBU aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5j bHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hB TEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VU IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF UiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlIDxhc3NlcnQu aD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxl cnJuby5oPgorI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cisj aW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxm Y250bC5oPgorCisjaW5jbHVkZSAiZHJtdGVzdC5oIgorI2luY2x1ZGUgImlndF9hdXguaCIKKyNp bmNsdWRlICJpZ3RfY29yZS5oIgorI2luY2x1ZGUgImlndF92M2QuaCIKKyNpbmNsdWRlICJpb2N0 bF93cmFwcGVycy5oIgorI2luY2x1ZGUgImludGVsX3JlZy5oIgorI2luY2x1ZGUgImludGVsX2No aXBzZXQuaCIKKyNpbmNsdWRlICJ2M2RfZHJtLmgiCisKKyNpZiBORVdfQ09OVEVYVF9QQVJBTV9O T19FUlJPUl9DQVBUVVJFX0FQSQorI2RlZmluZSBMT0NBTF9DT05URVhUX1BBUkFNX05PX0VSUk9S X0NBUFRVUkUgMHg0CisjZW5kaWYKKworLyoqCisgKiBTRUNUSU9OOmlndF92M2QKKyAqIEBzaG9y dF9kZXNjcmlwdGlvbjogVjNEIHN1cHBvcnQgbGlicmFyeQorICogQHRpdGxlOiBWM0QKKyAqIEBp bmNsdWRlOiBpZ3QuaAorICoKKyAqIFRoaXMgbGlicmFyeSBwcm92aWRlcyB2YXJpb3VzIGF1eGls aWFyeSBoZWxwZXIgZnVuY3Rpb25zIGZvciB3cml0aW5nIFYzRAorICogdGVzdHMuCisgKi8KKwor c3RydWN0IHYzZF9ibyAqCitpZ3RfdjNkX2NyZWF0ZV9ibyhpbnQgZmQsIHNpemVfdCBzaXplKQor eworCXN0cnVjdCB2M2RfYm8gKmJvID0gY2FsbG9jKDEsIHNpemVvZigqYm8pKTsKKworCXN0cnVj dCBkcm1fdjNkX2NyZWF0ZV9ibyBjcmVhdGUgPSB7CisJCS5zaXplID0gc2l6ZSwKKwl9OworCisJ ZG9faW9jdGwoZmQsIERSTV9JT0NUTF9WM0RfQ1JFQVRFX0JPLCAmY3JlYXRlKTsKKworCWJvLT5o YW5kbGUgPSBjcmVhdGUuaGFuZGxlOworCWJvLT5vZmZzZXQgPSBjcmVhdGUub2Zmc2V0OworCWJv LT5zaXplID0gc2l6ZTsKKworCXJldHVybiBibzsKK30KKwordm9pZAoraWd0X3YzZF9mcmVlX2Jv KGludCBmZCwgc3RydWN0IHYzZF9ibyAqYm8pCit7CisJaWYgKGJvLT5tYXApCisJCW11bm1hcChi by0+bWFwLCBiby0+c2l6ZSk7CisJZ2VtX2Nsb3NlKGZkLCBiby0+aGFuZGxlKTsKKwlmcmVlKGJv KTsKK30KKwordWludDMyX3QKK2lndF92M2RfZ2V0X2JvX29mZnNldChpbnQgZmQsIHVpbnQzMl90 IGhhbmRsZSkKK3sKKwlzdHJ1Y3QgZHJtX3YzZF9nZXRfYm9fb2Zmc2V0IGdldCA9IHsKKwkJLmhh bmRsZSA9IGhhbmRsZSwKKwl9OworCisJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9WM0RfR0VUX0JP X09GRlNFVCwgJmdldCk7CisKKwlyZXR1cm4gZ2V0Lm9mZnNldDsKK30KKwordWludDMyX3QKK2ln dF92M2RfZ2V0X3BhcmFtKGludCBmZCwgZW51bSBkcm1fdjNkX3BhcmFtIHBhcmFtKQoreworCXN0 cnVjdCBkcm1fdjNkX2dldF9wYXJhbSBnZXQgPSB7CisJCS5wYXJhbSA9IHBhcmFtLAorCX07CisK Kwlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX1YzRF9HRVRfUEFSQU0sICZnZXQpOworCisJcmV0dXJu IGdldC52YWx1ZTsKK30KKwordm9pZCAqCitpZ3RfdjNkX21tYXBfYm8oaW50IGZkLCB1aW50MzJf dCBoYW5kbGUsIHVpbnQzMl90IHNpemUsIHVuc2lnbmVkIHByb3QpCit7CisJc3RydWN0IGRybV92 M2RfbW1hcF9ibyBtbWFwX2JvID0geworCQkuaGFuZGxlID0gaGFuZGxlLAorCX07CisJdm9pZCAq cHRyOworCisJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9WM0RfTU1BUF9CTywgJm1tYXBfYm8pOwor CisJcHRyID0gbW1hcCgwLCBzaXplLCBwcm90LCBNQVBfU0hBUkVELCBmZCwgbW1hcF9iby5vZmZz ZXQpOworCWlmIChwdHIgPT0gTUFQX0ZBSUxFRCkKKwkJcmV0dXJuIE5VTEw7CisJZWxzZQorCQly ZXR1cm4gcHRyOworfQorCit2b2lkIGlndF92M2RfYm9fbW1hcChpbnQgZmQsIHN0cnVjdCB2M2Rf Ym8gKmJvKQoreworCWJvLT5tYXAgPSBpZ3RfdjNkX21tYXBfYm8oZmQsIGJvLT5oYW5kbGUsIGJv LT5zaXplLAorCQkJCSAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7CisJaWd0X2Fzc2VydChiby0+ bWFwKTsKK30KZGlmZiAtLWdpdCBhL2xpYi9pZ3RfdjNkLmggYi9saWIvaWd0X3YzZC5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjA0Mjk5NTEwM2NjCi0tLSAvZGV2 L251bGwKKysrIGIvbGliL2lndF92M2QuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJp Z2h0IMKpIDIwMTYgQnJvYWRjb20KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBh cmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw b3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9W SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisg KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1Ig Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI RVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUg U09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBJR1RfVjNEX0gKKyNkZWZpbmUgSUdUX1YzRF9ICisK KyNpbmNsdWRlICJ2M2RfZHJtLmgiCisKK3N0cnVjdCB2M2RfYm8geworCWludCBoYW5kbGU7CisJ dWludDMyX3Qgb2Zmc2V0OworCXVpbnQzMl90IHNpemU7CisJdm9pZCAqbWFwOworfTsKKworc3Ry dWN0IHYzZF9ibyAqaWd0X3YzZF9jcmVhdGVfYm8oaW50IGZkLCBzaXplX3Qgc2l6ZSk7Cit2b2lk IGlndF92M2RfZnJlZV9ibyhpbnQgZmQsIHN0cnVjdCB2M2RfYm8gKmJvKTsKKworLyogSU9DVEwg d3JhcHBlcnMgKi8KK3VpbnQzMl90IGlndF92M2RfZ2V0X2JvX29mZnNldChpbnQgZmQsIHVpbnQz Ml90IGhhbmRsZSk7Cit1aW50MzJfdCBpZ3RfdjNkX2dldF9wYXJhbShpbnQgZmQsIGVudW0gZHJt X3YzZF9wYXJhbSBwYXJhbSk7Cit2b2lkICppZ3RfdjNkX21tYXBfYm8oaW50IGZkLCB1aW50MzJf dCBoYW5kbGUsIHVpbnQzMl90IHNpemUsIHVuc2lnbmVkIHByb3QpOworCit2b2lkIGlndF92M2Rf Ym9fbW1hcChpbnQgZmQsIHN0cnVjdCB2M2RfYm8gKmJvKTsKKworI2VuZGlmIC8qIElHVF9WM0Rf SCAqLwpkaWZmIC0tZ2l0IGEvbGliL21lc29uLmJ1aWxkIGIvbGliL21lc29uLmJ1aWxkCmluZGV4 IDg5NjFjYTQ5NGFmOC4uMTlmNWQ1MWNlZWFkIDEwMDY0NAotLS0gYS9saWIvbWVzb24uYnVpbGQK KysrIGIvbGliL21lc29uLmJ1aWxkCkBAIC00OCw2ICs0OCw3IEBAIGxpYl9zb3VyY2VzID0gWwog CSdpZ3RfZHVtbXlsb2FkLmMnLAogCSd1d2lsZG1hdC91d2lsZG1hdC5jJywKIAknaWd0X2ttb2Qu YycsCisJJ2lndF92M2QuYycsCiAJJ2lndF92YzQuYycsCiAJJ2lndF9wc3IuYycsCiBdCi0tIAoy LjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmln dC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=