diff options
author | Thomas Hellstrom <[email protected]> | 2011-11-01 17:42:21 +0100 |
---|---|---|
committer | Thomas Hellstrom <[email protected]> | 2011-11-01 18:18:14 +0100 |
commit | dc4ef916016dc4237551bad132325c71f4eb28e2 (patch) | |
tree | a17d19329662b52e23f95dc82ff459612a0a3358 /src/gallium/state_trackers/xa/xa_tracker.c | |
parent | 48a4b9b70cd0020ad09d605672a53dd7be86b3af (diff) |
st/xa: Add a scanout flag for surfaces
Bump minor to signal availability.
Signed-off-by: Thomas Hellstrom <[email protected]>
Reviewed-by: Jakob Bornecrantz <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/xa/xa_tracker.c')
-rw-r--r-- | src/gallium/state_trackers/xa/xa_tracker.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/xa/xa_tracker.c b/src/gallium/state_trackers/xa/xa_tracker.c index 50bf4b7e00c..529279ad865 100644 --- a/src/gallium/state_trackers/xa/xa_tracker.c +++ b/src/gallium/state_trackers/xa/xa_tracker.c @@ -220,6 +220,12 @@ xa_flags_compat(unsigned int old_flags, unsigned int new_flags) return ((new_flags & XA_FLAG_RENDER_TARGET) == 0); /* + * Don't recreate if we're dropping the scanout flag. + */ + if (flag_diff & XA_FLAG_SCANOUT) + return ((new_flags & XA_FLAG_SCANOUT) == 0); + + /* * Always recreate for unknown / unimplemented flags. */ return 0; @@ -263,6 +269,8 @@ xa_format_check_supported(struct xa_tracker *xa, bind |= PIPE_BIND_SHARED; if (flags & XA_FLAG_RENDER_TARGET) bind |= PIPE_BIND_RENDER_TARGET; + if (flags & XA_FLAG_SCANOUT) + bind |= PIPE_BIND_SCANOUT; if (!xa->screen->is_format_supported(xa->screen, fdesc.format, PIPE_TEXTURE_2D, 0, bind)) @@ -309,6 +317,8 @@ xa_surface_create(struct xa_tracker *xa, template->bind |= PIPE_BIND_SHARED; if (flags & XA_FLAG_RENDER_TARGET) template->bind |= PIPE_BIND_RENDER_TARGET; + if (flags & XA_FLAG_SCANOUT) + template->bind |= PIPE_BIND_SCANOUT; srf->tex = xa->screen->resource_create(xa->screen, template); if (!srf->tex) @@ -359,6 +369,8 @@ xa_surface_redefine(struct xa_surface *srf, template->bind |= PIPE_BIND_SHARED; if (new_flags & XA_FLAG_RENDER_TARGET) template->bind |= PIPE_BIND_RENDER_TARGET; + if (new_flags & XA_FLAG_SCANOUT) + template->bind |= PIPE_BIND_SCANOUT; if (copy_contents) { if (!xa_format_type_is_color(fdesc.xa_format) || |