diff options
-rw-r--r-- | src/gallium/state_trackers/va/config.c | 9 | ||||
-rw-r--r-- | src/gallium/state_trackers/va/surface.c | 5 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/va/config.c b/src/gallium/state_trackers/va/config.c index 2f96eb6cedf..da52a58c5db 100644 --- a/src/gallium/state_trackers/va/config.c +++ b/src/gallium/state_trackers/va/config.c @@ -195,6 +195,11 @@ vlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoin } } } + + /* Default value if not specified in the input attributes. */ + if (!config->rt_format) + config->rt_format = VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_RGB32; + pipe_mutex_lock(drv->mutex); *config_id = handle_table_add(drv->htab, config); pipe_mutex_unlock(drv->mutex); @@ -256,6 +261,10 @@ vlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoin } } + /* Default value if not specified in the input attributes. */ + if (!config->rt_format) + config->rt_format = VA_RT_FORMAT_YUV420; + pipe_mutex_lock(drv->mutex); *config_id = handle_table_add(drv->htab, config); pipe_mutex_unlock(drv->mutex); diff --git a/src/gallium/state_trackers/va/surface.c b/src/gallium/state_trackers/va/surface.c index 5e929803b01..f8513d93e02 100644 --- a/src/gallium/state_trackers/va/surface.c +++ b/src/gallium/state_trackers/va/surface.c @@ -419,7 +419,7 @@ vlVaQuerySurfaceAttributes(VADriverContextP ctx, VAConfigID config_id, /* vlVaCreateConfig returns PIPE_VIDEO_PROFILE_UNKNOWN * only for VAEntrypointVideoProc. */ if (config->profile == PIPE_VIDEO_PROFILE_UNKNOWN) { - if (config->rt_format == VA_RT_FORMAT_RGB32) { + if (config->rt_format & VA_RT_FORMAT_RGB32) { for (j = 0; j < ARRAY_SIZE(vpp_surface_formats); ++j) { attribs[i].type = VASurfaceAttribPixelFormat; attribs[i].value.type = VAGenericValueTypeInteger; @@ -427,7 +427,8 @@ vlVaQuerySurfaceAttributes(VADriverContextP ctx, VAConfigID config_id, attribs[i].value.value.i = PipeFormatToVaFourcc(vpp_surface_formats[j]); i++; } - } else if (config->rt_format == VA_RT_FORMAT_YUV420) { + } + if (config->rt_format & VA_RT_FORMAT_YUV420) { attribs[i].type = VASurfaceAttribPixelFormat; attribs[i].value.type = VAGenericValueTypeInteger; attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; |