From: Julien Isorce Date: Mon, 17 Oct 2016 16:33:36 +0000 (+0100) Subject: st/va: set default rt formats when calling vaCreateConfig X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dbc8e181166c96d8344355757e46c4cfc8f634e5;p=mesa.git st/va: set default rt formats when calling vaCreateConfig As specified in va.h, default value should be set on attributes not present in the input list. Signed-off-by: Julien Isorce Reviewed-by: Mark Thompson --- 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;