From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 02/11] drm/msm: Improve the zap shader Date: Mon, 6 Feb 2017 10:39:30 -0700 Message-ID: <1486402779-9024-3-git-send-email-jcrouse@codeaurora.org> References: <1486402779-9024-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: <1486402779-9024-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: dri-devel@lists.freedesktop.org U2ltcGx5IHRoZSBjb2RlLCB1c2Ugc25wcmludGYgY29ycmVjdGx5IGFuZCBtYWtlIHN1cmUgdGhh dCB3ZSBtZW1zZXQKdGhlIHJlc3Qgb2YgdGhlIHNlZ21lbnQgaWYgdGhlIG1lbW9yeSBzaXplIGlu IHRoZSBFTEYgZmlsZSBpcyBsYXJnZXIKdGhhbiB0aGUgZmlsZSBzaXplLgoKU2lnbmVkLW9mZi1i eTogSm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jIHwgNjAgKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9ncHUuYwppbmRleCA1ZjhiMzY4Li4y M2VlZWQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMKQEAgLTMxLDExICsz MSwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX2NoZWNrX3NlZ21lbnQoY29uc3Qgc3RydWN0IGVs ZjMyX3BoZHIgKnBoZHIpCiAJCXBoZHItPnBfbWVtc3opOwogfQogCi1zdGF0aWMgaW50IF9fcGls X3R6X2xvYWRfaW1hZ2Uoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKK3N0YXRpYyBpbnQg emFwX2xvYWRfc2VnbWVudHMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJY29uc3Qg c3RydWN0IGZpcm13YXJlICptZHQsIGNvbnN0IGNoYXIgKmZ3bmFtZSwKIAkJdm9pZCAqZndwdHIs IHNpemVfdCBmd19zaXplLCB1bnNpZ25lZCBsb25nIGZ3X21pbl9hZGRyKQogewotCWNoYXIgc3Ry WzY0XSA9IHsgMCB9OworCWNoYXIgZmlsZW5hbWVbNjRdOwogCWNvbnN0IHN0cnVjdCBlbGYzMl9o ZHIgKmVoZHIgPSAoc3RydWN0IGVsZjMyX2hkciAqKSBtZHQtPmRhdGE7CiAJY29uc3Qgc3RydWN0 IGVsZjMyX3BoZHIgKnBoZHJzID0gKHN0cnVjdCBlbGYzMl9waGRyICopIChlaGRyICsgMSk7CiAJ Y29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKQEAgLTUzLDE2ICs1MywxOCBAQCBzdGF0aWMgaW50 IF9fcGlsX3R6X2xvYWRfaW1hZ2Uoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJb2Zm c2V0ID0gKHBoZHItPnBfcGFkZHIgLSBmd19taW5fYWRkcik7CiAKIAkJLyogUmVxdWVzdCB0aGUg ZmlsZSBjb250YWluaW5nIHRoZSBzZWdtZW50ICovCi0JCXNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0 cikgLSAxLCAiJXMuYiUwMmQiLCBmd25hbWUsIGkpOworCQlzbnByaW50ZihmaWxlbmFtZSwgc2l6 ZW9mKGZpbGVuYW1lKSwgIiVzLmIlMDJkIiwgZnduYW1lLCBpKTsKIAotCQlyZXQgPSByZXF1ZXN0 X2Zpcm13YXJlKCZmdywgc3RyLCAmcGRldi0+ZGV2KTsKKwkJcmV0ID0gcmVxdWVzdF9maXJtd2Fy ZSgmZncsIGZpbGVuYW1lLCAmcGRldi0+ZGV2KTsKIAkJaWYgKHJldCkgewotCQkJZGV2X2Vycigm cGRldi0+ZGV2LCAiRmFpbGVkIHRvIGxvYWQgc2VnbWVudCAlc1xuIiwgc3RyKTsKKwkJCWRldl9l cnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBsb2FkIHNlZ21lbnQgJXNcbiIsCisJCQkJZmlsZW5h bWUpOwogCQkJYnJlYWs7CiAJCX0KIAogCQlpZiAob2Zmc2V0ICsgZnctPnNpemUgPiBmd19zaXpl KSB7Ci0JCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJTZWdtZW50ICVzIGlzIHRvbyBiaWdcbiIsIHN0 cik7CisJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJTZWdtZW50ICVzIGlzIHRvbyBiaWdcbiIsCisJ CQkJZmlsZW5hbWUpOwogCQkJcmV0ID0gLUVJTlZBTDsKIAkJCXJlbGVhc2VfZmlybXdhcmUoZncp OwogCQkJYnJlYWs7CkBAIC03MCwxNSArNzIsMTkgQEAgc3RhdGljIGludCBfX3BpbF90el9sb2Fk X2ltYWdlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAKIAkJLyogQ29weSB0aGUgc2Vn bWVudCBpbnRvIHBsYWNlICovCiAJCW1lbWNweShmd3B0ciArIG9mZnNldCwgZnctPmRhdGEsIGZ3 LT5zaXplKTsKKworCQlpZiAocGhkci0+cF9tZW1zeiA+IHBoZHItPnBfZmlsZXN6KQorCQkJbWVt c2V0KGZ3cHRyICsgZnctPnNpemUsIDAsCisJCQkJcGhkci0+cF9tZW1zeiAtIHBoZHItPnBfZmls ZXN6KTsKIAkJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAJfQogCiAJcmV0dXJuIHJldDsKIH0KIAot c3RhdGljIGludCBfcGlsX3R6X2xvYWRfaW1hZ2Uoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKK3N0YXRpYyBpbnQgemFwX2xvYWRfbWR0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp CiB7Ci0JY2hhciBzdHJbNjRdID0geyAwIH07CisJY2hhciBmaWxlbmFtZVs2NF07CiAJY29uc3Qg Y2hhciAqZnduYW1lOwogCWNvbnN0IHN0cnVjdCBlbGYzMl9oZHIgKmVoZHI7CiAJY29uc3Qgc3Ry dWN0IGVsZjMyX3BoZHIgKnBoZHJzOwpAQCAtODYsNyArOTIsNiBAQCBzdGF0aWMgaW50IF9waWxf dHpfbG9hZF9pbWFnZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXBoeXNfYWRkcl90 IGZ3X21pbl9hZGRyLCBmd19tYXhfYWRkcjsKIAlkbWFfYWRkcl90IGZ3X3BoeXM7CiAJc2l6ZV90 IGZ3X3NpemU7Ci0JdTMyIHBhc19pZDsKIAl2b2lkICpwdHI7CiAJaW50IGksIHJldDsKIApAQCAt OTUsMTEgKzEwMCwxMCBAQCBzdGF0aWMgaW50IF9waWxfdHpfbG9hZF9pbWFnZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQogCiAJaWYgKCFxY29tX3NjbV9pc19hdmFpbGFibGUoKSkgewog CQlkZXZfZXJyKCZwZGV2LT5kZXYsICJTQ00gaXMgbm90IGF2YWlsYWJsZVxuIik7Ci0JCXJldHVy biAtRUlOVkFMOworCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKIAl9CiAKIAlyZXQgPSBvZl9yZXNl cnZlZF9tZW1fZGV2aWNlX2luaXQoJnBkZXYtPmRldik7Ci0KIAlpZiAocmV0KSB7CiAJCWRldl9l cnIoJnBkZXYtPmRldiwgIlVuYWJsZSB0byBzZXQgdXAgdGhlIHJlc2VydmVkIG1lbW9yeVxuIik7 CiAJCXJldHVybiByZXQ7CkBAIC0xMTIsMTcgKzExNiwxMiBAQCBzdGF0aWMgaW50IF9waWxfdHpf bG9hZF9pbWFnZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gLUVJTlZB TDsKIAl9CiAKLQlpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIocGRldi0+ZGV2Lm9mX25vZGUsICJx Y29tLHBhcy1pZCIsICZwYXNfaWQpKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIkNvdWxkIG5v dCByZWFkIHRoZSBwYXMgSURcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlzbnByaW50 ZihzdHIsIHNpemVvZihzdHIpIC0gMSwgIiVzLm1kdCIsIGZ3bmFtZSk7CisJc25wcmludGYoZmls ZW5hbWUsIHNpemVvZihmaWxlbmFtZSksICIlcy5tZHQiLCBmd25hbWUpOwogCiAJLyogUmVxdWVz dCB0aGUgTURUIGZpbGUgZm9yIHRoZSBmaXJtd2FyZSAqLwotCXJldCA9IHJlcXVlc3RfZmlybXdh cmUoJm1kdCwgc3RyLCAmcGRldi0+ZGV2KTsKKwlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZtZHQs IGZpbGVuYW1lLCAmcGRldi0+ZGV2KTsKIAlpZiAocmV0KSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRl diwgIlVuYWJsZSB0byBsb2FkICVzXG4iLCBzdHIpOworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJV bmFibGUgdG8gbG9hZCAlc1xuIiwgZmlsZW5hbWUpOwogCQlyZXR1cm4gcmV0OwogCX0KIApAQCAt MTUxLDcgKzE1MCw3IEBAIHN0YXRpYyBpbnQgX3BpbF90el9sb2FkX2ltYWdlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZndfc2l6ZSA9IChzaXplX3QpIChmd19tYXhfYWRkciAtIGZ3 X21pbl9hZGRyKTsKIAogCS8qIFZlcmlmeSB0aGUgTURUIGhlYWRlciAqLwotCXJldCA9IHFjb21f c2NtX3Bhc19pbml0X2ltYWdlKHBhc19pZCwgbWR0LT5kYXRhLCBtZHQtPnNpemUpOworCXJldCA9 IHFjb21fc2NtX3Bhc19pbml0X2ltYWdlKDEzLCBtZHQtPmRhdGEsIG1kdC0+c2l6ZSk7CiAJaWYg KHJldCkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJJbnZhbGlkIGZpcm13YXJlIG1ldGFkYXRh XG4iKTsKIAkJZ290byBvdXQ7CkBAIC0xNjMsMTggKzE2MiwxOSBAQCBzdGF0aWMgaW50IF9waWxf dHpfbG9hZF9pbWFnZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlnb3RvIG91dDsK IAogCS8qIFNldCB1cCB0aGUgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeSByZWdpb24gKi8KLQlyZXQg PSBxY29tX3NjbV9wYXNfbWVtX3NldHVwKHBhc19pZCwgZndfcGh5cywgZndfc2l6ZSk7CisJcmV0 ID0gcWNvbV9zY21fcGFzX21lbV9zZXR1cCgxMywgZndfcGh5cywgZndfc2l6ZSk7CiAJaWYgKHJl dCkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJVbmFibGUgdG8gc2V0IHVwIGZpcm13YXJlIG1l bW9yeVxuIik7CiAJCWdvdG8gb3V0OwogCX0KIAotCXJldCA9IF9fcGlsX3R6X2xvYWRfaW1hZ2Uo cGRldiwgbWR0LCBmd25hbWUsIHB0ciwgZndfc2l6ZSwgZndfbWluX2FkZHIpOwotCWlmICghcmV0 KSB7Ci0JCXJldCA9IHFjb21fc2NtX3Bhc19hdXRoX2FuZF9yZXNldChwYXNfaWQpOwotCQlpZiAo cmV0KQotCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiVW5hYmxlIHRvIGF1dGhvcml6ZSB0aGUgaW1h Z2VcbiIpOwotCX0KKwlyZXQgPSB6YXBfbG9hZF9zZWdtZW50cyhwZGV2LCBtZHQsIGZ3bmFtZSwg cHRyLCBmd19zaXplLCBmd19taW5fYWRkcik7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwly ZXQgPSBxY29tX3NjbV9wYXNfYXV0aF9hbmRfcmVzZXQoMTMpOworCWlmIChyZXQpCisJCWRldl9l cnIoJnBkZXYtPmRldiwgIlVuYWJsZSB0byBhdXRob3JpemUgdGhlIGltYWdlXG4iKTsKIAogb3V0 OgogCWlmIChyZXQgJiYgcHRyKQpAQCAtNTAyLDE0ICs1MDIsMTQgQEAgc3RhdGljIGludCBhNXh4 X3phcF9zaGFkZXJfaW5pdChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogCW9mX3BsYXRmb3JtX3BvcHVs YXRlKHBkZXYtPmRldi5vZl9ub2RlLCBOVUxMLCBOVUxMLCAmcGRldi0+ZGV2KTsKIAogCS8qIEZp bmQgdGhlIHN1Yi1ub2RlIGZvciB0aGUgemFwIHNoYWRlciAqLwotCW5vZGUgPSBvZl9maW5kX25v ZGVfYnlfbmFtZShwZGV2LT5kZXYub2Zfbm9kZSwgInFjb20semFwLXNoYWRlciIpOworCW5vZGUg PSBvZl9nZXRfY2hpbGRfYnlfbmFtZShwZGV2LT5kZXYub2Zfbm9kZSwgInphcC1zaGFkZXIiKTsK IAlpZiAoIW5vZGUpIHsKLQkJRFJNX0VSUk9SKCIlczogcWNvbSx6YXAtc2hhZGVyIG5vdCBmb3Vu ZCBpbiBkZXZpY2UgdHJlZVxuIiwKKwkJRFJNX0VSUk9SKCIlczogemFwLXNoYWRlciBub3QgZm91 bmQgaW4gZGV2aWNlIHRyZWVcbiIsCiAJCQlncHUtPm5hbWUpOwogCQlyZXR1cm4gLUVOT0RFVjsK IAl9CiAKLQlyZXQgPSBfcGlsX3R6X2xvYWRfaW1hZ2Uob2ZfZmluZF9kZXZpY2VfYnlfbm9kZShu b2RlKSk7CisJcmV0ID0gemFwX2xvYWRfbWR0KG9mX2ZpbmRfZGV2aWNlX2J5X25vZGUobm9kZSkp OwogCWlmIChyZXQpCiAJCURSTV9FUlJPUigiJXM6IFVuYWJsZSB0byBsb2FkIHRoZSB6YXAgc2hh ZGVyXG4iLAogCQkJZ3B1LT5uYW1lKTsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVu b0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9mcmVlZHJlbm8K