#define HAS_TILED_SURFACE(ctx) ((ctx)->codec_info->has_tiled_surface)
+#define HAS_VP8_DECODING(ctx) ((ctx)->codec_info->has_vp8_decoding && \
+ (ctx)->intel.has_bsd)
+
+#define HAS_VP8_ENCODING(ctx) ((ctx)->codec_info->has_vp8_encoding && \
+ (ctx)->intel.has_bsd)
+
+
static int get_sampling_from_fourcc(unsigned int fourcc);
/* Check whether we are rendering to X11 (VA/X11 or VA/GLX API) */
profile_list[i++] = VAProfileJPEGBaseline;
}
+ if (HAS_VP8_DECODING(i965) ||
+ HAS_VP8_ENCODING(i965)) {
+ profile_list[i++] = VAProfileVP8Version0_3;
+ }
+
/* If the assert fails then I965_MAX_PROFILES needs to be bigger */
assert(i <= I965_MAX_PROFILES);
*num_profiles = i;
entrypoint_list[n++] = VAEntrypointVLD;
break;
+ case VAProfileVP8Version0_3:
+ if (HAS_VP8_DECODING(i965))
+ entrypoint_list[n++] = VAEntrypointVLD;
+
+ if (HAS_VP8_ENCODING(i965))
+ entrypoint_list[n++] = VAEntrypointEncSlice;
+
default:
break;
}
break;
+ case VAProfileVP8Version0_3:
+ if ((HAS_VP8_DECODING(i965) && VAEntrypointVLD == entrypoint) ||
+ (HAS_VP8_ENCODING(i965) && VAEntrypointEncSlice == entrypoint))
+ vaStatus = VA_STATUS_SUCCESS;
+ else
+ vaStatus = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
+
+ break;
+
default:
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
break;
vaStatus = VA_STATUS_SUCCESS;
break;
+ case VAProfileVP8Version0_3:
+ vaStatus = VA_STATUS_SUCCESS;
+ break;
+
default:
assert(0);
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
#include "object_heap.h"
#include "intel_driver.h"
-#define I965_MAX_PROFILES 11
+#define I965_MAX_PROFILES 20
#define I965_MAX_ENTRYPOINTS 5
#define I965_MAX_CONFIG_ATTRIBUTES 10
#define I965_MAX_IMAGE_FORMATS 10
unsigned int has_tiled_surface:1;
unsigned int has_di_motion_adptive:1;
unsigned int has_di_motion_compensated:1;
+ unsigned int has_vp8_decoding:1;
+ unsigned int has_vp8_encoding:1;
unsigned int num_filters;
struct i965_filter filters[VAProcFilterCount];