From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 2/5] drm/rect: Handle rounding errors in drm_rect_clip_scaled, v2. Date: Mon, 30 Apr 2018 15:46:08 +0200 Message-ID: <20180430134611.50988-3-maarten.lankhorst@linux.intel.com> References: <20180430134611.50988-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180430134611.50988-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Vidya Srinivas List-Id: dri-devel@lists.freedesktop.org Tm8gbWF0dGVyIGhvdyB5b3UgcGVyZm9ybSB0aGUgY2xpcCBhZGp1c3RtZW50cywgYSBzbWFsbApl cnJvciBtYXkgcHVzaCB0aGUgc2NhbGluZyBmYWN0b3IgdG8gdGhlIG90aGVyIHNpZGUgb2YKMHgx MDAwMC4gU29sdmUgdGhpcyB3aXRoIGEgbWFjcm8gdGhhdCB3aWxsIGZpeHVwIHRoZQpzY2FsZSB0 byAweDEwMDAwIGlmIHdlIGFjY2lkZW50YWxseSB3cmFwIHRvIHRoZSBvdGhlciBzaWRlLgoKQ2hh bmdlcyBzaW5jZSB2MToKLSBBZGp1c3QgZHN0IGltbWVkaWF0ZWx5LCBlbHNlIGRybV9yZWN0X3dp ZHRoL2hlaWdodCBvbiBkc3QgZ2l2ZXMgYm9ndXMKICByZXN1bHRzLgoKU2lnbmVkLW9mZi1ieTog TWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vZHJtX3JlY3QuYyB8IDcxICsrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgMTkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX3JlY3QuYwppbmRleCBiMTc5YzdjNzNjYzUuLjlkNjE5NDc4MGE3NCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9yZWN0LmMKQEAgLTUwLDYgKzUwLDI0IEBAIGJvb2wgZHJtX3JlY3RfaW50ZXJzZWN0 KHN0cnVjdCBkcm1fcmVjdCAqcjEsIGNvbnN0IHN0cnVjdCBkcm1fcmVjdCAqcjIpCiB9CiBFWFBP UlRfU1lNQk9MKGRybV9yZWN0X2ludGVyc2VjdCk7CiAKK3N0YXRpYyBpbnQgZHJtX2NhbGNfc2Nh bGUoaW50IHNyYywgaW50IGRzdCkKK3sKKwlpbnQgc2NhbGUgPSAwOworCisJaWYgKFdBUk5fT04o c3JjIDwgMCB8fCBkc3QgPCAwKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoZHN0ID09IDAp CisJCXJldHVybiAwOworCisJaWYgKHNyYyA+IChkc3QgPDwgMTYpKQorCQlyZXR1cm4gRElWX1JP VU5EX1VQKHNyYywgZHN0KTsKKwllbHNlCisJCXNjYWxlID0gc3JjIC8gZHN0OworCisJcmV0dXJu IHNjYWxlOworfQorCiAvKioKICAqIGRybV9yZWN0X2NsaXBfc2NhbGVkIC0gcGVyZm9ybSBhIHNj YWxlZCBjbGlwIG9wZXJhdGlvbgogICogQHNyYzogc291cmNlIHdpbmRvdyByZWN0YW5nbGUKQEAg LTcxLDQ5ICs4OSw2NCBAQCBib29sIGRybV9yZWN0X2NsaXBfc2NhbGVkKHN0cnVjdCBkcm1fcmVj dCAqc3JjLCBzdHJ1Y3QgZHJtX3JlY3QgKmRzdCwKIHsKIAlpbnQgZGlmZjsKIAorCS8qCisJICog V2hlbiBzY2FsZSBpcyBuZWFyIDEuMCByb3VuZGluZyBlcnJvcnMgbWF5IGNhdXNlIHRoZSBzY2Fs aW5nCisJICogZmFjdG9yIHRvIHRoZSBvdGhlciBzaWRlLiBTb21lIGhhcmR3YXJlIG1heSBzdXBw b3J0CisJICogdXBzYW1wbGluZywgYnV0IG5vdCBkb3duc2FtcGxpbmcsIGFuZCB0aGF0IHdvdWxk IGJyZWFrIHdoZW4KKwkgKiByb3VuZGluZy4KKwkgKi8KKyNkZWZpbmUgRklYVVAob2xkc2NhbGUs IGZuLCBtLCBzZWNvbmQpIGRvIHsgXAorCWlmIChvbGRzY2FsZSAhPSAxIDw8IDE2KSB7IFwKKwkJ aW50IG5ld3NjYWxlID0gZHJtX2NhbGNfc2NhbGUoZm4oc3JjKSwgZm4oZHN0KSk7IFwKKyBcCisJ CWlmIChuZXdzY2FsZSA8IDApIFwKKwkJCXJldHVybiBmYWxzZTsgXAorIFwKKwkJaWYgKChvbGRz Y2FsZSA8IDB4MTAwMDApICE9IChuZXdzY2FsZSA8IDB4MTAwMDApKSB7IFwKKwkJCWlmICghc2Vj b25kKSBcCisJCQkJc3JjLT5tIyMxID0gc3JjLT5tIyMyIC0gKGZuKGRzdCkgPDwgMTYpOyBcCisJ CQllbHNlIFwKKwkJCQlzcmMtPm0jIzIgPSBzcmMtPm0jIzEgKyAoZm4oZHN0KSA8PCAxNik7IFwK KwkJfSBcCisJfSBcCisgfSB3aGlsZSAoMCkKKwogCWRpZmYgPSBjbGlwLT54MSAtIGRzdC0+eDE7 CiAJaWYgKGRpZmYgPiAwKSB7CiAJCWludDY0X3QgdG1wID0gc3JjLT54MSArIChpbnQ2NF90KSBk aWZmICogaHNjYWxlOwogCQlzcmMtPngxID0gY2xhbXBfdChpbnQ2NF90LCB0bXAsIElOVF9NSU4s IElOVF9NQVgpOworCQlkc3QtPngxID0gY2xpcC0+eDE7CisJCUZJWFVQKGhzY2FsZSwgZHJtX3Jl Y3Rfd2lkdGgsIHgsIDApOwogCX0KKwogCWRpZmYgPSBjbGlwLT55MSAtIGRzdC0+eTE7CiAJaWYg KGRpZmYgPiAwKSB7CiAJCWludDY0X3QgdG1wID0gc3JjLT55MSArIChpbnQ2NF90KSBkaWZmICog dnNjYWxlOwogCQlzcmMtPnkxID0gY2xhbXBfdChpbnQ2NF90LCB0bXAsIElOVF9NSU4sIElOVF9N QVgpOworCQlkc3QtPnkxID0gY2xpcC0+eTE7CisJCUZJWFVQKHZzY2FsZSwgZHJtX3JlY3RfaGVp Z2h0LCB5LCAwKTsKIAl9CisKIAlkaWZmID0gZHN0LT54MiAtIGNsaXAtPngyOwogCWlmIChkaWZm ID4gMCkgewogCQlpbnQ2NF90IHRtcCA9IHNyYy0+eDIgLSAoaW50NjRfdCkgZGlmZiAqIGhzY2Fs ZTsKIAkJc3JjLT54MiA9IGNsYW1wX3QoaW50NjRfdCwgdG1wLCBJTlRfTUlOLCBJTlRfTUFYKTsK KwkJZHN0LT54MiA9IGNsaXAtPngyOworCQlGSVhVUChoc2NhbGUsIGRybV9yZWN0X3dpZHRoLCB4 LCAxKTsKIAl9CiAJZGlmZiA9IGRzdC0+eTIgLSBjbGlwLT55MjsKIAlpZiAoZGlmZiA+IDApIHsK IAkJaW50NjRfdCB0bXAgPSBzcmMtPnkyIC0gKGludDY0X3QpIGRpZmYgKiB2c2NhbGU7CiAJCXNy Yy0+eTIgPSBjbGFtcF90KGludDY0X3QsIHRtcCwgSU5UX01JTiwgSU5UX01BWCk7CisJCWRzdC0+ eTIgPSBjbGlwLT55MjsKKwkJRklYVVAodnNjYWxlLCBkcm1fcmVjdF9oZWlnaHQsIHksIDEpOwog CX0KKyN1bmRlZiBGSVhVUAogCi0JcmV0dXJuIGRybV9yZWN0X2ludGVyc2VjdChkc3QsIGNsaXAp OworCXJldHVybiBkcm1fcmVjdF92aXNpYmxlKGRzdCk7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9y ZWN0X2NsaXBfc2NhbGVkKTsKIAotc3RhdGljIGludCBkcm1fY2FsY19zY2FsZShpbnQgc3JjLCBp bnQgZHN0KQotewotCWludCBzY2FsZSA9IDA7Ci0KLQlpZiAoV0FSTl9PTihzcmMgPCAwIHx8IGRz dCA8IDApKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlmIChkc3QgPT0gMCkKLQkJcmV0dXJuIDA7 Ci0KLQlpZiAoc3JjID4gKGRzdCA8PCAxNikpCi0JCXJldHVybiBESVZfUk9VTkRfVVAoc3JjLCBk c3QpOwotCWVsc2UKLQkJc2NhbGUgPSBzcmMgLyBkc3Q7Ci0KLQlyZXR1cm4gc2NhbGU7Ci19Ci0K IC8qKgogICogZHJtX3JlY3RfY2FsY19oc2NhbGUgLSBjYWxjdWxhdGUgdGhlIGhvcml6b250YWwg c2NhbGluZyBmYWN0b3IKICAqIEBzcmM6IHNvdXJjZSB3aW5kb3cgcmVjdGFuZ2xlCi0tIAoyLjE3 LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=