[Mesa-dev] [PATCH 1/3] r600g: use LINEAR_ALIGNED tiling for staging textures, reorder the code
Alex Deucher
alexdeucher at gmail.com
Tue Nov 13 05:38:58 PST 2012
On Mon, Nov 12, 2012 at 6:43 PM, Marek Olšák <maraeo at gmail.com> wrote:
For the series:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> src/gallium/drivers/r600/r600_texture.c | 16 ++++++++++------
> 1 file changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
> index ea017d3..b1dbf07 100644
> --- a/src/gallium/drivers/r600/r600_texture.c
> +++ b/src/gallium/drivers/r600/r600_texture.c
> @@ -494,10 +494,18 @@ struct pipe_resource *r600_texture_create(struct pipe_screen *screen,
> {
> struct r600_screen *rscreen = (struct r600_screen*)screen;
> struct radeon_surface surface;
> - unsigned array_mode = 0;
> + const struct util_format_description *desc = util_format_description(templ->format);
> + unsigned array_mode;
> int r;
>
> - if (!(templ->flags & R600_RESOURCE_FLAG_TRANSFER)) {
> + /* Default tiling mode for staging textures. */
> + array_mode = V_038000_ARRAY_LINEAR_ALIGNED;
> +
> + /* Tiling doesn't work with the 422 (SUBSAMPLED) formats. That's not an issue,
> + * because 422 formats are used for videos, which prefer linear buffers
> + * for fast uploads anyway. */
> + if (!(templ->flags & R600_RESOURCE_FLAG_TRANSFER) &&
> + desc->layout != UTIL_FORMAT_LAYOUT_SUBSAMPLED) {
> if (!(templ->bind & PIPE_BIND_SCANOUT) &&
> templ->usage != PIPE_USAGE_STAGING &&
> templ->usage != PIPE_USAGE_STREAM) {
> @@ -507,10 +515,6 @@ struct pipe_resource *r600_texture_create(struct pipe_screen *screen,
> }
> }
>
> - /* XXX tiling is broken for the 422 formats */
> - if (util_format_description(templ->format)->layout == UTIL_FORMAT_LAYOUT_SUBSAMPLED)
> - array_mode = V_038000_ARRAY_LINEAR_ALIGNED;
> -
> r = r600_init_surface(rscreen, &surface, templ, array_mode,
> templ->flags & R600_RESOURCE_FLAG_FLUSHED_DEPTH);
> if (r) {
> --
> 1.7.9.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list