From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.bootlin.com (mail.bootlin.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id C96A76F5AA for ; Fri, 11 Jan 2019 09:06:39 +0000 (UTC) From: Paul Kocialkowski Date: Fri, 11 Jan 2019 10:05:29 +0100 Message-Id: <20190111090532.19235-19-paul.kocialkowski@bootlin.com> In-Reply-To: <20190111090532.19235-1-paul.kocialkowski@bootlin.com> References: <20190111090532.19235-1-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3 18/21] 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 Cc: Petri Latvala , Eben Upton , Thomas Petazzoni List-ID: VGhpcyBpbnRyb2R1Y2VzIGEgbmV3IGZyYW1lIGNvbXBhcmlzb24gbWV0aG9kIHRoYXQgd2FzIGRl c2lnbmVkIGZvcgpwYXR0ZXJucyB0aGF0IGZvbGxvdyBhIGNoZWNrZXJib2FyZCBzdHlsZS4gVGhl c2UgcGF0dGVybnMgYXJlIG1hZGUgb2YKY29uc2VjdXRpdmUgcmVjdGFuZ3VsYXIgc2hhcGVzIHdp dGggYWx0ZXJuYXRpbmcgc29saWQgY29sb3JzLiBUaGV5IGFyZQpjdXJyZW50bHkgdXNlZCBmb3Ig c29tZSBDaGFtZWxpdW0tYmFzZWQgdGVzdHMuCgpUaGUgbWV0aG9kIGlzIHBhcnRpY3VsYXJseSBh ZGFwdGVkIGZvciBjYXNlcyB3aGVyZSB0aGUgZWRnZXMgb2YgdGhlCnNoYXBlcyBtaWdodCBiZSBi bHVycmVkIChlLmcuIGR1ZSB0byBzY2FsaW5nKSwgd2hpY2ggbWFrZXMgaXQgaW1wb3NzaWJsZQp0 byB1c2UgcGl4ZWwtcGVyZmVjdCBvciBDUkMtYmFzZWQgY29tcGFyaXNvbnMgdG8gZGVjaWRlIHdo ZXRoZXIgdGhlCmNhcHR1cmVkIGZyYW1lIG1hdGNoZXMgdGhlIHJlZmVyZW5jZS4KCk92ZXJhbGws IHRoaXMgdGVzdCB3aWxsIGZpcnN0IGRldGVjdCB0aGUgZWRnZXMgb2YgdGhlIHBhdHRlcm4gYW5k IGxhdGVyCmV4Y2x1ZGUgdGhlbSBmcm9tIGNvbXBhcmlzb24uIENvbG9ycyBhcmUgY29tcGFyZWQg YmV0d2VlbiB0aGUgcmVmZXJlbmNlCmFuZCBjYXB0dXJlIHdpdGggYSBsb3cgdGhyZXNob2xkIGZv ciBlcnJvci4gQSBwZXJjZW50YWdlIG9mIHRoZSBmYXVsdHkKcGl4ZWxzIGlzIGNhbGN1bGF0ZWQg YW5kIHRoZSBjYXB0dXJlZCBmcmFtZSBpcyBjb25zaWRlcmVkIGludmFsaWQgaWYKbW9yZSB0aGFu IG9uZSBwZXJjZW50IG9mIHRoZSBwaXhlbHMgYXJlIGVycm9uZW91cy4KClNpZ25lZC1vZmYtYnk6 IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBib290bGluLmNvbT4KLS0tCiBs aWIvaWd0X2ZyYW1lLmMgfCAxMjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiBsaWIvaWd0X2ZyYW1lLmggfCAgIDIgKwogMiBmaWxlcyBjaGFuZ2VkLCAx MjMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZnJhbWUuYyBiL2xpYi9pZ3Rf ZnJhbWUuYwppbmRleCA2OTg0YzAyZTk5MTIuLmUwMjE1NjYwZWE2ZSAxMDA2NDQKLS0tIGEvbGli L2lndF9mcmFtZS5jCisrKyBiL2xpYi9pZ3RfZnJhbWUuYwpAQCAtMjY3LDMgKzI2NywxMjQgQEAg Y29tcGxldGU6CiAKIAlyZXR1cm4gbWF0Y2g7CiB9CisKKyNkZWZpbmUgWFIyNF9DT0xPUl9WQUxV RShkYXRhLCBzdHJpZGUsIHgsIHksIGMpIFwKKwkqKCh1aW50OF90ICopKGRhdGEpICsgKHkpICog KHN0cmlkZSkgKyA0ICogKHgpICsgKGMpKQorCisvKioKKyAqIGlndF9jaGVja19jaGVja2VyYm9h cmRfZnJhbWVfbWF0Y2g6CisgKiBAcmVmZXJlbmNlOiBUaGUgcmVmZXJlbmNlIGNhaXJvIHN1cmZh Y2UKKyAqIEBjYXB0dXJlOiBUaGUgY2FwdHVyZWQgY2Fpcm8gc3VyZmFjZQorICoKKyAqIENoZWNr cyB0aGF0IHRoZSByZWZlcmVuY2UgZnJhbWUgbWF0Y2hlcyB0aGUgY2FwdHVyZWQgZnJhbWUgdXNp bmcgYQorICogbWV0aG9kIGRlc2lnbmVkIGZvciBjaGVja2VyYm9hcmQgcGF0dGVybnMuIFRoZXNl IHBhdHRlcm5zIGFyZSBtYWRlIG9mCisgKiBjb25zZWN1dGl2ZSByZWN0YW5ndWxhciBzaGFwZXMg d2l0aCBhbHRlcm5hdGluZyBzb2xpZCBjb2xvcnMuCisgKgorICogVGhlIGludGVudCBvZiB0aGlz IG1ldGhvZCBpcyB0byBjb3ZlciBjYXNlcyB3aGVyZSB0aGUgY2FwdHVyZWQgcmVzdWx0IGlzCisg KiBwaXhlbC1wZXJmZWN0IGR1ZSB0byBmZWF0dXJlcyBzdWNoIGFzIHNjYWxpbmcgb3IgWVVWIGNv bnZlcnNpb24gYW5kCisgKiBzdWJzYW1wbGluZy4gU3VjaCBlZmZlY3RzIGFyZSBtb3N0bHkgbm90 aWNlYWJsZSBvbiB0aGUgZWRnZXMgb2YgdGhlCisgKiBwYXR0ZXJucywgc28gdGhleSBhcmUgZGV0 ZWN0ZWQgYW5kIGV4Y2x1ZGVkIGZyb20gdGhlIGNvbXBhcmlzb24uCisgKgorICogUmV0dXJuczog YSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZnJhbWVzIG1hdGNoCisgKi8KK2Jvb2wg aWd0X2NoZWNrX2NoZWNrZXJib2FyZF9mcmFtZV9tYXRjaChjYWlyb19zdXJmYWNlX3QgKnJlZmVy ZW5jZSwKKwkJCQkJY2Fpcm9fc3VyZmFjZV90ICpjYXB0dXJlKQoreworCXVuc2lnbmVkIGludCB3 aWR0aCwgaGVpZ2h0LCByZWZfc3RyaWRlLCBjYXBfc3RyaWRlOworCXZvaWQgKnJlZl9kYXRhLCAq Y2FwX2RhdGE7CisJdW5zaWduZWQgY2hhciAqZWRnZXNfbWFwOworCXVuc2lnbmVkIGludCB4LCB5 LCBjOworCXVuc2lnbmVkIGludCBlcnJvcnMgPSAwLCBwaXhlbHMgPSAwOworCXVuc2lnbmVkIGlu dCBlZGdlX3RocmVzaG9sZCA9IDEwMDsKKwl1bnNpZ25lZCBpbnQgY29sb3JfZXJyb3JfdGhyZXNo b2xkID0gMjQ7CisJZG91YmxlIGVycm9yX3JhdGVfdGhyZXNob2xkID0gMC4wMTsKKwlkb3VibGUg ZXJyb3JfcmF0ZTsKKwl1bnNpZ25lZCBpbnQgc3BhbiA9IDI7CisJYm9vbCBtYXRjaCA9IGZhbHNl OworCisJd2lkdGggPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChyZWZlcmVuY2UpOwor CWhlaWdodCA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hlaWdodChyZWZlcmVuY2UpOworCisJ cmVmX3N0cmlkZSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShyZWZlcmVuY2UpOwor CXJlZl9kYXRhID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShyZWZlcmVuY2UpOworCWln dF9hc3NlcnQocmVmX2RhdGEpOworCisJY2FwX3N0cmlkZSA9IGNhaXJvX2ltYWdlX3N1cmZhY2Vf Z2V0X3N0cmlkZShjYXB0dXJlKTsKKwljYXBfZGF0YSA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0 X2RhdGEoY2FwdHVyZSk7CisJaWd0X2Fzc2VydChjYXBfZGF0YSk7CisKKwllZGdlc19tYXAgPSBj YWxsb2MoMSwgd2lkdGggKiBoZWlnaHQpOworCisJLyogRmlyc3QgcGFzcyB0byBkZXRlY3QgdGhl IHBhdHRlcm4gZWRnZXMuICovCisJZm9yICh5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7CisJCWlm ICh5IDwgc3BhbiB8fCB5ID4gKGhlaWdodCAtIHNwYW4gLSAxKSkKKwkJCWNvbnRpbnVlOworCisJ CWZvciAoeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7CisJCQl1bnNpZ25lZCBpbnQgeGRpZmYgPSAw LCB5ZGlmZiA9IDA7CisKKwkJCWlmICh4IDwgc3BhbiB8fCB4ID4gKHdpZHRoIC0gc3BhbiAtIDEp KQorCQkJCWNvbnRpbnVlOworCisJCQlmb3IgKGMgPSAwOyBjIDwgMzsgYysrKSB7CisJCQkJeGRp ZmYgKz0gYWJzKFhSMjRfQ09MT1JfVkFMVUUocmVmX2RhdGEsIHJlZl9zdHJpZGUsIHggKyBzcGFu LCB5LCBjKSAtCisJCQkJCSAgICAgWFIyNF9DT0xPUl9WQUxVRShyZWZfZGF0YSwgcmVmX3N0cmlk ZSwgeCAtIHNwYW4sIHksIGMpKTsKKwkJCQl5ZGlmZiArPSBhYnMoWFIyNF9DT0xPUl9WQUxVRShy ZWZfZGF0YSwgcmVmX3N0cmlkZSwgeCwgeSArIHNwYW4sIGMpIC0KKwkJCQkJICAgICBYUjI0X0NP TE9SX1ZBTFVFKHJlZl9kYXRhLCByZWZfc3RyaWRlLCB4LCB5IC0gc3BhbiwgYykpOworCQkJfQor CisJCQllZGdlc19tYXBbeSAqIHdpZHRoICsgeF0gPSAoeGRpZmYgPiBlZGdlX3RocmVzaG9sZCB8 fAorCQkJCQkJICAgIHlkaWZmID4gZWRnZV90aHJlc2hvbGQpOworCQl9CisJfQorCisJLyogU2Vj b25kIHBhc3MgdG8gZGV0ZWN0IGVycm9ycy4gKi8KKwlmb3IgKHkgPSAwOyB5IDwgaGVpZ2h0OyB5 KyspIHsKKwkJZm9yICh4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsKKwkJCWJvb2wgZXJyb3IgPSBm YWxzZTsKKworCQkJaWYgKGVkZ2VzX21hcFt5ICogd2lkdGggKyB4XSkKKwkJCQljb250aW51ZTsK KworCQkJZm9yIChjID0gMDsgYyA8IDM7IGMrKykgeworCQkJCXVuc2lnbmVkIGludCBkaWZmOwor CisJCQkJLyogQ29tcGFyZSB0aGUgcmVmZXJlbmNlIGFuZCBjYXB0dXJlIHZhbHVlcy4gKi8KKwkJ CQlkaWZmID0gYWJzKFhSMjRfQ09MT1JfVkFMVUUocmVmX2RhdGEsIHJlZl9zdHJpZGUsIHgsIHks IGMpIC0KKwkJCQkJICAgWFIyNF9DT0xPUl9WQUxVRShjYXBfZGF0YSwgY2FwX3N0cmlkZSwgeCwg eSwgYykpOworCisJCQkJaWYgKGRpZmYgPiBjb2xvcl9lcnJvcl90aHJlc2hvbGQpCisJCQkJCWVy cm9yID0gdHJ1ZTsKKwkJCX0KKworCQkJLyogQWxsb3cgZXJyb3IgaWYgY29taW5nIG9uIG9yIG9m ZiBhbiBlZGdlIChvbiB4KS4gKi8KKwkJCWlmIChlcnJvciAmJiB4ID49IHNwYW4gJiYgeCA8PSAo d2lkdGggLSBzcGFuIC0gMSkgJiYKKwkJCSAgICBlZGdlc19tYXBbeSAqIHdpZHRoICsgKHggLSBz cGFuKV0gIT0KKwkJCSAgICBlZGdlc19tYXBbeSAqIHdpZHRoICsgKHggKyBzcGFuKV0pCisJCQkJ Y29udGludWU7CisKKwkJCS8qIEFsbG93IGVycm9yIGlmIGNvbWluZyBvbiBvciBvZmYgYW4gZWRn ZSAob24geSkuICovCisJCQlpZiAoZXJyb3IgJiYgeSA+PSBzcGFuICYmIHkgPD0gKGhlaWdodCAt IHNwYW4gLSAxKSAmJgorCQkJICAgIGVkZ2VzX21hcFsoeSAtIHNwYW4pICogd2lkdGggKyB4XSAh PQorCQkJICAgIGVkZ2VzX21hcFsoeSArIHNwYW4pICogd2lkdGggKyB4XSAmJiBlcnJvcikKKwkJ CQljb250aW51ZTsKKworCQkJaWYgKGVycm9yKQorCQkJCWVycm9ycysrOworCisJCQlwaXhlbHMr KzsKKwkJfQorCX0KKworCWZyZWUoZWRnZXNfbWFwKTsKKworCWVycm9yX3JhdGUgPSAoZG91Ymxl KSBlcnJvcnMgLyBwaXhlbHM7CisKKwlpZiAoZXJyb3JfcmF0ZSA8IGVycm9yX3JhdGVfdGhyZXNo b2xkKQorCQltYXRjaCA9IHRydWU7CisKKwlpZ3RfZGVidWcoIkNoZWNrZXJib2FyZCBwYXR0ZXJu ICVzIHdpdGggZXJyb3IgcmF0ZSAlZiAlJVxuIiwKKwkJICBtYXRjaCA/ICJtYXRjaGVkIiA6ICJu b3QgbWF0Y2hlZCIsIGVycm9yX3JhdGUgKiAxMDApOworCisJcmV0dXJuIG1hdGNoOworfQpkaWZm IC0tZ2l0IGEvbGliL2lndF9mcmFtZS5oIGIvbGliL2lndF9mcmFtZS5oCmluZGV4IDExZjk2Y2Jl YTIwMy4uZjQ0ZjU3ZDdjZTczIDEwMDY0NAotLS0gYS9saWIvaWd0X2ZyYW1lLmgKKysrIGIvbGli L2lndF9mcmFtZS5oCkBAIC0zOCw1ICszOCw3IEBAIHZvaWQgaWd0X3dyaXRlX2NvbXBhcmVkX2Zy YW1lc190b19wbmcoY2Fpcm9fc3VyZmFjZV90ICpyZWZlcmVuY2UsCiAJCQkJICAgICAgY29uc3Qg Y2hhciAqY2FwdHVyZV9zdWZmaXgpOwogYm9vbCBpZ3RfY2hlY2tfYW5hbG9nX2ZyYW1lX21hdGNo KGNhaXJvX3N1cmZhY2VfdCAqcmVmZXJlbmNlLAogCQkJCSAgY2Fpcm9fc3VyZmFjZV90ICpjYXB0 dXJlKTsKK2Jvb2wgaWd0X2NoZWNrX2NoZWNrZXJib2FyZF9mcmFtZV9tYXRjaChjYWlyb19zdXJm YWNlX3QgKnJlZmVyZW5jZSwKKwkJCQkJY2Fpcm9fc3VyZmFjZV90ICpjYXB0dXJlKTsKIAogI2Vu ZGlmCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=