From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 02/11] drm/msm: Improve the zap shader Date: Tue, 7 Mar 2017 09:58:11 -0700 Message-ID: <1488905900-6603-3-git-send-email-jcrouse@codeaurora.org> References: <1486402779-9024-1-git-send-email-jcrouse@codeaurora.org> <1488905900-6603-1-git-send-email-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1488905900-6603-1-git-send-email-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org U2ltcGx5IHRoZSBjb2RlLCB1c2Ugc25wcmludGYgY29ycmVjdCBhbmQgbWFrZSBzdXJlIHRoYXQg d2UgbWVtc2V0CnRoZSByZXN0IG9mIHRoZSBzZWdtZW50IGlmIHRoZSBtZW1vcnkgc2l6ZSBpbiB0 aGUgRUxGIGZpbGUgaXMgbGFyZ2VyCnRoYW4gdGhlIGZpbGUgc2l6ZS4KClNpZ25lZC1vZmYtYnk6 IEpvcmRhbiBDcm91c2UgPGpjcm91c2VAY29kZWF1cm9yYS5vcmc+Ci0tLQogYXJjaC9hcm02NC9i b290L2R0cy9xY29tL21zbTg5OTYuZHRzaSB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Fk cmVuby9hNXh4X2dwdS5jIHwgNzAgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0K IDIgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL21zbTg5OTYuZHRzaSBiL2FyY2gvYXJt NjQvYm9vdC9kdHMvcWNvbS9tc204OTk2LmR0c2kKaW5kZXggYjAwNDI3NS4uMjkwMzAyMCAxMDA2 NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL21zbTg5OTYuZHRzaQorKysgYi9hcmNo L2FybTY0L2Jvb3QvZHRzL3Fjb20vbXNtODk5Ni5kdHNpCkBAIC05MTUsOCArOTE1LDggQEAKIAkJ CQl9OwogCQkJfTsKIAotCQkJcWNvbSx6YXAtc2hhZGVyIHsKLQkJCQljb21wYXRpYmxlID0gInFj b20semFwLXNoYWRlciI7CisJCQl6YXAtc2hhZGVyIHsKKwkJCQljb21wYXRpYmxlID0gInphcC1z aGFkZXIiOwogCQkJCW1lbW9yeS1yZWdpb24gPSA8JnBlcmlwaGVyYWxfcmVzZXJ2ZWQ+OwogCiAJ CQkJcWNvbSxmaXJtd2FyZSA9ICJhNTMwX3phcCI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4 eF9ncHUuYwppbmRleCBkZmM5NzM0Li45ZDc1NGE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5v L2E1eHhfZ3B1LmMKQEAgLTMxLDExICszMSwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX2NoZWNr X3NlZ21lbnQoY29uc3Qgc3RydWN0IGVsZjMyX3BoZHIgKnBoZHIpCiAJCXBoZHItPnBfbWVtc3op OwogfQogCi1zdGF0aWMgaW50IF9fcGlsX3R6X2xvYWRfaW1hZ2Uoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldiwKK3N0YXRpYyBpbnQgemFwX2xvYWRfc2VnbWVudHMoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldiwKIAkJY29uc3Qgc3RydWN0IGZpcm13YXJlICptZHQsIGNvbnN0IGNoYXIg KmZ3bmFtZSwKIAkJdm9pZCAqZndwdHIsIHNpemVfdCBmd19zaXplLCB1bnNpZ25lZCBsb25nIGZ3 X21pbl9hZGRyKQogewotCWNoYXIgc3RyWzY0XSA9IHsgMCB9OworCWNoYXIgZmlsZW5hbWVbNjRd OwogCWNvbnN0IHN0cnVjdCBlbGYzMl9oZHIgKmVoZHIgPSAoc3RydWN0IGVsZjMyX2hkciAqKSBt ZHQtPmRhdGE7CiAJY29uc3Qgc3RydWN0IGVsZjMyX3BoZHIgKnBoZHJzID0gKHN0cnVjdCBlbGYz Ml9waGRyICopIChlaGRyICsgMSk7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKQEAgLTUz LDE2ICs1MywxOCBAQCBzdGF0aWMgaW50IF9fcGlsX3R6X2xvYWRfaW1hZ2Uoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldiwKIAkJb2Zmc2V0ID0gKHBoZHItPnBfcGFkZHIgLSBmd19taW5fYWRk cik7CiAKIAkJLyogUmVxdWVzdCB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBzZWdtZW50ICovCi0J CXNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0cikgLSAxLCAiJXMuYiUwMmQiLCBmd25hbWUsIGkpOwor CQlzbnByaW50ZihmaWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIiVzLmIlMDJkIiwgZnduYW1l LCBpKTsKIAotCQlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgc3RyLCAmcGRldi0+ZGV2KTsK KwkJcmV0ID0gcmVxdWVzdF9maXJtd2FyZSgmZncsIGZpbGVuYW1lLCAmcGRldi0+ZGV2KTsKIAkJ aWYgKHJldCkgewotCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGxvYWQgc2VnbWVu dCAlc1xuIiwgc3RyKTsKKwkJCURSTV9ERVZfRVJST1IoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBs b2FkIHNlZ21lbnQgJXNcbiIsCisJCQkJZmlsZW5hbWUpOwogCQkJYnJlYWs7CiAJCX0KIAogCQlp ZiAob2Zmc2V0ICsgZnctPnNpemUgPiBmd19zaXplKSB7Ci0JCQlkZXZfZXJyKCZwZGV2LT5kZXYs ICJTZWdtZW50ICVzIGlzIHRvbyBiaWdcbiIsIHN0cik7CisJCQlEUk1fREVWX0VSUk9SKCZwZGV2 LT5kZXYsICJTZWdtZW50ICVzIGlzIHRvbyBiaWdcbiIsCisJCQkJZmlsZW5hbWUpOwogCQkJcmV0 ID0gLUVJTlZBTDsKIAkJCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCQkJYnJlYWs7CkBAIC03MCwx NSArNzIsMTkgQEAgc3RhdGljIGludCBfX3BpbF90el9sb2FkX2ltYWdlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYsCiAKIAkJLyogQ29weSB0aGUgc2VnbWVudCBpbnRvIHBsYWNlICovCiAJ CW1lbWNweShmd3B0ciArIG9mZnNldCwgZnctPmRhdGEsIGZ3LT5zaXplKTsKKworCQlpZiAocGhk ci0+cF9tZW1zeiA+IHBoZHItPnBfZmlsZXN6KQorCQkJbWVtc2V0KGZ3cHRyICsgZnctPnNpemUs IDAsCisJCQkJcGhkci0+cF9tZW1zeiAtIHBoZHItPnBfZmlsZXN6KTsKIAkJcmVsZWFzZV9maXJt d2FyZShmdyk7CiAJfQogCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBfcGlsX3R6X2xv YWRfaW1hZ2Uoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyBpbnQgemFwX2xv YWRfbWR0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7Ci0JY2hhciBzdHJbNjRdID0g eyAwIH07CisJY2hhciBmaWxlbmFtZVs2NF07CiAJY29uc3QgY2hhciAqZnduYW1lOwogCWNvbnN0 IHN0cnVjdCBlbGYzMl9oZHIgKmVoZHI7CiAJY29uc3Qgc3RydWN0IGVsZjMyX3BoZHIgKnBoZHJz OwpAQCAtODYsNyArOTIsNiBAQCBzdGF0aWMgaW50IF9waWxfdHpfbG9hZF9pbWFnZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXBoeXNfYWRkcl90IGZ3X21pbl9hZGRyLCBmd19tYXhf YWRkcjsKIAlkbWFfYWRkcl90IGZ3X3BoeXM7CiAJc2l6ZV90IGZ3X3NpemU7Ci0JdTMyIHBhc19p ZDsKIAl2b2lkICpwdHI7CiAJaW50IGksIHJldDsKIApAQCAtOTQsMzUgKzk5LDI5IEBAIHN0YXRp YyBpbnQgX3BpbF90el9sb2FkX2ltYWdlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJ CXJldHVybiAtRU5PREVWOwogCiAJaWYgKCFxY29tX3NjbV9pc19hdmFpbGFibGUoKSkgewotCQlk ZXZfZXJyKCZwZGV2LT5kZXYsICJTQ00gaXMgbm90IGF2YWlsYWJsZVxuIik7Ci0JCXJldHVybiAt RUlOVkFMOworCQlEUk1fREVWX0VSUk9SKCZwZGV2LT5kZXYsICJTQ00gaXMgbm90IGF2YWlsYWJs ZVxuIik7CisJCXJldHVybiAtRVBST0JFX0RFRkVSOwogCX0KIAogCXJldCA9IG9mX3Jlc2VydmVk X21lbV9kZXZpY2VfaW5pdCgmcGRldi0+ZGV2KTsKLQogCWlmIChyZXQpIHsKLQkJZGV2X2Vycigm cGRldi0+ZGV2LCAiVW5hYmxlIHRvIHNldCB1cCB0aGUgcmVzZXJ2ZWQgbWVtb3J5XG4iKTsKKwkJ RFJNX0RFVl9FUlJPUigmcGRldi0+ZGV2LCAiVW5hYmxlIHRvIHNldCB1cCB0aGUgcmVzZXJ2ZWQg bWVtb3J5XG4iKTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKIAkvKiBHZXQgdGhlIGZpcm13YXJlIGFu ZCBQQVMgaWQgZnJvbSB0aGUgZGV2aWNlIG5vZGUgKi8KIAlpZiAob2ZfcHJvcGVydHlfcmVhZF9z dHJpbmcocGRldi0+ZGV2Lm9mX25vZGUsICJxY29tLGZpcm13YXJlIiwKIAkJJmZ3bmFtZSkpIHsK LQkJZGV2X2VycigmcGRldi0+ZGV2LCAiQ291bGQgbm90IHJlYWQgYSBmaXJtd2FyZSBuYW1lXG4i KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKHBk ZXYtPmRldi5vZl9ub2RlLCAicWNvbSxwYXMtaWQiLCAmcGFzX2lkKSkgewotCQlkZXZfZXJyKCZw ZGV2LT5kZXYsICJDb3VsZCBub3QgcmVhZCB0aGUgcGFzIElEXG4iKTsKKwkJRFJNX0RFVl9FUlJP UigmcGRldi0+ZGV2LCAiQ291bGQgbm90IHJlYWQgYSBmaXJtd2FyZSBuYW1lXG4iKTsKIAkJcmV0 dXJuIC1FSU5WQUw7CiAJfQogCi0Jc25wcmludGYoc3RyLCBzaXplb2Yoc3RyKSAtIDEsICIlcy5t ZHQiLCBmd25hbWUpOworCXNucHJpbnRmKGZpbGVuYW1lLCBzaXplb2YoZmlsZW5hbWUpLCAiJXMu bWR0IiwgZnduYW1lKTsKIAogCS8qIFJlcXVlc3QgdGhlIE1EVCBmaWxlIGZvciB0aGUgZmlybXdh cmUgKi8KLQlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZtZHQsIHN0ciwgJnBkZXYtPmRldik7CisJ cmV0ID0gcmVxdWVzdF9maXJtd2FyZSgmbWR0LCBmaWxlbmFtZSwgJnBkZXYtPmRldik7CiAJaWYg KHJldCkgewotCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJVbmFibGUgdG8gbG9hZCAlc1xuIiwgc3Ry KTsKKwkJRFJNX0RFVl9FUlJPUigmcGRldi0+ZGV2LCAiVW5hYmxlIHRvIGxvYWQgJXNcbiIsIGZp bGVuYW1lKTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKQEAgLTE1MSw5ICsxNTAsOSBAQCBzdGF0aWMg aW50IF9waWxfdHpfbG9hZF9pbWFnZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWZ3 X3NpemUgPSAoc2l6ZV90KSAoZndfbWF4X2FkZHIgLSBmd19taW5fYWRkcik7CiAKIAkvKiBWZXJp ZnkgdGhlIE1EVCBoZWFkZXIgKi8KLQlyZXQgPSBxY29tX3NjbV9wYXNfaW5pdF9pbWFnZShwYXNf aWQsIG1kdC0+ZGF0YSwgbWR0LT5zaXplKTsKKwlyZXQgPSBxY29tX3NjbV9wYXNfaW5pdF9pbWFn ZSgxMywgbWR0LT5kYXRhLCBtZHQtPnNpemUpOwogCWlmIChyZXQpIHsKLQkJZGV2X2VycigmcGRl di0+ZGV2LCAiSW52YWxpZCBmaXJtd2FyZSBtZXRhZGF0YVxuIik7CisJCURSTV9ERVZfRVJST1Io JnBkZXYtPmRldiwgIkludmFsaWQgZmlybXdhcmUgbWV0YWRhdGFcbiIpOwogCQlnb3RvIG91dDsK IAl9CiAKQEAgLTE2MywxOCArMTYyLDE5IEBAIHN0YXRpYyBpbnQgX3BpbF90el9sb2FkX2ltYWdl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWdvdG8gb3V0OwogCiAJLyogU2V0IHVw IHRoZSBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5IHJlZ2lvbiAqLwotCXJldCA9IHFjb21fc2NtX3Bh c19tZW1fc2V0dXAocGFzX2lkLCBmd19waHlzLCBmd19zaXplKTsKKwlyZXQgPSBxY29tX3NjbV9w YXNfbWVtX3NldHVwKDEzLCBmd19waHlzLCBmd19zaXplKTsKIAlpZiAocmV0KSB7Ci0JCWRldl9l cnIoJnBkZXYtPmRldiwgIlVuYWJsZSB0byBzZXQgdXAgZmlybXdhcmUgbWVtb3J5XG4iKTsKKwkJ RFJNX0RFVl9FUlJPUigmcGRldi0+ZGV2LCAiVW5hYmxlIHRvIHNldCB1cCBmaXJtd2FyZSBtZW1v cnlcbiIpOwogCQlnb3RvIG91dDsKIAl9CiAKLQlyZXQgPSBfX3BpbF90el9sb2FkX2ltYWdlKHBk ZXYsIG1kdCwgZnduYW1lLCBwdHIsIGZ3X3NpemUsIGZ3X21pbl9hZGRyKTsKLQlpZiAoIXJldCkg ewotCQlyZXQgPSBxY29tX3NjbV9wYXNfYXV0aF9hbmRfcmVzZXQocGFzX2lkKTsKLQkJaWYgKHJl dCkKLQkJCWRldl9lcnIoJnBkZXYtPmRldiwgIlVuYWJsZSB0byBhdXRob3JpemUgdGhlIGltYWdl XG4iKTsKLQl9CisJcmV0ID0gemFwX2xvYWRfc2VnbWVudHMocGRldiwgbWR0LCBmd25hbWUsIHB0 ciwgZndfc2l6ZSwgZndfbWluX2FkZHIpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJcmV0 ID0gcWNvbV9zY21fcGFzX2F1dGhfYW5kX3Jlc2V0KDEzKTsKKwlpZiAocmV0KQorCQlEUk1fREVW X0VSUk9SKCZwZGV2LT5kZXYsICJVbmFibGUgdG8gYXV0aG9yaXplIHRoZSBpbWFnZVxuIik7CiAK IG91dDoKIAlpZiAocmV0ICYmIHB0cikKQEAgLTUwMiwxNCArNTAyLDE0IEBAIHN0YXRpYyBpbnQg YTV4eF96YXBfc2hhZGVyX2luaXQoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAlvZl9wbGF0Zm9ybV9w b3B1bGF0ZShwZGV2LT5kZXYub2Zfbm9kZSwgTlVMTCwgTlVMTCwgJnBkZXYtPmRldik7CiAKIAkv KiBGaW5kIHRoZSBzdWItbm9kZSBmb3IgdGhlIHphcCBzaGFkZXIgKi8KLQlub2RlID0gb2ZfZmlu ZF9ub2RlX2J5X25hbWUocGRldi0+ZGV2Lm9mX25vZGUsICJxY29tLHphcC1zaGFkZXIiKTsKKwlu b2RlID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUocGRldi0+ZGV2Lm9mX25vZGUsICJ6YXAtc2hhZGVy Iik7CiAJaWYgKCFub2RlKSB7Ci0JCURSTV9FUlJPUigiJXM6IHFjb20semFwLXNoYWRlciBub3Qg Zm91bmQgaW4gZGV2aWNlIHRyZWVcbiIsCisJCURSTV9FUlJPUigiJXM6IHphcC1zaGFkZXIgbm90 IGZvdW5kIGluIGRldmljZSB0cmVlXG4iLAogCQkJZ3B1LT5uYW1lKTsKIAkJcmV0dXJuIC1FTk9E RVY7CiAJfQogCi0JcmV0ID0gX3BpbF90el9sb2FkX2ltYWdlKG9mX2ZpbmRfZGV2aWNlX2J5X25v ZGUobm9kZSkpOworCXJldCA9IHphcF9sb2FkX21kdChvZl9maW5kX2RldmljZV9ieV9ub2RlKG5v ZGUpKTsKIAlpZiAocmV0KQogCQlEUk1fRVJST1IoIiVzOiBVbmFibGUgdG8gbG9hZCB0aGUgemFw IHNoYWRlclxuIiwKIAkJCWdwdS0+bmFtZSk7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVl ZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==