From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8CC7489D8E for ; Fri, 5 Apr 2019 20:14:06 +0000 (UTC) From: Kevin Strasser Date: Fri, 5 Apr 2019 13:14:04 -0700 Message-Id: <1554495245-27955-3-git-send-email-kevin.strasser@intel.com> In-Reply-To: <1554495245-27955-1-git-send-email-kevin.strasser@intel.com> References: <1554495245-27955-1-git-send-email-kevin.strasser@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH 2/3] lib/igt_fb: Add support for fp16 formats through conversion 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: Rm9sbG93IGRlc2lnbiBvZiBQMDF4IGNvbnZlcnNpb24gdG8gc3VwcG9ydCB0ZXN0cyBuZWVkaW5n IHBpeGVsIGRhdGEgaW4gZnAxNgooaGFsZiBmbG9hdCA2NCBicHApLgoKcmZjMjoKLSBDb252ZXJ0 IHdob2xlIHJvd3Mgb2YgcGl4ZWxzIGlmIHBvc3NpYmxlIChNYWFydGVuKQotIFRyZWF0IHJnYngg bGlrZSByZ2JhLCBsZXQgaGFyZHdhcmUgaWdub3JlIGFscGhhIChNYWFydGVuKQoKU2lnbmVkLW9m Zi1ieTogS2V2aW4gU3RyYXNzZXIgPGtldmluLnN0cmFzc2VyQGludGVsLmNvbT4KUmV2aWV3ZWQt Ynk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQog bGliL2lndF9mYi5jIHwgMTQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystCiBsaWIvaWd0X2ZiLmggfCAgIDEgKwogMiBmaWxlcyBjaGFu Z2VkLCAxNDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpYi9p Z3RfZmIuYyBiL2xpYi9pZ3RfZmIuYwppbmRleCA2YWRmNDIyLi43MmUzNjZhIDEwMDY0NAotLS0g YS9saWIvaWd0X2ZiLmMKKysrIGIvbGliL2lndF9mYi5jCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j bHVkZSAiaWd0X2F1eC5oIgogI2luY2x1ZGUgImlndF9jb2xvcl9lbmNvZGluZy5oIgogI2luY2x1 ZGUgImlndF9mYi5oIgorI2luY2x1ZGUgImlndF9oYWxmZmxvYXQuaCIKICNpbmNsdWRlICJpZ3Rf a21zLmgiCiAjaW5jbHVkZSAiaWd0X21hdHJpeC5oIgogI2luY2x1ZGUgImlndF92YzQuaCIKQEAg LTE2MSw2ICsxNjIsMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmb3JtYXRfZGVzY19zdHJ1Y3Qg ewogCSAgLm51bV9wbGFuZXMgPSAxLCAucGxhbmVfYnBwID0geyAzMiwgfSwKIAkgIC5oc3ViID0g MSwgLnZzdWIgPSAxLAogCX0sCisJeyAubmFtZSA9ICJYUkdCMTYxNjE2MTZGIiwgLmRlcHRoID0g LTEsIC5kcm1faWQgPSBEUk1fRk9STUFUX1hSR0IxNjE2MTYxNkYsCisJICAuY2Fpcm9faWQgPSBD QUlST19GT1JNQVRfUkdCQTEyOEYsCisJICAubnVtX3BsYW5lcyA9IDEsIC5wbGFuZV9icHAgPSB7 IDY0LCB9LAorCX0sCisJeyAubmFtZSA9ICJBUkdCMTYxNjE2MTZGIiwgLmRlcHRoID0gLTEsIC5k cm1faWQgPSBEUk1fRk9STUFUX0FSR0IxNjE2MTYxNkYsCisJICAuY2Fpcm9faWQgPSBDQUlST19G T1JNQVRfUkdCQTEyOEYsCisJICAubnVtX3BsYW5lcyA9IDEsIC5wbGFuZV9icHAgPSB7IDY0LCB9 LAorCX0sCisJeyAubmFtZSA9ICJYQkdSMTYxNjE2MTZGIiwgLmRlcHRoID0gLTEsIC5kcm1faWQg PSBEUk1fRk9STUFUX1hCR1IxNjE2MTYxNkYsCisJICAuY2Fpcm9faWQgPSBDQUlST19GT1JNQVRf UkdCQTEyOEYsCisJICAubnVtX3BsYW5lcyA9IDEsIC5wbGFuZV9icHAgPSB7IDY0LCB9LAorCX0s CisJeyAubmFtZSA9ICJBQkdSMTYxNjE2MTZGIiwgLmRlcHRoID0gLTEsIC5kcm1faWQgPSBEUk1f Rk9STUFUX0FCR1IxNjE2MTYxNkYsCisJICAuY2Fpcm9faWQgPSBDQUlST19GT1JNQVRfUkdCQTEy OEYsCisJICAubnVtX3BsYW5lcyA9IDEsIC5wbGFuZV9icHAgPSB7IDY0LCB9LAorCX0sCiAJeyAu bmFtZSA9ICJOVjEyIiwgLmRlcHRoID0gLTEsIC5kcm1faWQgPSBEUk1fRk9STUFUX05WMTIsCiAJ ICAuY2Fpcm9faWQgPSBDQUlST19GT1JNQVRfUkdCMjQsCiAJICAubnVtX3BsYW5lcyA9IDIsIC5w bGFuZV9icHAgPSB7IDgsIDE2LCB9LApAQCAtNzYzLDcgKzc4MCw4IEBAIHN0YXRpYyBpbnQgY3Jl YXRlX2JvX2Zvcl9mYihzdHJ1Y3QgaWd0X2ZiICpmYikKIAkgKiB0aGVtLCBzbyB3ZSBuZWVkIHRv IG1ha2Ugc3VyZSB0byB1c2UgYSBkZXZpY2UgQk8gdGhlbi4KIAkgKi8KIAlpZiAoZmItPm1vZGlm aWVyIHx8IGZiLT5zaXplIHx8IGZiLT5zdHJpZGVzWzBdIHx8Ci0JICAgIChpc19pOTE1X2Rldmlj ZShmZCkgJiYgaWd0X2Zvcm1hdF9pc195dXYoZmItPmRybV9mb3JtYXQpKSkKKwkgICAgKGlzX2k5 MTVfZGV2aWNlKGZkKSAmJiBpZ3RfZm9ybWF0X2lzX3l1dihmYi0+ZHJtX2Zvcm1hdCkpIHx8CisJ ICAgIChpc19pOTE1X2RldmljZShmZCkgJiYgaWd0X2Zvcm1hdF9pc19mcDE2KGZiLT5kcm1fZm9y bWF0KSkpCiAJCWRldmljZV9ibyA9IHRydWU7CiAKIAkvKiBTZXRzIG9mZmV0cyBhbmQgc3RyaWRl IGlmIG5lY2Vzc2FyeS4gKi8KQEAgLTI1NTcsNiArMjU3NSwxMDIgQEAgc3RhdGljIHZvaWQgY29u dmVydF9mbG9hdF90b19ZNDEwKHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQsIGJvb2wgYWxwaGEpCiAJ fQogfQogCisvKiB7IFIsIEcsIEIsIFggfSAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIg c3dpenpsZV9yZ2J4W10gPSB7IDAsIDEsIDIsIDMgfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBj aGFyIHN3aXp6bGVfYmdyeFtdID0geyAyLCAxLCAwLCAzIH07CisKK3N0YXRpYyBjb25zdCB1bnNp Z25lZCBjaGFyICpyZ2J4X3N3aXp6bGUodWludDMyX3QgZm9ybWF0KQoreworCXN3aXRjaCAoZm9y bWF0KSB7CisJZGVmYXVsdDoKKwljYXNlIERSTV9GT1JNQVRfWFJHQjE2MTYxNjE2RjoKKwljYXNl IERSTV9GT1JNQVRfQVJHQjE2MTYxNjE2RjoKKwkJcmV0dXJuIHN3aXp6bGVfYmdyeDsKKwljYXNl IERSTV9GT1JNQVRfWEJHUjE2MTYxNjE2RjoKKwljYXNlIERSTV9GT1JNQVRfQUJHUjE2MTYxNjE2 RjoKKwkJcmV0dXJuIHN3aXp6bGVfcmdieDsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGNvbnZlcnRf ZnAxNl90b19mbG9hdChzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQoreworCWludCBpLCBqOworCXVp bnQxNl90ICpmcDE2OworCWZsb2F0ICpwdHIgPSBjdnQtPmRzdC5wdHI7CisJdW5zaWduZWQgaW50 IGZsb2F0X3N0cmlkZSA9IGN2dC0+ZHN0LmZiLT5zdHJpZGVzWzBdIC8gc2l6ZW9mKCpwdHIpOwor CXVuc2lnbmVkIGludCBmcDE2X3N0cmlkZSA9IGN2dC0+c3JjLmZiLT5zdHJpZGVzWzBdIC8gc2l6 ZW9mKCpmcDE2KTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICpzd3ogPSByZ2J4X3N3aXp6bGUoY3Z0 LT5zcmMuZmItPmRybV9mb3JtYXQpOworCWJvb2wgbmVlZHNfcmVzd2l6emxlID0gc3d6ICE9IHN3 aXp6bGVfcmdieDsKKworCXVpbnQxNl90ICpidWYgPSBjb252ZXJ0X3NyY19nZXQoY3Z0KTsKKwlm cDE2ID0gYnVmICsgY3Z0LT5zcmMuZmItPm9mZnNldHNbMF0gLyBzaXplb2YoKmJ1Zik7CisKKwlm b3IgKGkgPSAwOyBpIDwgY3Z0LT5kc3QuZmItPmhlaWdodDsgaSsrKSB7CisJCWlmIChuZWVkc19y ZXN3aXp6bGUpIHsKKwkJCWNvbnN0IHVpbnQxNl90ICpmcDE2X3RtcCA9IGZwMTY7CisJCQlmbG9h dCAqcmdiX3RtcCA9IHB0cjsKKworCQkJZm9yIChqID0gMDsgaiA8IGN2dC0+ZHN0LmZiLT53aWR0 aDsgaisrKSB7CisJCQkJc3RydWN0IGlndF92ZWM0IHJnYjsKKworCQkJCWlndF9oYWxmX3RvX2Zs b2F0KGZwMTZfdG1wLCByZ2IuZCwgNCk7CisKKwkJCQlyZ2JfdG1wWzBdID0gcmdiLmRbc3d6WzBd XTsKKwkJCQlyZ2JfdG1wWzFdID0gcmdiLmRbc3d6WzFdXTsKKwkJCQlyZ2JfdG1wWzJdID0gcmdi LmRbc3d6WzJdXTsKKwkJCQlyZ2JfdG1wWzNdID0gcmdiLmRbc3d6WzNdXTsKKworCQkJCXJnYl90 bXAgKz0gNDsKKwkJCQlmcDE2X3RtcCArPSA0OworCQkJfQorCQl9IGVsc2UgeworCQkJaWd0X2hh bGZfdG9fZmxvYXQoZnAxNiwgcHRyLCBjdnQtPmRzdC5mYi0+d2lkdGggKiA0KTsKKwkJfQorCisJ CXB0ciArPSBmbG9hdF9zdHJpZGU7CisJCWZwMTYgKz0gZnAxNl9zdHJpZGU7CisJfQorCisJY29u dmVydF9zcmNfcHV0KGN2dCwgYnVmKTsKK30KKworc3RhdGljIHZvaWQgY29udmVydF9mbG9hdF90 b19mcDE2KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCit7CisJaW50IGksIGo7CisJdWludDE2X3Qg KmZwMTYgPSBjdnQtPmRzdC5wdHIgKyBjdnQtPmRzdC5mYi0+b2Zmc2V0c1swXTsKKwljb25zdCBm bG9hdCAqcHRyID0gY3Z0LT5zcmMucHRyOworCXVuc2lnbmVkIGZsb2F0X3N0cmlkZSA9IGN2dC0+ c3JjLmZiLT5zdHJpZGVzWzBdIC8gc2l6ZW9mKCpwdHIpOworCXVuc2lnbmVkIGZwMTZfc3RyaWRl ID0gY3Z0LT5kc3QuZmItPnN0cmlkZXNbMF0gLyBzaXplb2YoKmZwMTYpOworCWNvbnN0IHVuc2ln bmVkIGNoYXIgKnN3eiA9IHJnYnhfc3dpenpsZShjdnQtPmRzdC5mYi0+ZHJtX2Zvcm1hdCk7CisJ Ym9vbCBuZWVkc19yZXN3aXp6bGUgPSBzd3ogIT0gc3dpenpsZV9yZ2J4OworCisJZm9yIChpID0g MDsgaSA8IGN2dC0+ZHN0LmZiLT5oZWlnaHQ7IGkrKykgeworCQlpZiAobmVlZHNfcmVzd2l6emxl KSB7CisJCQljb25zdCBmbG9hdCAqcmdiX3RtcCA9IHB0cjsKKwkJCXVpbnQxNl90ICpmcDE2X3Rt cCA9IGZwMTY7CisKKwkJCWZvciAoaiA9IDA7IGogPCBjdnQtPmRzdC5mYi0+d2lkdGg7IGorKykg eworCQkJCXN0cnVjdCBpZ3RfdmVjNCByZ2I7CisKKwkJCQlyZ2IuZFswXSA9IHJnYl90bXBbc3d6 WzBdXTsKKwkJCQlyZ2IuZFsxXSA9IHJnYl90bXBbc3d6WzFdXTsKKwkJCQlyZ2IuZFsyXSA9IHJn Yl90bXBbc3d6WzJdXTsKKwkJCQlyZ2IuZFszXSA9IHJnYl90bXBbc3d6WzNdXTsKKworCQkJCWln dF9mbG9hdF90b19oYWxmKHJnYi5kLCBmcDE2X3RtcCwgNCk7CisKKwkJCQlyZ2JfdG1wICs9IDQ7 CisJCQkJZnAxNl90bXAgKz0gNDsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWlndF9mbG9hdF90b19o YWxmKHB0ciwgZnAxNiwgY3Z0LT5kc3QuZmItPndpZHRoICogNCk7CisJCX0KKworCQlwdHIgKz0g ZmxvYXRfc3RyaWRlOworCQlmcDE2ICs9IGZwMTZfc3RyaWRlOworCX0KK30KKwogc3RhdGljIHZv aWQgY29udmVydF9waXhtYW4oc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKIHsKIAlwaXhtYW5fZm9y bWF0X2NvZGVfdCBzcmNfcGl4bWFuID0gZHJtX2Zvcm1hdF90b19waXhtYW4oY3Z0LT5zcmMuZmIt PmRybV9mb3JtYXQpOwpAQCAtMjY2MCw2ICsyNzc0LDEyIEBAIHN0YXRpYyB2b2lkIGZiX2NvbnZl cnQoc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKIAkJY2FzZSBEUk1fRk9STUFUX1k0MTY6CiAJCQlj b252ZXJ0X3l1djE2X3RvX2Zsb2F0KGN2dCwgdHJ1ZSk7CiAJCQlyZXR1cm47CisJCWNhc2UgRFJN X0ZPUk1BVF9YUkdCMTYxNjE2MTZGOgorCQljYXNlIERSTV9GT1JNQVRfWEJHUjE2MTYxNjE2RjoK KwkJY2FzZSBEUk1fRk9STUFUX0FSR0IxNjE2MTYxNkY6CisJCWNhc2UgRFJNX0ZPUk1BVF9BQkdS MTYxNjE2MTZGOgorCQkJY29udmVydF9mcDE2X3RvX2Zsb2F0KGN2dCk7CisJCQlyZXR1cm47CiAJ CX0KIAl9IGVsc2UgaWYgKGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0ID09IElHVF9GT1JNQVRfRkxP QVQpIHsKIAkJc3dpdGNoIChjdnQtPmRzdC5mYi0+ZHJtX2Zvcm1hdCkgewpAQCAtMjY4Myw2ICsy ODAzLDEyIEBAIHN0YXRpYyB2b2lkIGZiX2NvbnZlcnQoc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkK IAkJY2FzZSBEUk1fRk9STUFUX1k0MTY6CiAJCQljb252ZXJ0X2Zsb2F0X3RvX3l1djE2KGN2dCwg dHJ1ZSk7CiAJCQlyZXR1cm47CisJCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMTYxNjE2MTZGOgorCQlj YXNlIERSTV9GT1JNQVRfWEJHUjE2MTYxNjE2RjoKKwkJY2FzZSBEUk1fRk9STUFUX0FSR0IxNjE2 MTYxNkY6CisJCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZGOgorCQkJY29udmVydF9mbG9h dF90b19mcDE2KGN2dCk7CisJCQlyZXR1cm47CiAJCX0KIAl9CiAKQEAgLTI4NDYsNiArMjk3Miw3 IEBAIGNhaXJvX3N1cmZhY2VfdCAqaWd0X2dldF9jYWlyb19zdXJmYWNlKGludCBmZCwgc3RydWN0 IGlndF9mYiAqZmIpCiAKIAlpZiAoZmItPmNhaXJvX3N1cmZhY2UgPT0gTlVMTCkgewogCQlpZiAo aWd0X2Zvcm1hdF9pc195dXYoZmItPmRybV9mb3JtYXQpIHx8CisJCSAgICBpZ3RfZm9ybWF0X2lz X2ZwMTYoZmItPmRybV9mb3JtYXQpIHx8CiAJCSAgICAoKGYtPmNhaXJvX2lkID09IENBSVJPX0ZP Uk1BVF9JTlZBTElEKSAmJgogCQkgICAgIChmLT5waXhtYW5faWQgIT0gUElYTUFOX2ludmFsaWQp KSkKIAkJCWNyZWF0ZV9jYWlyb19zdXJmYWNlX19jb252ZXJ0KGZkLCBmYik7CkBAIC0zMTY2LDYg KzMyOTMsMjUgQEAgYm9vbCBpZ3RfZm9ybWF0X2lzX3l1dih1aW50MzJfdCBkcm1fZm9ybWF0KQog fQogCiAvKioKKyAqIGlndF9mb3JtYXRfaXNfZnAxNgorICogQGRybV9mb3JtYXQ6IGRybSBmb3Vy Y2MKKyAqCisgKiBDaGVjayBpZiB0aGUgZm9ybWF0IGlzIGZwMTYuCisgKi8KK2Jvb2wgaWd0X2Zv cm1hdF9pc19mcDE2KHVpbnQzMl90IGRybV9mb3JtYXQpCit7CisJc3dpdGNoIChkcm1fZm9ybWF0 KSB7CisJY2FzZSBEUk1fRk9STUFUX1hSR0IxNjE2MTYxNkY6CisJY2FzZSBEUk1fRk9STUFUX0FS R0IxNjE2MTYxNkY6CisJY2FzZSBEUk1fRk9STUFUX1hCR1IxNjE2MTYxNkY6CisJY2FzZSBEUk1f Rk9STUFUX0FCR1IxNjE2MTYxNkY6CisJCXJldHVybiB0cnVlOworCWRlZmF1bHQ6CisJCXJldHVy biBmYWxzZTsKKwl9Cit9CisKKy8qKgogICogaWd0X2Zvcm1hdF9wbGFuZV9icHA6CiAgKiBAZHJt X2Zvcm1hdDogZHJtIGZvdXJjYwogICogQHBsYW5lOiBmb3JtYXQgcGxhbmUgaW5kZXgKZGlmZiAt LWdpdCBhL2xpYi9pZ3RfZmIuaCBiL2xpYi9pZ3RfZmIuaAppbmRleCBiYTIyYmQ2Li5hZGVmZWJl IDEwMDY0NAotLS0gYS9saWIvaWd0X2ZiLmgKKysrIGIvbGliL2lndF9mYi5oCkBAIC0xODksNiAr MTg5LDcgQEAgdWludDMyX3QgaWd0X2RybV9mb3JtYXRfdG9fYnBwKHVpbnQzMl90IGRybV9mb3Jt YXQpOwogY29uc3QgY2hhciAqaWd0X2Zvcm1hdF9zdHIodWludDMyX3QgZHJtX2Zvcm1hdCk7CiBi b29sIGlndF9mYl9zdXBwb3J0ZWRfZm9ybWF0KHVpbnQzMl90IGRybV9mb3JtYXQpOwogYm9vbCBp Z3RfZm9ybWF0X2lzX3l1dih1aW50MzJfdCBkcm1fZm9ybWF0KTsKK2Jvb2wgaWd0X2Zvcm1hdF9p c19mcDE2KHVpbnQzMl90IGRybV9mb3JtYXQpOwogaW50IGlndF9mb3JtYXRfcGxhbmVfYnBwKHVp bnQzMl90IGRybV9mb3JtYXQsIGludCBwbGFuZSk7CiB2b2lkIGlndF9mb3JtYXRfYXJyYXlfZmls bCh1aW50MzJfdCAqKmZvcm1hdHNfYXJyYXksIHVuc2lnbmVkIGludCAqY291bnQsCiAJCQkgICBi b29sIGFsbG93X3l1dik7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pZ3QtZGV2