From: Christian König Date: Mon, 15 Jul 2013 14:48:41 +0000 (-0600) Subject: vl: add entrypoint to is_video_format_supported X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5ddd840f5aacb7cc6e62b712aa737c683bd91f55;p=mesa.git vl: add entrypoint to is_video_format_supported Signed-off-by: Christian König --- diff --git a/src/gallium/auxiliary/vl/vl_video_buffer.c b/src/gallium/auxiliary/vl/vl_video_buffer.c index d81c1815abf..f0ba3891eb6 100644 --- a/src/gallium/auxiliary/vl/vl_video_buffer.c +++ b/src/gallium/auxiliary/vl/vl_video_buffer.c @@ -147,7 +147,8 @@ vl_video_buffer_surface_format(enum pipe_format format) boolean vl_video_buffer_is_format_supported(struct pipe_screen *screen, enum pipe_format format, - enum pipe_video_profile profile) + enum pipe_video_profile profile, + enum pipe_video_entrypoint entrypoint) { const enum pipe_format *resource_formats; unsigned i; diff --git a/src/gallium/auxiliary/vl/vl_video_buffer.h b/src/gallium/auxiliary/vl/vl_video_buffer.h index e92e2703116..b936a378e1e 100644 --- a/src/gallium/auxiliary/vl/vl_video_buffer.h +++ b/src/gallium/auxiliary/vl/vl_video_buffer.h @@ -73,7 +73,8 @@ vl_video_buffer_max_size(struct pipe_screen *screen); boolean vl_video_buffer_is_format_supported(struct pipe_screen *screen, enum pipe_format format, - enum pipe_video_profile profile); + enum pipe_video_profile profile, + enum pipe_video_entrypoint entrypoint); /* * set the associated data for the given video buffer diff --git a/src/gallium/drivers/ilo/ilo_format.c b/src/gallium/drivers/ilo/ilo_format.c index 65fb8201726..40b5ffa75c7 100644 --- a/src/gallium/drivers/ilo/ilo_format.c +++ b/src/gallium/drivers/ilo/ilo_format.c @@ -671,9 +671,10 @@ ilo_is_format_supported(struct pipe_screen *screen, static boolean ilo_is_video_format_supported(struct pipe_screen *screen, enum pipe_format format, - enum pipe_video_profile profile) + enum pipe_video_profile profile, + enum pipe_video_entrypoint entrypoint) { - return vl_video_buffer_is_format_supported(screen, format, profile); + return vl_video_buffer_is_format_supported(screen, format, profile, entrypoint); } /** diff --git a/src/gallium/drivers/nouveau/nouveau_vp3_video.c b/src/gallium/drivers/nouveau/nouveau_vp3_video.c index 1659c5f7e72..07ce0163f60 100644 --- a/src/gallium/drivers/nouveau/nouveau_vp3_video.c +++ b/src/gallium/drivers/nouveau/nouveau_vp3_video.c @@ -416,10 +416,11 @@ nouveau_vp3_screen_get_video_param(struct pipe_screen *pscreen, boolean nouveau_vp3_screen_video_supported(struct pipe_screen *screen, enum pipe_format format, - enum pipe_video_profile profile) + enum pipe_video_profile profile, + enum pipe_video_entrypoint entrypoint) { if (profile != PIPE_VIDEO_PROFILE_UNKNOWN) return format == PIPE_FORMAT_NV12; - return vl_video_buffer_is_format_supported(screen, format, profile); + return vl_video_buffer_is_format_supported(screen, format, profile, entrypoint); } diff --git a/src/gallium/drivers/nouveau/nouveau_vp3_video.h b/src/gallium/drivers/nouveau/nouveau_vp3_video.h index 8aedfd08da2..0193ed02ddb 100644 --- a/src/gallium/drivers/nouveau/nouveau_vp3_video.h +++ b/src/gallium/drivers/nouveau/nouveau_vp3_video.h @@ -226,4 +226,5 @@ nouveau_vp3_screen_get_video_param(struct pipe_screen *pscreen, boolean nouveau_vp3_screen_video_supported(struct pipe_screen *screen, enum pipe_format format, - enum pipe_video_profile profile); + enum pipe_video_profile profile, + enum pipe_video_entrypoint entrypoint); diff --git a/src/gallium/drivers/nv50/nv50_context.h b/src/gallium/drivers/nv50/nv50_context.h index 3600f70a29c..ed4ef242f3a 100644 --- a/src/gallium/drivers/nv50/nv50_context.h +++ b/src/gallium/drivers/nv50/nv50_context.h @@ -307,7 +307,8 @@ nv84_screen_get_video_param(struct pipe_screen *pscreen, boolean nv84_screen_video_supported(struct pipe_screen *screen, enum pipe_format format, - enum pipe_video_profile profile); + enum pipe_video_profile profile, + enum pipe_video_entrypoint entrypoint); /* nv98_video.c */ struct pipe_video_codec * diff --git a/src/gallium/drivers/nv50/nv84_video.c b/src/gallium/drivers/nv50/nv84_video.c index e7c715c8ef6..0627bab1461 100644 --- a/src/gallium/drivers/nv50/nv84_video.c +++ b/src/gallium/drivers/nv50/nv84_video.c @@ -787,10 +787,11 @@ nv84_screen_get_video_param(struct pipe_screen *pscreen, boolean nv84_screen_video_supported(struct pipe_screen *screen, enum pipe_format format, - enum pipe_video_profile profile) + enum pipe_video_profile profile, + enum pipe_video_entrypoint entrypoint) { if (profile != PIPE_VIDEO_PROFILE_UNKNOWN) return format == PIPE_FORMAT_NV12; - return vl_video_buffer_is_format_supported(screen, format, profile); + return vl_video_buffer_is_format_supported(screen, format, profile, entrypoint); } diff --git a/src/gallium/drivers/radeon/radeon_uvd.c b/src/gallium/drivers/radeon/radeon_uvd.c index 86f4c5592fb..f3652a64c9c 100644 --- a/src/gallium/drivers/radeon/radeon_uvd.c +++ b/src/gallium/drivers/radeon/radeon_uvd.c @@ -1134,7 +1134,8 @@ int ruvd_get_video_param(struct pipe_screen *screen, boolean ruvd_is_format_supported(struct pipe_screen *screen, enum pipe_format format, - enum pipe_video_profile profile) + enum pipe_video_profile profile, + enum pipe_video_entrypoint entrypoint) { /* we can only handle this one anyway */ return format == PIPE_FORMAT_NV12; diff --git a/src/gallium/drivers/radeon/radeon_uvd.h b/src/gallium/drivers/radeon/radeon_uvd.h index 8c1ab79e1f8..dedb3c7040d 100644 --- a/src/gallium/drivers/radeon/radeon_uvd.h +++ b/src/gallium/drivers/radeon/radeon_uvd.h @@ -369,6 +369,7 @@ int ruvd_get_video_param(struct pipe_screen *screen, /* the hardware only supports NV12 */ boolean ruvd_is_format_supported(struct pipe_screen *screen, enum pipe_format format, - enum pipe_video_profile profile); + enum pipe_video_profile profile, + enum pipe_video_entrypoint entrypoint); #endif diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h index f4907366706..3ed7f269e4f 100644 --- a/src/gallium/include/pipe/p_screen.h +++ b/src/gallium/include/pipe/p_screen.h @@ -136,7 +136,8 @@ struct pipe_screen { */ boolean (*is_video_format_supported)( struct pipe_screen *, enum pipe_format format, - enum pipe_video_profile profile ); + enum pipe_video_profile profile, + enum pipe_video_entrypoint entrypoint ); /** * Check if we can actually create the given resource (test the dimension, diff --git a/src/gallium/state_trackers/vdpau/decode.c b/src/gallium/state_trackers/vdpau/decode.c index f25a0eb8c49..684ded891c6 100644 --- a/src/gallium/state_trackers/vdpau/decode.c +++ b/src/gallium/state_trackers/vdpau/decode.c @@ -466,7 +466,8 @@ vlVdpDecoderRender(VdpDecoder decoder, PIPE_VIDEO_CAP_SUPPORTS_INTERLACED); if (vlsurf->video_buffer == NULL || - !screen->is_video_format_supported(screen, vlsurf->video_buffer->buffer_format, dec->profile) || + !screen->is_video_format_supported(screen, vlsurf->video_buffer->buffer_format, + dec->profile, PIPE_VIDEO_ENTRYPOINT_BITSTREAM) || !buffer_support[vlsurf->video_buffer->interlaced]) { /* destroy the old one */ diff --git a/src/gallium/state_trackers/vdpau/query.c b/src/gallium/state_trackers/vdpau/query.c index fff7d6ba55b..8c1b27f5ab8 100644 --- a/src/gallium/state_trackers/vdpau/query.c +++ b/src/gallium/state_trackers/vdpau/query.c @@ -141,7 +141,8 @@ vlVdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities(VdpDevice device, VdpChromaTyp ( pscreen, FormatYCBCRToPipe(bits_ycbcr_format), - PIPE_VIDEO_PROFILE_UNKNOWN + PIPE_VIDEO_PROFILE_UNKNOWN, + PIPE_VIDEO_ENTRYPOINT_BITSTREAM ); pipe_mutex_unlock(dev->mutex); @@ -391,7 +392,8 @@ vlVdpOutputSurfaceQueryPutBitsYCbCrCapabilities(VdpDevice device, VdpRGBAFormat *is_supported &= pscreen->is_video_format_supported ( pscreen, ycbcr_format, - PIPE_VIDEO_PROFILE_UNKNOWN + PIPE_VIDEO_PROFILE_UNKNOWN, + PIPE_VIDEO_ENTRYPOINT_BITSTREAM ); pipe_mutex_unlock(dev->mutex);