OSDN Git Service

gallium: Fix the ->set_damage_region() implementation
authorBoris Brezillon <boris.brezillon@collabora.com>
Fri, 8 Nov 2019 23:02:54 +0000 (00:02 +0100)
committerDylan Baker <dylan@pnwbakers.com>
Tue, 3 Dec 2019 18:23:29 +0000 (10:23 -0800)
commite11d9cd9ed367f6cb2412f2d0f244bb920c6a0f8
treeb6ee3f11a410ef291f656271129869c7bd56cf2b
parent0ca8b506a467551a7f643083085dd1215792e081
gallium: Fix the ->set_damage_region() implementation

BACK_LEFT attachment can be outdated when the user calls
KHR_partial_update() (->lastStamp != ->texture_stamp), leading to a
damage region update on the wrong pipe_resource object.
Let's delay the ->set_damage_region() call until the attachments are
updated when we're in that case.

Reported-by: Carsten Haitzler <raster@rasterman.com>
Fixes: 492ffbed63a2 ("st/dri2: Implement DRI2bufferDamageExtension")
Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit b196e1a8cfbd2c6b53f688542bcda5bb8f7f8888)
src/gallium/state_trackers/dri/dri2.c
src/gallium/state_trackers/dri/dri_drawable.c
src/gallium/state_trackers/dri/dri_drawable.h