diff options
author | Avinash Mehta <avinash.mehta@arm.com> | 2020-07-31 13:03:37 +0100 |
---|---|---|
committer | Tushar Khandelwal <tushar.khandelwal@arm.com> | 2020-10-26 22:17:49 +0000 |
commit | 7811e6e7ece8808d38c57dee28a25a7f081b1c86 (patch) | |
tree | ff56842dcd01164306abc9a30489fc7d96852cef | |
parent | 87161e5fc2831b5f35dfda8603e2457160c44508 (diff) |
Add minigbm patch that prevents flickering
Change-Id: I69c9bf33deedfb5ef07f9ce18c457670632c24a7
Signed-off-by: Avinash Mehta <avinash.mehta@arm.com>
-rw-r--r-- | tc0/patches/0001-Make-drv_mapping_destroy-be-called-in-release-builds.patch | 51 | ||||
-rw-r--r-- | tc0/vendorsetup.sh | 1 |
2 files changed, 52 insertions, 0 deletions
diff --git a/tc0/patches/0001-Make-drv_mapping_destroy-be-called-in-release-builds.patch b/tc0/patches/0001-Make-drv_mapping_destroy-be-called-in-release-builds.patch new file mode 100644 index 0000000..8497164 --- /dev/null +++ b/tc0/patches/0001-Make-drv_mapping_destroy-be-called-in-release-builds.patch @@ -0,0 +1,51 @@ +From 0907d821ccd589ecc0e047909cc6df18ddb5f31c Mon Sep 17 00:00:00 2001 +From: Jason Macnak <natsu@google.com> +Date: Tue, 12 Nov 2019 10:53:05 -0800 +Subject: [PATCH] Make drv_mapping_destroy() be called in release builds +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The entire assert statement is currently being dropped when NDEBUG is defined +which causes mappings to never be cleaned up on bo destruction. When mappings +are not cleaned up, a new buffer that gets a recycled handle may find an old +mapping in drv_bo_map() which is not valid for the new buffer. + +BUG=b:123764798 +TEST=built and ran with cuttlefish locally + +Change-Id: Ib7147c3f5ed3a2b84793dfc2b17236ee0d92ac13 +Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/1912760 +Tested-by: Jason Macnak <natsu@google.com> +Reviewed-by: Stéphane Marchesin <marcheu@chromium.org> +Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> +Commit-Queue: Jason Macnak <natsu@google.com> +--- + drv.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drv.c b/drv.c +index ef5cbc5..872b5d4 100644 +--- a/drv.c ++++ b/drv.c +@@ -320,6 +320,7 @@ struct bo *drv_bo_create_with_modifiers(struct driver *drv, uint32_t width, uint + + void drv_bo_destroy(struct bo *bo) + { ++ int ret; + size_t plane; + uintptr_t total = 0; + struct driver *drv = bo->drv; +@@ -335,7 +336,8 @@ void drv_bo_destroy(struct bo *bo) + pthread_mutex_unlock(&drv->driver_lock); + + if (total == 0) { +- assert(drv_mapping_destroy(bo) == 0); ++ ret = drv_mapping_destroy(bo); ++ assert(ret == 0); + bo->drv->backend->bo_destroy(bo); + } + +-- +2.17.1 + diff --git a/tc0/vendorsetup.sh b/tc0/vendorsetup.sh index aecf073..d900291 100644 --- a/tc0/vendorsetup.sh +++ b/tc0/vendorsetup.sh @@ -35,4 +35,5 @@ PATCHES_DIR=$ANDROID_TOP_DIR/device/arm/tc0/patches apply_patch "system/core" "0001-Add-amba-bus-support-to-platform-devices.patch" apply_patch "external/minigbm" "0001-minigbm-komeda-Add-driver.patch" +apply_patch "external/minigbm" "0001-Make-drv_mapping_destroy-be-called-in-release-builds.patch" apply_patch "external/swiftshader" "0001-Don-t-unlock-Android-buffers-immediately-after-locki.patch" |