From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert Foss Subject: [PATCH hwc v3 5/6] drm_hwcomposer: Add out-fence support Date: Thu, 28 Sep 2017 18:40:30 +0200 Message-ID: <20170928164031.29720-6-robert.foss@collabora.com> References: <20170928164031.29720-1-robert.foss@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 72F7A6E994 for ; Thu, 28 Sep 2017 16:40:42 +0000 (UTC) In-Reply-To: <20170928164031.29720-1-robert.foss@collabora.com> 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, robh@kernel.org, salidoa@google.com, seanpaul@chromium.org, zachr@google.com Cc: Robert Foss List-Id: dri-devel@lists.freedesktop.org QWRkIHN1cHBvcnQgZm9yIG91dC1mZW5jZXMgdGhyb3VnaCB0aGUgT1VUX0ZFTkNFX1BUUiBwcm9w ZXJ0eS4KT3V0LWZlbmNlcyBzaWduYWwgd2hlbiB0aGVpciBhc3NvY2lhdGVkIGJ1ZmZlciBtYXkg YmUgcmVhZCBieSBhIGRldmljZS4KClNpZ25lZC1vZmYtYnk6IFJvYmVydCBGb3NzIDxyb2JlcnQu Zm9zc0Bjb2xsYWJvcmEuY29tPgpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJv bWl1bS5vcmc+Ci0tLQoKQ2hhbmdlcyBzaW5jZSB2MjoKICBTZWFuIFBhdWw6CiAgIC0gUmVtb3Zl ZCBkdXAoKSBhbmQgc3Vic2VxdWVudCBjbG9zZSgpIGNhbGwKICAgLSBBZGRlZCByLWIKCiAgRW1p bCBWZWxpa292OgogICAtIE1vdmVkIGNvZGUgYXJvdW5kIHRvIGFsbG93IGZvciAiUmVtb3ZlIHRo cmVhZGluZyIgcGF0Y2ggdG8gYmUgbGFzdCBvZiBzZXJpZXMKCkNoYW5nZXMgc2luY2UgdjE6CiAg U2VyZ2kgR3JhbmVsbDoKICAgIC0gU2V0IGF0b21pYyBwcm9wZXJ0eSB0byBiZSBvdXRfZmVuY2Vz W2NydGMtPnBpcGUoKV0gbm90IG91dF9mZW5jZXNbMF0KCiBkcm1kaXNwbGF5Y29tcG9zaXRpb24u aCAgfCAgOSArKysrKysrKysKIGRybWRpc3BsYXljb21wb3NpdG9yLmNwcCB8IDE1ICsrKysrKysr KysrKysrKwogZHJtaHdjdHdvLmNwcCAgICAgICAgICAgIHwgIDkgKystLS0tLS0tCiAzIGZpbGVz IGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJtZGlzcGxheWNvbXBvc2l0aW9uLmggYi9kcm1kaXNwbGF5Y29tcG9zaXRpb24uaAppbmRleCAx M2RhMTlkLi40NzBiZjdlIDEwMDY0NAotLS0gYS9kcm1kaXNwbGF5Y29tcG9zaXRpb24uaAorKysg Yi9kcm1kaXNwbGF5Y29tcG9zaXRpb24uaApAQCAtMTc5LDYgKzE3OSwxNCBAQCBjbGFzcyBEcm1E aXNwbGF5Q29tcG9zaXRpb24gewogICAgIHJldHVybiBwbGFubmVyXzsKICAgfQogCisgIGludCB0 YWtlX291dF9mZW5jZSgpIHsKKyAgICByZXR1cm4gb3V0X2ZlbmNlXy5SZWxlYXNlKCk7CisgIH0K KworICB2b2lkIHNldF9vdXRfZmVuY2UoaW50IG91dF9mZW5jZSkgeworICAgIG91dF9mZW5jZV8u U2V0KG91dF9mZW5jZSk7CisgIH0KKwogICB2b2lkIER1bXAoc3RkOjpvc3RyaW5nc3RyZWFtICpv dXQpIGNvbnN0OwogCiAgcHJpdmF0ZToKQEAgLTIwNSw2ICsyMTMsNyBAQCBjbGFzcyBEcm1EaXNw bGF5Q29tcG9zaXRpb24gewogICBpbnQgdGltZWxpbmVfY3VycmVudF8gPSAwOwogICBpbnQgdGlt ZWxpbmVfc3F1YXNoX2RvbmVfID0gMDsKICAgaW50IHRpbWVsaW5lX3ByZV9jb21wX2RvbmVfID0g MDsKKyAgVW5pcXVlRmQgb3V0X2ZlbmNlXyA9IC0xOwogCiAgIGJvb2wgZ2VvbWV0cnlfY2hhbmdl ZF87CiAgIHN0ZDo6dmVjdG9yPERybUh3Y0xheWVyPiBsYXllcnNfOwpkaWZmIC0tZ2l0IGEvZHJt ZGlzcGxheWNvbXBvc2l0b3IuY3BwIGIvZHJtZGlzcGxheWNvbXBvc2l0b3IuY3BwCmluZGV4IDc1 YzFhN2MuLjg5MzZkMDggMTAwNjQ0Ci0tLSBhL2RybWRpc3BsYXljb21wb3NpdG9yLmNwcAorKysg Yi9kcm1kaXNwbGF5Y29tcG9zaXRvci5jcHAKQEAgLTYwMiw2ICs2MDIsNyBAQCBpbnQgRHJtRGlz cGxheUNvbXBvc2l0b3I6OkNvbW1pdEZyYW1lKERybURpc3BsYXlDb21wb3NpdGlvbiAqZGlzcGxh eV9jb21wLAogICAgICAgZGlzcGxheV9jb21wLT5jb21wb3NpdGlvbl9wbGFuZXMoKTsKICAgc3Rk Ojp2ZWN0b3I8RHJtQ29tcG9zaXRpb25SZWdpb24+ICZwcmVfY29tcF9yZWdpb25zID0KICAgICAg IGRpc3BsYXlfY29tcC0+cHJlX2NvbXBfcmVnaW9ucygpOworICB1aW50NjRfdCBvdXRfZmVuY2Vz W2RybV8tPmNydGNzKCkuc2l6ZSgpXTsKIAogICBEcm1Db25uZWN0b3IgKmNvbm5lY3RvciA9IGRy bV8tPkdldENvbm5lY3RvckZvckRpc3BsYXkoZGlzcGxheV8pOwogICBpZiAoIWNvbm5lY3Rvcikg ewpAQCAtNjIwLDYgKzYyMSwxNiBAQCBpbnQgRHJtRGlzcGxheUNvbXBvc2l0b3I6OkNvbW1pdEZy YW1lKERybURpc3BsYXlDb21wb3NpdGlvbiAqZGlzcGxheV9jb21wLAogICAgIHJldHVybiAtRU5P TUVNOwogICB9CiAKKyAgaWYgKGNydGMtPm91dF9mZW5jZV9wdHJfcHJvcGVydHkoKS5pZCgpICE9 IDApIHsKKyAgICByZXQgPSBkcm1Nb2RlQXRvbWljQWRkUHJvcGVydHkocHNldCwgY3J0Yy0+aWQo KSwgY3J0Yy0+b3V0X2ZlbmNlX3B0cl9wcm9wZXJ0eSgpLmlkKCksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh1aW50NjRfdCkgJm91dF9mZW5jZXNbY3J0Yy0+cGlwZSgpXSk7 CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgIEFMT0dFKCJGYWlsZWQgdG8gYWRkIE9VVF9GRU5D RV9QVFIgcHJvcGVydHkgdG8gcHNldDogJWQiLCByZXQpOworICAgICAgZHJtTW9kZUF0b21pY0Zy ZWUocHNldCk7CisgICAgICByZXR1cm4gcmV0OworICAgIH0KKyAgfQorCiAgIGlmIChtb2RlXy5u ZWVkc19tb2Rlc2V0KSB7CiAgICAgcmV0ID0gZHJtTW9kZUF0b21pY0FkZFByb3BlcnR5KHBzZXQs IGNydGMtPmlkKCksIGNydGMtPm1vZGVfcHJvcGVydHkoKS5pZCgpLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtb2RlXy5ibG9iX2lkKSA8IDAgfHwKQEAgLTgxOCw2ICs4Mjks MTAgQEAgb3V0OgogICAgIG1vZGVfLm5lZWRzX21vZGVzZXQgPSBmYWxzZTsKICAgfQogCisgIGlm IChjcnRjLT5vdXRfZmVuY2VfcHRyX3Byb3BlcnR5KCkuaWQoKSkgeworICAgIGRpc3BsYXlfY29t cC0+c2V0X291dF9mZW5jZSgoaW50KSBvdXRfZmVuY2VzW2NydGMtPnBpcGUoKV0pOworICB9CisK ICAgcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJtaHdjdHdvLmNwcCBiL2RybWh3Y3R3 by5jcHAKaW5kZXggOGM4NTNmNC4uMDBiZWRkMCAxMDA2NDQKLS0tIGEvZHJtaHdjdHdvLmNwcAor KysgYi9kcm1od2N0d28uY3BwCkBAIC01NTcsMTkgKzU1NywxNCBAQCBIV0MyOjpFcnJvciBEcm1I d2NUd286Okh3Y0Rpc3BsYXk6OlByZXNlbnREaXNwbGF5KGludDMyX3QgKnJldGlyZV9mZW5jZSkg ewogICAgIGkgPSBvdmVybGF5X3BsYW5lcy5lcmFzZShpKTsKICAgfQogCisgIEFkZEZlbmNlVG9S ZXRpcmVGZW5jZShjb21wb3NpdGlvbi0+dGFrZV9vdXRfZmVuY2UoKSk7CisKICAgcmV0ID0gY29t cG9zaXRvcl8uUXVldWVDb21wb3NpdGlvbihzdGQ6Om1vdmUoY29tcG9zaXRpb24pKTsKICAgaWYg KHJldCkgewogICAgIEFMT0dFKCJGYWlsZWQgdG8gYXBwbHkgdGhlIGZyYW1lIGNvbXBvc2l0aW9u IHJldD0lZCIsIHJldCk7CiAgICAgcmV0dXJuIEhXQzI6OkVycm9yOjpCYWRQYXJhbWV0ZXI7CiAg IH0KIAotICAvLyBOb3cgdGhhdCB0aGUgcmVsZWFzZSBmZW5jZXMgaGF2ZSBiZWVuIGdlbmVyYXRl ZCBieSB0aGUgY29tcG9zaXRvciwgbWFrZQotICAvLyBzdXJlIHRoZXkncmUgbWFuYWdlZCBwcm9w ZXJseQotICBmb3IgKHN0ZDo6cGFpcjxjb25zdCB1aW50MzJfdCwgRHJtSHdjVHdvOjpId2NMYXll ciAqPiAmbCA6IHpfbWFwKSB7Ci0gICAgbC5zZWNvbmQtPm1hbmFnZV9yZWxlYXNlX2ZlbmNlKCk7 Ci0gICAgQWRkRmVuY2VUb1JldGlyZUZlbmNlKGwuc2Vjb25kLT5yZWxlYXNlX2ZlbmNlKCkpOwot ICB9Ci0KICAgLy8gVGhlIHJldGlyZSBmZW5jZSByZXR1cm5lZCBoZXJlIGlzIGZvciB0aGUgbGFz dCBmcmFtZSwgc28gcmV0dXJuIGl0IGFuZAogICAvLyBwcm9tb3RlIHRoZSBuZXh0IHJldGlyZSBm ZW5jZQogICAqcmV0aXJlX2ZlbmNlID0gcmV0aXJlX2ZlbmNlXy5SZWxlYXNlKCk7Ci0tIAoyLjEx LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=