Module: Mesa Branch: master Commit: e3591b03393402321d24e10b93ec5a827a4b9b6a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e3591b03393402321d24e10b93ec5a827a4b9b6a
Author: Jonathan Marek <[email protected]> Date: Wed Feb 20 11:50:47 2019 +0100 freedreno: use renderonly path for buffers allocated with modifiers Now that freedreno has create_with_modifiers(), this "hack" is needed to make some cases work. Copied from vc4. Fixes: 41ddf1d1 Signed-off-by: Jonathan Marek <[email protected]> --- src/gallium/drivers/freedreno/freedreno_resource.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c b/src/gallium/drivers/freedreno/freedreno_resource.c index 163fa70312a..144d725fdec 100644 --- a/src/gallium/drivers/freedreno/freedreno_resource.c +++ b/src/gallium/drivers/freedreno/freedreno_resource.c @@ -860,7 +860,13 @@ fd_resource_create_with_modifiers(struct pipe_screen *pscreen, enum pipe_format format = tmpl->format; uint32_t size; - if (screen->ro && (tmpl->bind & PIPE_BIND_SCANOUT)) { + /* when using kmsro, scanout buffers are allocated on the display device + * create_with_modifiers() doesn't give us usage flags, so we have to + * assume that all calls with modifiers are scanout-possible + */ + if (screen->ro && + ((tmpl->bind & PIPE_BIND_SCANOUT) || + !(count == 1 && modifiers[0] == DRM_FORMAT_MOD_INVALID))) { struct pipe_resource scanout_templat = *tmpl; struct renderonly_scanout *scanout; struct winsys_handle handle; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
