From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D4A589518 for ; Fri, 22 Feb 2019 11:26:21 +0000 (UTC) From: Paul Kocialkowski Date: Fri, 22 Feb 2019 12:25:40 +0100 Message-Id: <20190222112543.6885-20-paul.kocialkowski@bootlin.com> In-Reply-To: <20190222112543.6885-1-paul.kocialkowski@bootlin.com> References: <20190222112543.6885-1-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH RESEND i-g-t v6 19/22] lib/igt_frame: Add a checkerboard frame comparison method 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: VGhpcyBpbnRyb2R1Y2VzIGEgbmV3IGZyYW1lIGNvbXBhcmlzb24gbWV0aG9kIHRoYXQgd2FzIGRl c2lnbmVkIGZvcgpwYXR0ZXJucyB0aGF0IGZvbGxvdyBhIGNoZWNrZXJib2FyZCBzdHlsZS4gVGhl c2UgcGF0dGVybnMgYXJlIG1hZGUgb2YKY29uc2VjdXRpdmUgcmVjdGFuZ3VsYXIgc2hhcGVzIHdp dGggYWx0ZXJuYXRpbmcgc29saWQgY29sb3JzLiBUaGV5IGFyZQpjdXJyZW50bHkgdXNlZCBmb3Ig c29tZSBDaGFtZWxpdW0tYmFzZWQgdGVzdHMuCgpUaGUgbWV0aG9kIGlzIHBhcnRpY3VsYXJseSBh ZGFwdGVkIGZvciBjYXNlcyB3aGVyZSB0aGUgZWRnZXMgb2YgdGhlCnNoYXBlcyBtaWdodCBiZSBi bHVycmVkIChlLmcuIGR1ZSB0byBzY2FsaW5nKSwgd2hpY2ggbWFrZXMgaXQgaW1wb3NzaWJsZQp0 byB1c2UgcGl4ZWwtcGVyZmVjdCBvciBDUkMtYmFzZWQgY29tcGFyaXNvbnMgdG8gZGVjaWRlIHdo ZXRoZXIgdGhlCmNhcHR1cmVkIGZyYW1lIG1hdGNoZXMgdGhlIHJlZmVyZW5jZS4KCk92ZXJhbGws IHRoaXMgdGVzdCB3aWxsIGZpcnN0IGRldGVjdCB0aGUgZWRnZXMgb2YgdGhlIHBhdHRlcm4gYW5k IGxhdGVyCmV4Y2x1ZGUgdGhlbSBmcm9tIGNvbXBhcmlzb24uIENvbG9ycyBhcmUgY29tcGFyZWQg YmV0d2VlbiB0aGUgcmVmZXJlbmNlCmFuZCBjYXB0dXJlIHdpdGggYSBsb3cgdGhyZXNob2xkIGZv ciBlcnJvci4gQSBwZXJjZW50YWdlIG9mIHRoZSBmYXVsdHkKcGl4ZWxzIGlzIGNhbGN1bGF0ZWQg YW5kIHRoZSBjYXB0dXJlZCBmcmFtZSBpcyBjb25zaWRlcmVkIGludmFsaWQgaWYKbW9yZSB0aGFu IG9uZSBwZXJjZW50IG9mIHRoZSBwaXhlbHMgYXJlIGVycm9uZW91cy4KClNpZ25lZC1vZmYtYnk6 IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBib290bGluLmNvbT4KUmV2aWV3 ZWQtYnk6IEx5dWRlIFBhdWwgPGx5dWRlQHJlZGhhdC5jb20+ClJldmlld2VkLWJ5OiBNYXhpbWUg UmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3RsaW4uY29tPgotLS0KIGxpYi9pZ3RfZnJhbWUuYyB8 IDEzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxp Yi9pZ3RfZnJhbWUuaCB8ICAgMiArCiAyIGZpbGVzIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvbGliL2lndF9mcmFtZS5jIGIvbGliL2lndF9mcmFtZS5jCmluZGV4IDY5 ODRjMDJlOTkxMi4uNDU1MjNhNzlmNjAxIDEwMDY0NAotLS0gYS9saWIvaWd0X2ZyYW1lLmMKKysr IGIvbGliL2lndF9mcmFtZS5jCkBAIC0yNjcsMyArMjY3LDEzOCBAQCBjb21wbGV0ZToKIAogCXJl dHVybiBtYXRjaDsKIH0KKworI2RlZmluZSBYUjI0X0NPTE9SX1ZBTFVFKGRhdGEsIHN0cmlkZSwg eCwgeSwgYykgXAorCSooKHVpbnQ4X3QgKikoZGF0YSkgKyAoeSkgKiAoc3RyaWRlKSArIDQgKiAo eCkgKyAoYykpCisKKy8qKgorICogaWd0X2NoZWNrX2NoZWNrZXJib2FyZF9mcmFtZV9tYXRjaDoK KyAqIEByZWZlcmVuY2U6IFRoZSByZWZlcmVuY2UgY2Fpcm8gc3VyZmFjZQorICogQGNhcHR1cmU6 IFRoZSBjYXB0dXJlZCBjYWlybyBzdXJmYWNlCisgKgorICogQ2hlY2tzIHRoYXQgdGhlIHJlZmVy ZW5jZSBmcmFtZSBtYXRjaGVzIHRoZSBjYXB0dXJlZCBmcmFtZSB1c2luZyBhCisgKiBtZXRob2Qg ZGVzaWduZWQgZm9yIGNoZWNrZXJib2FyZCBwYXR0ZXJucy4gVGhlc2UgcGF0dGVybnMgYXJlIG1h ZGUgb2YKKyAqIGNvbnNlY3V0aXZlIHJlY3Rhbmd1bGFyIHNoYXBlcyB3aXRoIGFsdGVybmF0aW5n IHNvbGlkIGNvbG9ycy4KKyAqCisgKiBUaGUgaW50ZW50IG9mIHRoaXMgbWV0aG9kIGlzIHRvIGNv dmVyIGNhc2VzIHdoZXJlIHRoZSBjYXB0dXJlZCByZXN1bHQgaXMKKyAqIG5vdCBwaXhlbC1wZXJm ZWN0IGR1ZSB0byBmZWF0dXJlcyBzdWNoIGFzIHNjYWxpbmcgb3IgWVVWIGNvbnZlcnNpb24gYW5k CisgKiBzdWJzYW1wbGluZy4gU3VjaCBlZmZlY3RzIGFyZSBtb3N0bHkgbm90aWNlYWJsZSBvbiB0 aGUgZWRnZXMgb2YgdGhlCisgKiBwYXR0ZXJucywgc28gdGhleSBhcmUgZGV0ZWN0ZWQgYW5kIGV4 Y2x1ZGVkIGZyb20gdGhlIGNvbXBhcmlzb24uCisgKgorICogVGhlIGFsZ29yaXRobSB3b3JrcyB3 aXRoIHR3byBtYWpvciBzdGVwcy4gRmlyc3QsIHRoZSBlZGdlcyBvZiB0aGUgcmVmZXJlbmNlCisg KiBwYXR0ZXJuIGFyZSBkZXRlY3RlZCBvbiB0aGUgeCBhbmQgeSBheGlzIGluZGVwZW5kZW50bHku IFRoZSBkZXRlY3Rpb24gaXMgZG9uZQorICogYnkgY2FsY3VsYXRpbmcgYW4gYWJzb2x1dGUgZGlm ZmVyZW5jZSB3aXRoIGEgc3BhbiBvZiBhIGZldyBwaXhlbHMgYmVmb3JlIGFuZAorICogYWZ0ZXIg dGhlIGN1cnJlbnQgcG9zaXRpb24gb24gdGhlIGdpdmVuIGF4aXMsIGFjY3VtdWxhdGVkIGZvciBl YWNoIGNvbG9yCisgKiBjb21wb25lbnQuIElmIHRoZSBzdW0gaXMgYWJvdmUgYSBnaXZlbiB0aHJl c2hvbGQgb24gb25lIG9mIHRoZSBheGlzLCB0aGUKKyAqIHBvc2l0aW9uIGlzIG1hcmtlZCBhcyBh biBlZGdlLiBJbiB0aGUgc2Vjb25kIHN0ZXAsIHRoZSBwaXhlbCB2YWx1ZXMgYXJlCisgKiBjb21w YXJlZCBwZXItY29tcG9uZW50LCBleGNsdWRpbmcgcG9zaXRpb25zIHRoYXQgd2VyZSBtYXJrZWQg YXMgZWRnZXMgb3IKKyAqIHRoYXQgYXJlIGF0IGEgdHJhbnNpdGlvbiBiZXR3ZWVuIGFuIGVkZ2Ug YW5kIGEgbm9uLWVkZ2UuIEFuIGVycm9yIHRocmVzaG9sZAorICogKGZvciBlYWNoIGluZGl2aWR1 YWwgY29sb3IgY29tcG9uZW50KSBpcyB1c2VkIHRvIG1hcmsgdGhlIHBvc2l0aW9uIGFzCisgKiBl cnJvbmVvdXMgb3Igbm90LiBUaGUgcmF0aW8gb2YgZXJyb25lb3VzIHBpeGVscyBvdmVyIGNvbXBh cmVkIHBpeGVscyAodGhhdAorICogZG9lcyBub3QgY291bnQgZXhjbHVkZWQgcGl4ZWxzKSBpcyB0 aGVuIGNhbGN1bGF0ZWQgYW5kIGNvbXBhcmVkIHRvIHRoZSBlcnJvcgorICogcmF0ZSB0aHJlc2hv bGQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGZyYW1lcyBtYXRjaCBvciBub3QuCisgKgorICog UmV0dXJuczogYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZnJhbWVzIG1hdGNoCisg Ki8KK2Jvb2wgaWd0X2NoZWNrX2NoZWNrZXJib2FyZF9mcmFtZV9tYXRjaChjYWlyb19zdXJmYWNl X3QgKnJlZmVyZW5jZSwKKwkJCQkJY2Fpcm9fc3VyZmFjZV90ICpjYXB0dXJlKQoreworCXVuc2ln bmVkIGludCB3aWR0aCwgaGVpZ2h0LCByZWZfc3RyaWRlLCBjYXBfc3RyaWRlOworCXZvaWQgKnJl Zl9kYXRhLCAqY2FwX2RhdGE7CisJdW5zaWduZWQgY2hhciAqZWRnZXNfbWFwOworCXVuc2lnbmVk IGludCB4LCB5LCBjOworCXVuc2lnbmVkIGludCBlcnJvcnMgPSAwLCBwaXhlbHMgPSAwOworCXVu c2lnbmVkIGludCBlZGdlX3RocmVzaG9sZCA9IDEwMDsKKwl1bnNpZ25lZCBpbnQgY29sb3JfZXJy b3JfdGhyZXNob2xkID0gMjQ7CisJZG91YmxlIGVycm9yX3JhdGVfdGhyZXNob2xkID0gMC4wMTsK Kwlkb3VibGUgZXJyb3JfcmF0ZTsKKwl1bnNpZ25lZCBpbnQgc3BhbiA9IDI7CisJYm9vbCBtYXRj aCA9IGZhbHNlOworCisJd2lkdGggPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChyZWZl cmVuY2UpOworCWhlaWdodCA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hlaWdodChyZWZlcmVu Y2UpOworCisJcmVmX3N0cmlkZSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShyZWZl cmVuY2UpOworCXJlZl9kYXRhID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShyZWZlcmVu Y2UpOworCWlndF9hc3NlcnQocmVmX2RhdGEpOworCisJY2FwX3N0cmlkZSA9IGNhaXJvX2ltYWdl X3N1cmZhY2VfZ2V0X3N0cmlkZShjYXB0dXJlKTsKKwljYXBfZGF0YSA9IGNhaXJvX2ltYWdlX3N1 cmZhY2VfZ2V0X2RhdGEoY2FwdHVyZSk7CisJaWd0X2Fzc2VydChjYXBfZGF0YSk7CisKKwllZGdl c19tYXAgPSBjYWxsb2MoMSwgd2lkdGggKiBoZWlnaHQpOworCWlndF9hc3NlcnQoZWRnZXNfbWFw KTsKKworCS8qIEZpcnN0IHBhc3MgdG8gZGV0ZWN0IHRoZSBwYXR0ZXJuIGVkZ2VzLiAqLworCWZv ciAoeSA9IDA7IHkgPCBoZWlnaHQ7IHkrKykgeworCQlpZiAoeSA8IHNwYW4gfHwgeSA+IChoZWln aHQgLSBzcGFuIC0gMSkpCisJCQljb250aW51ZTsKKworCQlmb3IgKHggPSAwOyB4IDwgd2lkdGg7 IHgrKykgeworCQkJdW5zaWduZWQgaW50IHhkaWZmID0gMCwgeWRpZmYgPSAwOworCisJCQlpZiAo eCA8IHNwYW4gfHwgeCA+ICh3aWR0aCAtIHNwYW4gLSAxKSkKKwkJCQljb250aW51ZTsKKworCQkJ Zm9yIChjID0gMDsgYyA8IDM7IGMrKykgeworCQkJCXhkaWZmICs9IGFicyhYUjI0X0NPTE9SX1ZB TFVFKHJlZl9kYXRhLCByZWZfc3RyaWRlLCB4ICsgc3BhbiwgeSwgYykgLQorCQkJCQkgICAgIFhS MjRfQ09MT1JfVkFMVUUocmVmX2RhdGEsIHJlZl9zdHJpZGUsIHggLSBzcGFuLCB5LCBjKSk7CisJ CQkJeWRpZmYgKz0gYWJzKFhSMjRfQ09MT1JfVkFMVUUocmVmX2RhdGEsIHJlZl9zdHJpZGUsIHgs IHkgKyBzcGFuLCBjKSAtCisJCQkJCSAgICAgWFIyNF9DT0xPUl9WQUxVRShyZWZfZGF0YSwgcmVm X3N0cmlkZSwgeCwgeSAtIHNwYW4sIGMpKTsKKwkJCX0KKworCQkJZWRnZXNfbWFwW3kgKiB3aWR0 aCArIHhdID0gKHhkaWZmID4gZWRnZV90aHJlc2hvbGQgfHwKKwkJCQkJCSAgICB5ZGlmZiA+IGVk Z2VfdGhyZXNob2xkKTsKKwkJfQorCX0KKworCS8qIFNlY29uZCBwYXNzIHRvIGRldGVjdCBlcnJv cnMuICovCisJZm9yICh5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7CisJCWZvciAoeCA9IDA7IHgg PCB3aWR0aDsgeCsrKSB7CisJCQlib29sIGVycm9yID0gZmFsc2U7CisKKwkJCWlmIChlZGdlc19t YXBbeSAqIHdpZHRoICsgeF0pCisJCQkJY29udGludWU7CisKKwkJCWZvciAoYyA9IDA7IGMgPCAz OyBjKyspIHsKKwkJCQl1bnNpZ25lZCBpbnQgZGlmZjsKKworCQkJCS8qIENvbXBhcmUgdGhlIHJl ZmVyZW5jZSBhbmQgY2FwdHVyZSB2YWx1ZXMuICovCisJCQkJZGlmZiA9IGFicyhYUjI0X0NPTE9S X1ZBTFVFKHJlZl9kYXRhLCByZWZfc3RyaWRlLCB4LCB5LCBjKSAtCisJCQkJCSAgIFhSMjRfQ09M T1JfVkFMVUUoY2FwX2RhdGEsIGNhcF9zdHJpZGUsIHgsIHksIGMpKTsKKworCQkJCWlmIChkaWZm ID4gY29sb3JfZXJyb3JfdGhyZXNob2xkKQorCQkJCQllcnJvciA9IHRydWU7CisJCQl9CisKKwkJ CS8qIEFsbG93IGVycm9yIGlmIGNvbWluZyBvbiBvciBvZmYgYW4gZWRnZSAob24geCkuICovCisJ CQlpZiAoZXJyb3IgJiYgeCA+PSBzcGFuICYmIHggPD0gKHdpZHRoIC0gc3BhbiAtIDEpICYmCisJ CQkgICAgZWRnZXNfbWFwW3kgKiB3aWR0aCArICh4IC0gc3BhbildICE9CisJCQkgICAgZWRnZXNf bWFwW3kgKiB3aWR0aCArICh4ICsgc3BhbildKQorCQkJCWNvbnRpbnVlOworCisJCQkvKiBBbGxv dyBlcnJvciBpZiBjb21pbmcgb24gb3Igb2ZmIGFuIGVkZ2UgKG9uIHkpLiAqLworCQkJaWYgKGVy cm9yICYmIHkgPj0gc3BhbiAmJiB5IDw9IChoZWlnaHQgLSBzcGFuIC0gMSkgJiYKKwkJCSAgICBl ZGdlc19tYXBbKHkgLSBzcGFuKSAqIHdpZHRoICsgeF0gIT0KKwkJCSAgICBlZGdlc19tYXBbKHkg KyBzcGFuKSAqIHdpZHRoICsgeF0gJiYgZXJyb3IpCisJCQkJY29udGludWU7CisKKwkJCWlmIChl cnJvcikKKwkJCQllcnJvcnMrKzsKKworCQkJcGl4ZWxzKys7CisJCX0KKwl9CisKKwlmcmVlKGVk Z2VzX21hcCk7CisKKwllcnJvcl9yYXRlID0gKGRvdWJsZSkgZXJyb3JzIC8gcGl4ZWxzOworCisJ aWYgKGVycm9yX3JhdGUgPCBlcnJvcl9yYXRlX3RocmVzaG9sZCkKKwkJbWF0Y2ggPSB0cnVlOwor CisJaWd0X2RlYnVnKCJDaGVja2VyYm9hcmQgcGF0dGVybiAlcyB3aXRoIGVycm9yIHJhdGUgJWYg JSVcbiIsCisJCSAgbWF0Y2ggPyAibWF0Y2hlZCIgOiAibm90IG1hdGNoZWQiLCBlcnJvcl9yYXRl ICogMTAwKTsKKworCXJldHVybiBtYXRjaDsKK30KZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZnJhbWUu aCBiL2xpYi9pZ3RfZnJhbWUuaAppbmRleCAxMWY5NmNiZWEyMDMuLmY0NGY1N2Q3Y2U3MyAxMDA2 NDQKLS0tIGEvbGliL2lndF9mcmFtZS5oCisrKyBiL2xpYi9pZ3RfZnJhbWUuaApAQCAtMzgsNSAr MzgsNyBAQCB2b2lkIGlndF93cml0ZV9jb21wYXJlZF9mcmFtZXNfdG9fcG5nKGNhaXJvX3N1cmZh Y2VfdCAqcmVmZXJlbmNlLAogCQkJCSAgICAgIGNvbnN0IGNoYXIgKmNhcHR1cmVfc3VmZml4KTsK IGJvb2wgaWd0X2NoZWNrX2FuYWxvZ19mcmFtZV9tYXRjaChjYWlyb19zdXJmYWNlX3QgKnJlZmVy ZW5jZSwKIAkJCQkgIGNhaXJvX3N1cmZhY2VfdCAqY2FwdHVyZSk7Citib29sIGlndF9jaGVja19j aGVja2VyYm9hcmRfZnJhbWVfbWF0Y2goY2Fpcm9fc3VyZmFjZV90ICpyZWZlcmVuY2UsCisJCQkJ CWNhaXJvX3N1cmZhY2VfdCAqY2FwdHVyZSk7CiAKICNlbmRpZgotLSAKMi4yMC4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=