From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 2/3] drm/rect: Handle rounding errors in drm_rect_clip_scaled Date: Thu, 26 Apr 2018 10:28:20 +0200 Message-ID: <20180426082821.11129-2-maarten.lankhorst@linux.intel.com> References: <20180426082821.11129-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: <20180426082821.11129-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org Tm8gbWF0dGVyIGhvdyB5b3UgcGVyZm9ybSB0aGUgY2xpcCBhZGp1c3RtZW50cywgYSBzbWFsbApl cnJvciBtYXkgcHVzaCB0aGUgc2NhbGluZyBmYWN0b3IgdG8gdGhlIG90aGVyIHNpZGUgb2YKMHgx MDAwMC4gU29sdmUgdGhpcyB3aXRoIGEgbWFjcm8gdGhhdCB3aWxsIGZpeHVwIHRoZQpzY2FsZSB0 byAweDEwMDAwIGlmIHdlIGFjY2lkZW50YWxseSB3cmFwIHRvIHRoZSBvdGhlciBzaWRlLgoKU2ln bmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4Lmlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3JlY3QuYyB8IDY1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDcgaW5zZXJ0aW9u cygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9y ZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3JlY3QuYwppbmRleCBiMTc5YzdjNzNjYzUuLjcx YjZiN2Y1ZDU4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9yZWN0LmMKQEAgLTUwLDYgKzUwLDI0IEBAIGJvb2wgZHJtX3Jl Y3RfaW50ZXJzZWN0KHN0cnVjdCBkcm1fcmVjdCAqcjEsIGNvbnN0IHN0cnVjdCBkcm1fcmVjdCAq cjIpCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9yZWN0X2ludGVyc2VjdCk7CiAKK3N0YXRpYyBpbnQg ZHJtX2NhbGNfc2NhbGUoaW50IHNyYywgaW50IGRzdCkKK3sKKwlpbnQgc2NhbGUgPSAwOworCisJ aWYgKFdBUk5fT04oc3JjIDwgMCB8fCBkc3QgPCAwKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlp ZiAoZHN0ID09IDApCisJCXJldHVybiAwOworCisJaWYgKHNyYyA+IChkc3QgPDwgMTYpKQorCQly ZXR1cm4gRElWX1JPVU5EX1VQKHNyYywgZHN0KTsKKwllbHNlCisJCXNjYWxlID0gc3JjIC8gZHN0 OworCisJcmV0dXJuIHNjYWxlOworfQorCiAvKioKICAqIGRybV9yZWN0X2NsaXBfc2NhbGVkIC0g cGVyZm9ybSBhIHNjYWxlZCBjbGlwIG9wZXJhdGlvbgogICogQHNyYzogc291cmNlIHdpbmRvdyBy ZWN0YW5nbGUKQEAgLTcxLDQ5ICs4OSw2MCBAQCBib29sIGRybV9yZWN0X2NsaXBfc2NhbGVkKHN0 cnVjdCBkcm1fcmVjdCAqc3JjLCBzdHJ1Y3QgZHJtX3JlY3QgKmRzdCwKIHsKIAlpbnQgZGlmZjsK IAorCS8qCisJICogV2hlbiBzY2FsZSBpcyBuZWFyIDB4MTAwMDAgcm91bmRpbmcgZXJyb3JzIG1h eSBjYXVzZSB0aGUgc2NhbGluZworCSAqIGZhY3RvciB0byB0aGUgb3RoZXIgc2lkZS4gU29tZSBo YXJkd2FyZSBtYXkgc3VwcG9ydAorCSAqIHVwc2FtcGxpbmcsIGJ1dCBub3QgZG93bnNhbXBsaW5n LCBhbmQgdGhhdCB3b3VsZCBicmVhayB3aGVuCisJICogcm91bmRpbmcuCisJICovCisjZGVmaW5l IEZJWFVQKG9sZHNjYWxlLCBmbiwgbSwgc2Vjb25kKSBkbyB7IFwKKwlpZiAob2xkc2NhbGUgIT0g MSA8PCAxNikgeyBcCisJCWludCBuZXdzY2FsZSA9IGRybV9jYWxjX3NjYWxlKGZuKHNyYyksIGZu KGRzdCkpOyBcCisgXAorCQlpZiAobmV3c2NhbGUgPCAwKSBcCisJCQlyZXR1cm4gZmFsc2U7IFwK KyBcCisJCWlmICgob2xkc2NhbGUgPCAweDEwMDAwKSAhPSAobmV3c2NhbGUgPCAweDEwMDAwKSkg eyBcCisJCQlpZiAoIXNlY29uZCkgXAorCQkJCXNyYy0+bSMjMSA9IHNyYy0+bSMjMiAtICgoZm4o ZHN0KSAtIGRpZmYpIDw8IDE2KTsgXAorCQkJZWxzZSBcCisJCQkJc3JjLT5tIyMyID0gc3JjLT5t IyMxICsgKChmbihkc3QpIC0gZGlmZikgPDwgMTYpOyBcCisJCX0gXAorCX0gXAorIH0gd2hpbGUg KDApCisKIAlkaWZmID0gY2xpcC0+eDEgLSBkc3QtPngxOwogCWlmIChkaWZmID4gMCkgewogCQlp bnQ2NF90IHRtcCA9IHNyYy0+eDEgKyAoaW50NjRfdCkgZGlmZiAqIGhzY2FsZTsKIAkJc3JjLT54 MSA9IGNsYW1wX3QoaW50NjRfdCwgdG1wLCBJTlRfTUlOLCBJTlRfTUFYKTsKKwkJRklYVVAoaHNj YWxlLCBkcm1fcmVjdF93aWR0aCwgeCwgMCk7CiAJfQorCiAJZGlmZiA9IGNsaXAtPnkxIC0gZHN0 LT55MTsKIAlpZiAoZGlmZiA+IDApIHsKIAkJaW50NjRfdCB0bXAgPSBzcmMtPnkxICsgKGludDY0 X3QpIGRpZmYgKiB2c2NhbGU7CiAJCXNyYy0+eTEgPSBjbGFtcF90KGludDY0X3QsIHRtcCwgSU5U X01JTiwgSU5UX01BWCk7CisJCUZJWFVQKHZzY2FsZSwgZHJtX3JlY3RfaGVpZ2h0LCB5LCAwKTsK IAl9CisKIAlkaWZmID0gZHN0LT54MiAtIGNsaXAtPngyOwogCWlmIChkaWZmID4gMCkgewogCQlp bnQ2NF90IHRtcCA9IHNyYy0+eDIgLSAoaW50NjRfdCkgZGlmZiAqIGhzY2FsZTsKIAkJc3JjLT54 MiA9IGNsYW1wX3QoaW50NjRfdCwgdG1wLCBJTlRfTUlOLCBJTlRfTUFYKTsKKwkJRklYVVAoaHNj YWxlLCBkcm1fcmVjdF93aWR0aCwgeCwgMSk7CiAJfQogCWRpZmYgPSBkc3QtPnkyIC0gY2xpcC0+ eTI7CiAJaWYgKGRpZmYgPiAwKSB7CiAJCWludDY0X3QgdG1wID0gc3JjLT55MiAtIChpbnQ2NF90 KSBkaWZmICogdnNjYWxlOwogCQlzcmMtPnkyID0gY2xhbXBfdChpbnQ2NF90LCB0bXAsIElOVF9N SU4sIElOVF9NQVgpOworCQlGSVhVUCh2c2NhbGUsIGRybV9yZWN0X2hlaWdodCwgeSwgMSk7CiAJ fQorI3VuZGVmIEZJWFVQCiAKIAlyZXR1cm4gZHJtX3JlY3RfaW50ZXJzZWN0KGRzdCwgY2xpcCk7 CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9yZWN0X2NsaXBfc2NhbGVkKTsKIAotc3RhdGljIGludCBk cm1fY2FsY19zY2FsZShpbnQgc3JjLCBpbnQgZHN0KQotewotCWludCBzY2FsZSA9IDA7Ci0KLQlp ZiAoV0FSTl9PTihzcmMgPCAwIHx8IGRzdCA8IDApKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWlm IChkc3QgPT0gMCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoc3JjID4gKGRzdCA8PCAxNikpCi0JCXJl dHVybiBESVZfUk9VTkRfVVAoc3JjLCBkc3QpOwotCWVsc2UKLQkJc2NhbGUgPSBzcmMgLyBkc3Q7 Ci0KLQlyZXR1cm4gc2NhbGU7Ci19Ci0KIC8qKgogICogZHJtX3JlY3RfY2FsY19oc2NhbGUgLSBj YWxjdWxhdGUgdGhlIGhvcml6b250YWwgc2NhbGluZyBmYWN0b3IKICAqIEBzcmM6IHNvdXJjZSB3 aW5kb3cgcmVjdGFuZ2xlCi0tIAoyLjE3LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=