From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Anholt Subject: [PATCH 3/7] drm/vc4: Add a bitmap of branch targets during shader validation. Date: Mon, 4 Jul 2016 18:14:36 -0700 Message-ID: <1467681280-20317-4-git-send-email-eric@anholt.net> References: <1467681280-20317-1-git-send-email-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 38D176E556 for ; Tue, 5 Jul 2016 01:14:44 +0000 (UTC) In-Reply-To: <1467681280-20317-1-git-send-email-eric@anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBpc24ndCB1c2VkIHlldCwgaXQncyBqdXN0IGEgZmlyc3Qgc3RlcCB0b3dhcmQgbG9vcCB2 YWxpZGF0aW9uLgpEdXJpbmcgdGhlIG1haW4gcGFyc2luZyBvZiBpbnN0cnVjdGlvbnMsIHdlIG5l ZWQgdG8ga25vdyB3aGVuIHdlIGhpdCBhCm5ldyBiYXNpYyBibG9jayBzbyB0aGF0IHdlIGNhbiBy ZXNldCB2YWxpZGF0ZWQgc3RhdGUuCgpTaWduZWQtb2ZmLWJ5OiBFcmljIEFuaG9sdCA8ZXJpY0Bh bmhvbHQubmV0PgotLS0KIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3FwdV9kZWZpbmVzLmggICAg ICB8ICAxMiArKysKIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3ZhbGlkYXRlX3NoYWRlcnMuYyB8 IDExNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxMjQg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdmM0L3ZjNF9xcHVfZGVmaW5lcy5oIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcXB1X2Rl ZmluZXMuaAppbmRleCBkNWMyZjNjODVlYmIuLjgyZWYwZTUyNWQ1NSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3ZjNC92YzRfcXB1X2RlZmluZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v dmM0L3ZjNF9xcHVfZGVmaW5lcy5oCkBAIC0yMzAsNiArMjMwLDE1IEBAIGVudW0gcXB1X3VucGFj a19yNCB7CiAjZGVmaW5lIFFQVV9DT05EX01VTF9TSElGVCAgICAgICAgICAgICAgNDYKICNkZWZp bmUgUVBVX0NPTkRfTVVMX01BU0sgICAgICAgICAgICAgICBRUFVfTUFTSyg0OCwgNDYpCiAKKyNk ZWZpbmUgUVBVX0JSQU5DSF9DT05EX1NISUZUICAgICAgICAgICA1MgorI2RlZmluZSBRUFVfQlJB TkNIX0NPTkRfTUFTSyAgICAgICAgICAgIFFQVV9NQVNLKDU1LCA1MikKKworI2RlZmluZSBRUFVf QlJBTkNIX1JFTCAgICAgICAgICAgICAgICAgICgodWludDY0X3QpMSA8PCA1MSkKKyNkZWZpbmUg UVBVX0JSQU5DSF9SRUcgICAgICAgICAgICAgICAgICAoKHVpbnQ2NF90KTEgPDwgNTApCisKKyNk ZWZpbmUgUVBVX0JSQU5DSF9SQUREUl9BX1NISUZUICAgICAgICA0NQorI2RlZmluZSBRUFVfQlJB TkNIX1JBRERSX0FfTUFTSyAgICAgICAgIFFQVV9NQVNLKDQ5LCA0NSkKKwogI2RlZmluZSBRUFVf U0YgICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDY0X3QpMSA8PCA0NSkKIAogI2RlZmlu ZSBRUFVfV0FERFJfQUREX1NISUZUICAgICAgICAgICAgIDM4CkBAIC0yNjEsNCArMjcwLDcgQEAg ZW51bSBxcHVfdW5wYWNrX3I0IHsKICNkZWZpbmUgUVBVX09QX0FERF9TSElGVCAgICAgICAgICAg ICAgICAyNAogI2RlZmluZSBRUFVfT1BfQUREX01BU0sgICAgICAgICAgICAgICAgIFFQVV9NQVNL KDI4LCAyNCkKIAorI2RlZmluZSBRUFVfQlJBTkNIX1RBUkdFVF9TSElGVCAgICAgICAgIDAKKyNk ZWZpbmUgUVBVX0JSQU5DSF9UQVJHRVRfTUFTSyAgICAgICAgICBRUFVfTUFTSygzMSwgMCkKKwog I2VuZGlmIC8qIFZDNF9RUFVfREVGSU5FU19IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdmM0L3ZjNF92YWxpZGF0ZV9zaGFkZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92 YWxpZGF0ZV9zaGFkZXJzLmMKaW5kZXggNzcxZDkwNDY1M2YyLi5iY2YzYzMxYjI3NjUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3ZhbGlkYXRlX3NoYWRlcnMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92YWxpZGF0ZV9zaGFkZXJzLmMKQEAgLTU5LDYgKzU5LDEz IEBAIHN0cnVjdCB2YzRfc2hhZGVyX3ZhbGlkYXRpb25fc3RhdGUgewogCSAqLwogCXVpbnQzMl90 IGxpdmVfbWluX2NsYW1wX29mZnNldHNbMzIgKyAzMiArIDRdOwogCWJvb2wgbGl2ZV9tYXhfY2xh bXBfcmVnc1szMiArIDMyICsgNF07CisKKwkvKiBCaXRmaWVsZCBvZiB3aGljaCBJUHMgYXJlIHVz ZWQgYXMgYnJhbmNoIHRhcmdldHMuCisJICoKKwkgKiBVc2VkIGZvciB2YWxpZGF0aW9uIHRoYXQg dGhlIHVuaWZvcm0gc3RyZWFtIGlzIHVwZGF0ZWQgYXQgdGhlIHJpZ2h0CisJICogcG9pbnRzIGFu ZCBjbGVhcmluZyB0aGUgdGV4dHVyaW5nL2NsYW1waW5nIHN0YXRlLgorCSAqLworCXVuc2lnbmVk IGxvbmcgKmJyYW5jaF90YXJnZXRzOwogfTsKIAogc3RhdGljIHVpbnQzMl90CkBAIC00MTgsMTMg KzQyNSwxMDQgQEAgY2hlY2tfaW5zdHJ1Y3Rpb25fcmVhZHModWludDY0X3QgaW5zdCwKIAlyZXR1 cm4gdHJ1ZTsKIH0KIAorLyogTWFrZSBzdXJlIHRoYXQgYWxsIGJyYW5jaGVzIGFyZSBhYnNvbHV0 ZSBhbmQgcG9pbnQgd2l0aGluIHRoZSBzaGFkZXIsIGFuZAorICogbm90ZSB0aGVpciB0YXJnZXRz IGZvciBsYXRlci4KKyAqLworc3RhdGljIGJvb2wKK3ZjNF92YWxpZGF0ZV9icmFuY2hlcyhzdHJ1 Y3QgdmM0X3NoYWRlcl92YWxpZGF0aW9uX3N0YXRlICp2YWxpZGF0aW9uX3N0YXRlKQoreworCXVp bnQzMl90IG1heF9icmFuY2hfdGFyZ2V0ID0gMDsKKwlib29sIGZvdW5kX3NoYWRlcl9lbmQgPSBm YWxzZTsKKwlpbnQgaXA7CisJaW50IHNoYWRlcl9lbmRfaXAgPSAwOworCWludCBsYXN0X2JyYW5j aCA9IC0yOworCisJZm9yIChpcCA9IDA7IGlwIDwgdmFsaWRhdGlvbl9zdGF0ZS0+bWF4X2lwOyBp cCsrKSB7CisJCXVpbnQ2NF90IGluc3QgPSB2YWxpZGF0aW9uX3N0YXRlLT5zaGFkZXJbaXBdOwor CQlpbnQzMl90IGJyYW5jaF9pbW0gPSBRUFVfR0VUX0ZJRUxEKGluc3QsIFFQVV9CUkFOQ0hfVEFS R0VUKTsKKwkJdWludDMyX3Qgc2lnID0gUVBVX0dFVF9GSUVMRChpbnN0LCBRUFVfU0lHKTsKKwkJ dWludDMyX3QgYWZ0ZXJfZGVsYXlfaXAgPSBpcCArIDQ7CisJCXVpbnQzMl90IGJyYW5jaF90YXJn ZXRfaXA7CisKKwkJaWYgKHNpZyA9PSBRUFVfU0lHX1BST0dfRU5EKSB7CisJCQlzaGFkZXJfZW5k X2lwID0gaXA7CisJCQlmb3VuZF9zaGFkZXJfZW5kID0gdHJ1ZTsKKwkJCWNvbnRpbnVlOworCQl9 CisKKwkJaWYgKHNpZyAhPSBRUFVfU0lHX0JSQU5DSCkKKwkJCWNvbnRpbnVlOworCisJCWlmIChp cCAtIGxhc3RfYnJhbmNoIDwgNCkgeworCQkJRFJNX0VSUk9SKCJCcmFuY2ggYXQgJWQgZHVyaW5n IGRlbGF5IHNsb3RzXG4iLCBpcCk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwkJbGFzdF9icmFu Y2ggPSBpcDsKKworCQlpZiAoaW5zdCAmIFFQVV9CUkFOQ0hfUkVHKSB7CisJCQlEUk1fRVJST1Io ImJyYW5jaGluZyBmcm9tIHJlZ2lzdGVyIHJlbGF0aXZlICIKKwkJCQkgICJub3Qgc3VwcG9ydGVk XG4iKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWlmICghKGluc3QgJiBRUFVfQlJBTkNI X1JFTCkpIHsKKwkJCURSTV9FUlJPUigicmVsYXRpdmUgYnJhbmNoaW5nIHJlcXVpcmVkXG4iKTsK KwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCS8qIFRoZSBhY3R1YWwgYnJhbmNoIHRhcmdldCBp cyB0aGUgaW5zdHJ1Y3Rpb24gYWZ0ZXIgdGhlIGRlbGF5CisJCSAqIHNsb3RzLCBwbHVzIHdoYXRl dmVyIGJ5dGUgb2Zmc2V0IGlzIGluIHRoZSBsb3cgMzIgYml0cyBvZgorCQkgKiB0aGUgaW5zdHJ1 Y3Rpb24uICBNYWtlIHN1cmUgd2UncmUgbm90IGJyYW5jaGluZyBiZXlvbmQgdGhlCisJCSAqIGVu ZCBvZiB0aGUgc2hhZGVyIG9iamVjdC4KKwkJICovCisJCWlmIChicmFuY2hfaW1tICUgc2l6ZW9m KGluc3QpICE9IDApIHsKKwkJCURSTV9FUlJPUigiYnJhbmNoIHRhcmdldCBub3QgYWxpZ25lZFxu Iik7CisJCQlyZXR1cm4gZmFsc2U7CisJCX07CisKKwkJYnJhbmNoX3RhcmdldF9pcCA9IGFmdGVy X2RlbGF5X2lwICsgKGJyYW5jaF9pbW0gPj4gMyk7CisJCWlmIChicmFuY2hfdGFyZ2V0X2lwID49 IHZhbGlkYXRpb25fc3RhdGUtPm1heF9pcCkgeworCQkJRFJNX0VSUk9SKCJCcmFuY2ggYXQgJWQg b3V0c2lkZSBvZiBzaGFkZXIgKGlwICVkLyVkKVxuIiwKKwkJCQkgIGlwLCBicmFuY2hfdGFyZ2V0 X2lwLAorCQkJCSAgdmFsaWRhdGlvbl9zdGF0ZS0+bWF4X2lwKTsKKwkJCXJldHVybiBmYWxzZTsK KwkJfQorCQlzZXRfYml0KGJyYW5jaF90YXJnZXRfaXAsIHZhbGlkYXRpb25fc3RhdGUtPmJyYW5j aF90YXJnZXRzKTsKKworCQkvKiBNYWtlIHN1cmUgdGhhdCB0aGUgbm9uLWJyYW5jaGluZyBwYXRo IGlzIGFsc28gbm90IG91dHNpZGUKKwkJICogdGhlIHNoYWRlci4KKwkJICovCisJCWlmIChhZnRl cl9kZWxheV9pcCA+PSB2YWxpZGF0aW9uX3N0YXRlLT5tYXhfaXApIHsKKwkJCURSTV9FUlJPUigi QnJhbmNoIGF0ICVkIGNvbnRpbnVlcyBwYXN0IHNoYWRlciBlbmQgIgorCQkJCSAgIiglZC8lZClc biIsCisJCQkJICBpcCwgYWZ0ZXJfZGVsYXlfaXAsIHZhbGlkYXRpb25fc3RhdGUtPm1heF9pcCk7 CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwkJc2V0X2JpdChhZnRlcl9kZWxheV9pcCwgdmFsaWRh dGlvbl9zdGF0ZS0+YnJhbmNoX3RhcmdldHMpOworCQltYXhfYnJhbmNoX3RhcmdldCA9IG1heCht YXhfYnJhbmNoX3RhcmdldCwgYWZ0ZXJfZGVsYXlfaXApOworCisJCS8qIFRoZXJlIGFyZSB0d28g ZGVsYXkgc2xvdHMgYWZ0ZXIgcHJvZ3JhbSBlbmQgaXMgc2lnbmFsZWQKKwkJICogdGhhdCBhcmUg c3RpbGwgZXhlY3V0ZWQsIHRoZW4gd2UncmUgZmluaXNoZWQuCisJCSAqLworCQlpZiAoZm91bmRf c2hhZGVyX2VuZCAmJiBpcCA9PSBzaGFkZXJfZW5kX2lwICsgMikKKwkJCWJyZWFrOworCX0KKwor CWlmIChtYXhfYnJhbmNoX3RhcmdldCA+IHNoYWRlcl9lbmRfaXApIHsKKwkJRFJNX0VSUk9SKCJC cmFuY2ggbGFuZGVkIGFmdGVyIFFQVV9TSUdfUFJPR19FTkQiKTsKKwkJcmV0dXJuIGZhbHNlOwor CX0KKworCXJldHVybiB0cnVlOworfQorCiBzdHJ1Y3QgdmM0X3ZhbGlkYXRlZF9zaGFkZXJfaW5m byAqCiB2YzRfdmFsaWRhdGVfc2hhZGVyKHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKnNoYWRl cl9vYmopCiB7CiAJYm9vbCBmb3VuZF9zaGFkZXJfZW5kID0gZmFsc2U7CiAJaW50IHNoYWRlcl9l bmRfaXAgPSAwOwogCXVpbnQzMl90IGlwOwotCXN0cnVjdCB2YzRfdmFsaWRhdGVkX3NoYWRlcl9p bmZvICp2YWxpZGF0ZWRfc2hhZGVyOworCXN0cnVjdCB2YzRfdmFsaWRhdGVkX3NoYWRlcl9pbmZv ICp2YWxpZGF0ZWRfc2hhZGVyID0gTlVMTDsKIAlzdHJ1Y3QgdmM0X3NoYWRlcl92YWxpZGF0aW9u X3N0YXRlIHZhbGlkYXRpb25fc3RhdGU7CiAJaW50IGk7CiAKQEAgLTQzNyw5ICs1MzUsMTggQEAg dmM0X3ZhbGlkYXRlX3NoYWRlcihzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpzaGFkZXJfb2Jq KQogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHZhbGlkYXRpb25fc3RhdGUubGl2ZV9taW5f Y2xhbXBfb2Zmc2V0cyk7IGkrKykKIAkJdmFsaWRhdGlvbl9zdGF0ZS5saXZlX21pbl9jbGFtcF9v ZmZzZXRzW2ldID0gfjA7CiAKKwl2YWxpZGF0aW9uX3N0YXRlLmJyYW5jaF90YXJnZXRzID0KKwkJ a2NhbGxvYyhCSVRTX1RPX0xPTkdTKHZhbGlkYXRpb25fc3RhdGUubWF4X2lwKSwKKwkJCXNpemVv Zih1bnNpZ25lZCBsb25nKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF2YWxpZGF0aW9uX3N0YXRlLmJy YW5jaF90YXJnZXRzKQorCQlnb3RvIGZhaWw7CisKIAl2YWxpZGF0ZWRfc2hhZGVyID0ga2NhbGxv YygxLCBzaXplb2YoKnZhbGlkYXRlZF9zaGFkZXIpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXZhbGlk YXRlZF9zaGFkZXIpCi0JCXJldHVybiBOVUxMOworCQlnb3RvIGZhaWw7CisKKwlpZiAoIXZjNF92 YWxpZGF0ZV9icmFuY2hlcygmdmFsaWRhdGlvbl9zdGF0ZSkpCisJCWdvdG8gZmFpbDsKIAogCWZv ciAoaXAgPSAwOyBpcCA8IHZhbGlkYXRpb25fc3RhdGUubWF4X2lwOyBpcCsrKSB7CiAJCXVpbnQ2 NF90IGluc3QgPSB2YWxpZGF0aW9uX3N0YXRlLnNoYWRlcltpcF07CkBAIC01MDgsOSArNjE1LDEy IEBAIHZjNF92YWxpZGF0ZV9zaGFkZXIoc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqc2hhZGVy X29iaikKIAkJKHZhbGlkYXRlZF9zaGFkZXItPnVuaWZvcm1zX3NpemUgKwogCQkgNCAqIHZhbGlk YXRlZF9zaGFkZXItPm51bV90ZXh0dXJlX3NhbXBsZXMpOwogCisJa2ZyZWUodmFsaWRhdGlvbl9z dGF0ZS5icmFuY2hfdGFyZ2V0cyk7CisKIAlyZXR1cm4gdmFsaWRhdGVkX3NoYWRlcjsKIAogZmFp bDoKKwlrZnJlZSh2YWxpZGF0aW9uX3N0YXRlLmJyYW5jaF90YXJnZXRzKTsKIAlpZiAodmFsaWRh dGVkX3NoYWRlcikgewogCQlrZnJlZSh2YWxpZGF0ZWRfc2hhZGVyLT50ZXh0dXJlX3NhbXBsZXMp OwogCQlrZnJlZSh2YWxpZGF0ZWRfc2hhZGVyKTsKLS0gCjIuOC4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK