diff options
author | Eric Anholt <[email protected]> | 2015-07-27 23:23:57 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2015-07-28 19:35:23 -0700 |
commit | 95faf2c6397ce231e94176d18cf8fd2c3265bb8a (patch) | |
tree | a639332fa982bb02b35cfabffc3dcd8763f28e9f | |
parent | b0193adbe9403545b0d9f7c7f24a1c30f1491a48 (diff) |
vc4: Fix raster surface shadow updates under DRI2.
Glamor asks GBM for the handle of the BO, then flinks it itself. We
were marking the bo non-private in the flink and dmabuf (DRI3) paths,
but not the GEM handle path. As a result, non-pageflipping DRI2
swapbuffers (EGL apps, in particular) were never updating the texture.
-rw-r--r-- | src/gallium/drivers/vc4/vc4_screen.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc4/vc4_screen.c b/src/gallium/drivers/vc4/vc4_screen.c index c069454c2d1..a20818da4d2 100644 --- a/src/gallium/drivers/vc4/vc4_screen.c +++ b/src/gallium/drivers/vc4/vc4_screen.c @@ -490,6 +490,12 @@ vc4_screen_bo_get_handle(struct pipe_screen *pscreen, { whandle->stride = stride; + /* If we're passing some reference to our BO out to some other part of + * the system, then we can't do any optimizations about only us being + * the ones seeing it (like BO caching or shadow update avoidance). + */ + bo->private = false; + switch (whandle->type) { case DRM_API_HANDLE_TYPE_SHARED: return vc4_bo_flink(bo, &whandle->handle); |