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 D31536E5FC for ; Fri, 25 Jan 2019 14:07:36 +0000 (UTC) From: Paul Kocialkowski Date: Fri, 25 Jan 2019 15:06:20 +0100 Message-Id: <20190125140623.10801-19-paul.kocialkowski@bootlin.com> In-Reply-To: <20190125140623.10801-1-paul.kocialkowski@bootlin.com> References: <20190125140623.10801-1-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v4 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 List-ID: VGhpcyBpbnRyb2R1Y2VzIGEgbmV3IGZyYW1lIGNvbXBhcmlzb24gbWV0aG9kIHRoYXQgd2FzIGRl c2lnbmVkIGZvcgpwYXR0ZXJucyB0aGF0IGZvbGxvdyBhIGNoZWNrZXJib2FyZCBzdHlsZS4gVGhl c2UgcGF0dGVybnMgYXJlIG1hZGUgb2YKY29uc2VjdXRpdmUgcmVjdGFuZ3VsYXIgc2hhcGVzIHdp dGggYWx0ZXJuYXRpbmcgc29saWQgY29sb3JzLiBUaGV5IGFyZQpjdXJyZW50bHkgdXNlZCBmb3Ig c29tZSBDaGFtZWxpdW0tYmFzZWQgdGVzdHMuCgpUaGUgbWV0aG9kIGlzIHBhcnRpY3VsYXJseSBh ZGFwdGVkIGZvciBjYXNlcyB3aGVyZSB0aGUgZWRnZXMgb2YgdGhlCnNoYXBlcyBtaWdodCBiZSBi bHVycmVkIChlLmcuIGR1ZSB0byBzY2FsaW5nKSwgd2hpY2ggbWFrZXMgaXQgaW1wb3NzaWJsZQp0 byB1c2UgcGl4ZWwtcGVyZmVjdCBvciBDUkMtYmFzZWQgY29tcGFyaXNvbnMgdG8gZGVjaWRlIHdo ZXRoZXIgdGhlCmNhcHR1cmVkIGZyYW1lIG1hdGNoZXMgdGhlIHJlZmVyZW5jZS4KCk92ZXJhbGws IHRoaXMgdGVzdCB3aWxsIGZpcnN0IGRldGVjdCB0aGUgZWRnZXMgb2YgdGhlIHBhdHRlcm4gYW5k IGxhdGVyCmV4Y2x1ZGUgdGhlbSBmcm9tIGNvbXBhcmlzb24uIENvbG9ycyBhcmUgY29tcGFyZWQg YmV0d2VlbiB0aGUgcmVmZXJlbmNlCmFuZCBjYXB0dXJlIHdpdGggYSBsb3cgdGhyZXNob2xkIGZv ciBlcnJvci4gQSBwZXJjZW50YWdlIG9mIHRoZSBmYXVsdHkKcGl4ZWxzIGlzIGNhbGN1bGF0ZWQg YW5kIHRoZSBjYXB0dXJlZCBmcmFtZSBpcyBjb25zaWRlcmVkIGludmFsaWQgaWYKbW9yZSB0aGFu IG9uZSBwZXJjZW50IG9mIHRoZSBwaXhlbHMgYXJlIGVycm9uZW91cy4KClNpZ25lZC1vZmYtYnk6 IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBib290bGluLmNvbT4KUmV2aWV3 ZWQtYnk6IEx5dWRlIFBhdWwgPGx5dWRlQHJlZGhhdC5jb20+Ci0tLQogbGliL2lndF9mcmFtZS5j IHwgMTM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog bGliL2lndF9mcmFtZS5oIHwgICAyICsKIDIgZmlsZXMgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9saWIvaWd0X2ZyYW1lLmMgYi9saWIvaWd0X2ZyYW1lLmMKaW5kZXgg Njk4NGMwMmU5OTEyLi40NTUyM2E3OWY2MDEgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZnJhbWUuYwor KysgYi9saWIvaWd0X2ZyYW1lLmMKQEAgLTI2NywzICsyNjcsMTM4IEBAIGNvbXBsZXRlOgogCiAJ cmV0dXJuIG1hdGNoOwogfQorCisjZGVmaW5lIFhSMjRfQ09MT1JfVkFMVUUoZGF0YSwgc3RyaWRl LCB4LCB5LCBjKSBcCisJKigodWludDhfdCAqKShkYXRhKSArICh5KSAqIChzdHJpZGUpICsgNCAq ICh4KSArIChjKSkKKworLyoqCisgKiBpZ3RfY2hlY2tfY2hlY2tlcmJvYXJkX2ZyYW1lX21hdGNo OgorICogQHJlZmVyZW5jZTogVGhlIHJlZmVyZW5jZSBjYWlybyBzdXJmYWNlCisgKiBAY2FwdHVy ZTogVGhlIGNhcHR1cmVkIGNhaXJvIHN1cmZhY2UKKyAqCisgKiBDaGVja3MgdGhhdCB0aGUgcmVm ZXJlbmNlIGZyYW1lIG1hdGNoZXMgdGhlIGNhcHR1cmVkIGZyYW1lIHVzaW5nIGEKKyAqIG1ldGhv ZCBkZXNpZ25lZCBmb3IgY2hlY2tlcmJvYXJkIHBhdHRlcm5zLiBUaGVzZSBwYXR0ZXJucyBhcmUg bWFkZSBvZgorICogY29uc2VjdXRpdmUgcmVjdGFuZ3VsYXIgc2hhcGVzIHdpdGggYWx0ZXJuYXRp bmcgc29saWQgY29sb3JzLgorICoKKyAqIFRoZSBpbnRlbnQgb2YgdGhpcyBtZXRob2QgaXMgdG8g Y292ZXIgY2FzZXMgd2hlcmUgdGhlIGNhcHR1cmVkIHJlc3VsdCBpcworICogbm90IHBpeGVsLXBl cmZlY3QgZHVlIHRvIGZlYXR1cmVzIHN1Y2ggYXMgc2NhbGluZyBvciBZVVYgY29udmVyc2lvbiBh bmQKKyAqIHN1YnNhbXBsaW5nLiBTdWNoIGVmZmVjdHMgYXJlIG1vc3RseSBub3RpY2VhYmxlIG9u IHRoZSBlZGdlcyBvZiB0aGUKKyAqIHBhdHRlcm5zLCBzbyB0aGV5IGFyZSBkZXRlY3RlZCBhbmQg ZXhjbHVkZWQgZnJvbSB0aGUgY29tcGFyaXNvbi4KKyAqCisgKiBUaGUgYWxnb3JpdGhtIHdvcmtz IHdpdGggdHdvIG1ham9yIHN0ZXBzLiBGaXJzdCwgdGhlIGVkZ2VzIG9mIHRoZSByZWZlcmVuY2UK KyAqIHBhdHRlcm4gYXJlIGRldGVjdGVkIG9uIHRoZSB4IGFuZCB5IGF4aXMgaW5kZXBlbmRlbnRs eS4gVGhlIGRldGVjdGlvbiBpcyBkb25lCisgKiBieSBjYWxjdWxhdGluZyBhbiBhYnNvbHV0ZSBk aWZmZXJlbmNlIHdpdGggYSBzcGFuIG9mIGEgZmV3IHBpeGVscyBiZWZvcmUgYW5kCisgKiBhZnRl ciB0aGUgY3VycmVudCBwb3NpdGlvbiBvbiB0aGUgZ2l2ZW4gYXhpcywgYWNjdW11bGF0ZWQgZm9y IGVhY2ggY29sb3IKKyAqIGNvbXBvbmVudC4gSWYgdGhlIHN1bSBpcyBhYm92ZSBhIGdpdmVuIHRo cmVzaG9sZCBvbiBvbmUgb2YgdGhlIGF4aXMsIHRoZQorICogcG9zaXRpb24gaXMgbWFya2VkIGFz IGFuIGVkZ2UuIEluIHRoZSBzZWNvbmQgc3RlcCwgdGhlIHBpeGVsIHZhbHVlcyBhcmUKKyAqIGNv bXBhcmVkIHBlci1jb21wb25lbnQsIGV4Y2x1ZGluZyBwb3NpdGlvbnMgdGhhdCB3ZXJlIG1hcmtl ZCBhcyBlZGdlcyBvcgorICogdGhhdCBhcmUgYXQgYSB0cmFuc2l0aW9uIGJldHdlZW4gYW4gZWRn ZSBhbmQgYSBub24tZWRnZS4gQW4gZXJyb3IgdGhyZXNob2xkCisgKiAoZm9yIGVhY2ggaW5kaXZp ZHVhbCBjb2xvciBjb21wb25lbnQpIGlzIHVzZWQgdG8gbWFyayB0aGUgcG9zaXRpb24gYXMKKyAq IGVycm9uZW91cyBvciBub3QuIFRoZSByYXRpbyBvZiBlcnJvbmVvdXMgcGl4ZWxzIG92ZXIgY29t cGFyZWQgcGl4ZWxzICh0aGF0CisgKiBkb2VzIG5vdCBjb3VudCBleGNsdWRlZCBwaXhlbHMpIGlz IHRoZW4gY2FsY3VsYXRlZCBhbmQgY29tcGFyZWQgdG8gdGhlIGVycm9yCisgKiByYXRlIHRocmVz aG9sZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZnJhbWVzIG1hdGNoIG9yIG5vdC4KKyAqCisg KiBSZXR1cm5zOiBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmcmFtZXMgbWF0Y2gK KyAqLworYm9vbCBpZ3RfY2hlY2tfY2hlY2tlcmJvYXJkX2ZyYW1lX21hdGNoKGNhaXJvX3N1cmZh Y2VfdCAqcmVmZXJlbmNlLAorCQkJCQljYWlyb19zdXJmYWNlX3QgKmNhcHR1cmUpCit7CisJdW5z aWduZWQgaW50IHdpZHRoLCBoZWlnaHQsIHJlZl9zdHJpZGUsIGNhcF9zdHJpZGU7CisJdm9pZCAq cmVmX2RhdGEsICpjYXBfZGF0YTsKKwl1bnNpZ25lZCBjaGFyICplZGdlc19tYXA7CisJdW5zaWdu ZWQgaW50IHgsIHksIGM7CisJdW5zaWduZWQgaW50IGVycm9ycyA9IDAsIHBpeGVscyA9IDA7CisJ dW5zaWduZWQgaW50IGVkZ2VfdGhyZXNob2xkID0gMTAwOworCXVuc2lnbmVkIGludCBjb2xvcl9l cnJvcl90aHJlc2hvbGQgPSAyNDsKKwlkb3VibGUgZXJyb3JfcmF0ZV90aHJlc2hvbGQgPSAwLjAx OworCWRvdWJsZSBlcnJvcl9yYXRlOworCXVuc2lnbmVkIGludCBzcGFuID0gMjsKKwlib29sIG1h dGNoID0gZmFsc2U7CisKKwl3aWR0aCA9IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3dpZHRoKHJl ZmVyZW5jZSk7CisJaGVpZ2h0ID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHJlZmVy ZW5jZSk7CisKKwlyZWZfc3RyaWRlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRlKHJl ZmVyZW5jZSk7CisJcmVmX2RhdGEgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKHJlZmVy ZW5jZSk7CisJaWd0X2Fzc2VydChyZWZfZGF0YSk7CisKKwljYXBfc3RyaWRlID0gY2Fpcm9faW1h Z2Vfc3VyZmFjZV9nZXRfc3RyaWRlKGNhcHR1cmUpOworCWNhcF9kYXRhID0gY2Fpcm9faW1hZ2Vf c3VyZmFjZV9nZXRfZGF0YShjYXB0dXJlKTsKKwlpZ3RfYXNzZXJ0KGNhcF9kYXRhKTsKKworCWVk Z2VzX21hcCA9IGNhbGxvYygxLCB3aWR0aCAqIGhlaWdodCk7CisJaWd0X2Fzc2VydChlZGdlc19t YXApOworCisJLyogRmlyc3QgcGFzcyB0byBkZXRlY3QgdGhlIHBhdHRlcm4gZWRnZXMuICovCisJ Zm9yICh5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7CisJCWlmICh5IDwgc3BhbiB8fCB5ID4gKGhl aWdodCAtIHNwYW4gLSAxKSkKKwkJCWNvbnRpbnVlOworCisJCWZvciAoeCA9IDA7IHggPCB3aWR0 aDsgeCsrKSB7CisJCQl1bnNpZ25lZCBpbnQgeGRpZmYgPSAwLCB5ZGlmZiA9IDA7CisKKwkJCWlm ICh4IDwgc3BhbiB8fCB4ID4gKHdpZHRoIC0gc3BhbiAtIDEpKQorCQkJCWNvbnRpbnVlOworCisJ CQlmb3IgKGMgPSAwOyBjIDwgMzsgYysrKSB7CisJCQkJeGRpZmYgKz0gYWJzKFhSMjRfQ09MT1Jf VkFMVUUocmVmX2RhdGEsIHJlZl9zdHJpZGUsIHggKyBzcGFuLCB5LCBjKSAtCisJCQkJCSAgICAg WFIyNF9DT0xPUl9WQUxVRShyZWZfZGF0YSwgcmVmX3N0cmlkZSwgeCAtIHNwYW4sIHksIGMpKTsK KwkJCQl5ZGlmZiArPSBhYnMoWFIyNF9DT0xPUl9WQUxVRShyZWZfZGF0YSwgcmVmX3N0cmlkZSwg eCwgeSArIHNwYW4sIGMpIC0KKwkJCQkJICAgICBYUjI0X0NPTE9SX1ZBTFVFKHJlZl9kYXRhLCBy ZWZfc3RyaWRlLCB4LCB5IC0gc3BhbiwgYykpOworCQkJfQorCisJCQllZGdlc19tYXBbeSAqIHdp ZHRoICsgeF0gPSAoeGRpZmYgPiBlZGdlX3RocmVzaG9sZCB8fAorCQkJCQkJICAgIHlkaWZmID4g ZWRnZV90aHJlc2hvbGQpOworCQl9CisJfQorCisJLyogU2Vjb25kIHBhc3MgdG8gZGV0ZWN0IGVy cm9ycy4gKi8KKwlmb3IgKHkgPSAwOyB5IDwgaGVpZ2h0OyB5KyspIHsKKwkJZm9yICh4ID0gMDsg eCA8IHdpZHRoOyB4KyspIHsKKwkJCWJvb2wgZXJyb3IgPSBmYWxzZTsKKworCQkJaWYgKGVkZ2Vz X21hcFt5ICogd2lkdGggKyB4XSkKKwkJCQljb250aW51ZTsKKworCQkJZm9yIChjID0gMDsgYyA8 IDM7IGMrKykgeworCQkJCXVuc2lnbmVkIGludCBkaWZmOworCisJCQkJLyogQ29tcGFyZSB0aGUg cmVmZXJlbmNlIGFuZCBjYXB0dXJlIHZhbHVlcy4gKi8KKwkJCQlkaWZmID0gYWJzKFhSMjRfQ09M T1JfVkFMVUUocmVmX2RhdGEsIHJlZl9zdHJpZGUsIHgsIHksIGMpIC0KKwkJCQkJICAgWFIyNF9D T0xPUl9WQUxVRShjYXBfZGF0YSwgY2FwX3N0cmlkZSwgeCwgeSwgYykpOworCisJCQkJaWYgKGRp ZmYgPiBjb2xvcl9lcnJvcl90aHJlc2hvbGQpCisJCQkJCWVycm9yID0gdHJ1ZTsKKwkJCX0KKwor CQkJLyogQWxsb3cgZXJyb3IgaWYgY29taW5nIG9uIG9yIG9mZiBhbiBlZGdlIChvbiB4KS4gKi8K KwkJCWlmIChlcnJvciAmJiB4ID49IHNwYW4gJiYgeCA8PSAod2lkdGggLSBzcGFuIC0gMSkgJiYK KwkJCSAgICBlZGdlc19tYXBbeSAqIHdpZHRoICsgKHggLSBzcGFuKV0gIT0KKwkJCSAgICBlZGdl c19tYXBbeSAqIHdpZHRoICsgKHggKyBzcGFuKV0pCisJCQkJY29udGludWU7CisKKwkJCS8qIEFs bG93IGVycm9yIGlmIGNvbWluZyBvbiBvciBvZmYgYW4gZWRnZSAob24geSkuICovCisJCQlpZiAo ZXJyb3IgJiYgeSA+PSBzcGFuICYmIHkgPD0gKGhlaWdodCAtIHNwYW4gLSAxKSAmJgorCQkJICAg IGVkZ2VzX21hcFsoeSAtIHNwYW4pICogd2lkdGggKyB4XSAhPQorCQkJICAgIGVkZ2VzX21hcFso eSArIHNwYW4pICogd2lkdGggKyB4XSAmJiBlcnJvcikKKwkJCQljb250aW51ZTsKKworCQkJaWYg KGVycm9yKQorCQkJCWVycm9ycysrOworCisJCQlwaXhlbHMrKzsKKwkJfQorCX0KKworCWZyZWUo ZWRnZXNfbWFwKTsKKworCWVycm9yX3JhdGUgPSAoZG91YmxlKSBlcnJvcnMgLyBwaXhlbHM7CisK KwlpZiAoZXJyb3JfcmF0ZSA8IGVycm9yX3JhdGVfdGhyZXNob2xkKQorCQltYXRjaCA9IHRydWU7 CisKKwlpZ3RfZGVidWcoIkNoZWNrZXJib2FyZCBwYXR0ZXJuICVzIHdpdGggZXJyb3IgcmF0ZSAl ZiAlJVxuIiwKKwkJICBtYXRjaCA/ICJtYXRjaGVkIiA6ICJub3QgbWF0Y2hlZCIsIGVycm9yX3Jh dGUgKiAxMDApOworCisJcmV0dXJuIG1hdGNoOworfQpkaWZmIC0tZ2l0IGEvbGliL2lndF9mcmFt ZS5oIGIvbGliL2lndF9mcmFtZS5oCmluZGV4IDExZjk2Y2JlYTIwMy4uZjQ0ZjU3ZDdjZTczIDEw MDY0NAotLS0gYS9saWIvaWd0X2ZyYW1lLmgKKysrIGIvbGliL2lndF9mcmFtZS5oCkBAIC0zOCw1 ICszOCw3IEBAIHZvaWQgaWd0X3dyaXRlX2NvbXBhcmVkX2ZyYW1lc190b19wbmcoY2Fpcm9fc3Vy ZmFjZV90ICpyZWZlcmVuY2UsCiAJCQkJICAgICAgY29uc3QgY2hhciAqY2FwdHVyZV9zdWZmaXgp OwogYm9vbCBpZ3RfY2hlY2tfYW5hbG9nX2ZyYW1lX21hdGNoKGNhaXJvX3N1cmZhY2VfdCAqcmVm ZXJlbmNlLAogCQkJCSAgY2Fpcm9fc3VyZmFjZV90ICpjYXB0dXJlKTsKK2Jvb2wgaWd0X2NoZWNr X2NoZWNrZXJib2FyZF9mcmFtZV9tYXRjaChjYWlyb19zdXJmYWNlX3QgKnJlZmVyZW5jZSwKKwkJ CQkJY2Fpcm9fc3VyZmFjZV90ICpjYXB0dXJlKTsKIAogI2VuZGlmCi0tIAoyLjIwLjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGlu ZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=