Commit 9e539012 authored by Thierry Reding's avatar Thierry Reding
Browse files

tegra: Treat resources with modifiers as scanout



Resources created with modifiers are treated as scanout because there is
no way for applications to specify the usage (though that capability may
be useful to have in the future). Currently all the resources created by
applications with modifiers are for scanout, so make sure they have bind
flags set accordingly.

This is necessary in order to properly export buffers for such resources
so that they can be shared with scanout hardware.
Tested-by: default avatarDaniel Kolesa <daniel@octaforge.org>
Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 9603d81d
......@@ -515,6 +515,7 @@ tegra_screen_resource_create_with_modifiers(struct pipe_screen *pscreen,
int count)
{
struct tegra_screen *screen = to_tegra_screen(pscreen);
struct pipe_resource tmpl = *template;
struct tegra_resource *resource;
int err;
......@@ -522,8 +523,18 @@ tegra_screen_resource_create_with_modifiers(struct pipe_screen *pscreen,
if (!resource)
return NULL;
/*
* Assume that resources created with modifiers will always be used for
* scanout. This is necessary because some of the APIs that are used to
* create resources with modifiers (e.g. gbm_bo_create_with_modifiers())
* can't pass along usage information. Adding that capability might be
* worth adding to remove this ambiguity. Not all future use-cases that
* involve modifiers may always be targetting scanout hardware.
*/
tmpl.bind |= PIPE_BIND_SCANOUT;
resource->gpu = screen->gpu->resource_create_with_modifiers(screen->gpu,
template,
&tmpl,
modifiers,
count);
if (!resource->gpu)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment