radeon/uvd: enable interlaced buffers by default
authorChristian König <christian.koenig@amd.com>
Thu, 2 May 2013 14:19:41 +0000 (16:19 +0200)
committerChristian König <christian.koenig@amd.com>
Fri, 3 May 2013 09:00:21 +0000 (11:00 +0200)
Kills tilling on UVD buffers, but we currently don't really need that.

Signed-off-by: Christian König <christian.koenig@amd.com>
src/gallium/drivers/r600/r600_uvd.c
src/gallium/drivers/radeon/radeon_uvd.c

index 9d8ae9427ab46a3af2ab678563a3434195cb3cda..6a3974c6b2703f2af81d6934e2d147f7feb0f934 100644 (file)
@@ -76,7 +76,7 @@ struct pipe_video_buffer *r600_video_buffer_create(struct pipe_context *pipe,
        template.height = align(tmpl->height / array_size, VL_MACROBLOCK_HEIGHT);
 
        vl_video_buffer_template(&templ, &template, resource_formats[0], 1, array_size, PIPE_USAGE_STATIC, 0);
-       if (ctx->chip_class < EVERGREEN)
+       if (ctx->chip_class < EVERGREEN || tmpl->interlaced)
                templ.flags = R600_RESOURCE_FLAG_TRANSFER;
        resources[0] = (struct r600_texture *)
                pipe->screen->resource_create(pipe->screen, &templ);
@@ -85,7 +85,7 @@ struct pipe_video_buffer *r600_video_buffer_create(struct pipe_context *pipe,
 
        if (resource_formats[1] != PIPE_FORMAT_NONE) {
                vl_video_buffer_template(&templ, &template, resource_formats[1], 1, array_size, PIPE_USAGE_STATIC, 1);
-               if (ctx->chip_class < EVERGREEN)
+               if (ctx->chip_class < EVERGREEN || tmpl->interlaced)
                        templ.flags = R600_RESOURCE_FLAG_TRANSFER;
                resources[1] = (struct r600_texture *)
                        pipe->screen->resource_create(pipe->screen, &templ);
@@ -95,7 +95,7 @@ struct pipe_video_buffer *r600_video_buffer_create(struct pipe_context *pipe,
 
        if (resource_formats[2] != PIPE_FORMAT_NONE) {
                vl_video_buffer_template(&templ, &template, resource_formats[2], 1, array_size, PIPE_USAGE_STATIC, 2);
-               if (ctx->chip_class < EVERGREEN)
+               if (ctx->chip_class < EVERGREEN || tmpl->interlaced)
                        templ.flags = R600_RESOURCE_FLAG_TRANSFER;
                resources[2] = (struct r600_texture *)
                        pipe->screen->resource_create(pipe->screen, &templ);
index 154ef8e4038c469fe62a1772ad5ed0dc7e8f057e..caf3e9041d60428284570be0874af6ec035837df 100644 (file)
@@ -1105,9 +1105,9 @@ int ruvd_get_video_param(struct pipe_screen *screen,
        case PIPE_VIDEO_CAP_PREFERED_FORMAT:
                return PIPE_FORMAT_NV12;
        case PIPE_VIDEO_CAP_PREFERS_INTERLACED:
-               return false;
+               return true;
        case PIPE_VIDEO_CAP_SUPPORTS_INTERLACED:
-               return false; /* TODO: enable this */
+               return true;
        case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
                return true;
        default: