mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
Merge branch 'unused-pipevidcaps' into 'main'
pipe/video,vl: Remove some unused video caps See merge request mesa/mesa!40644
This commit is contained in:
commit
596905a66c
10 changed files with 5 additions and 194 deletions
|
|
@ -275,13 +275,7 @@ vl_deint_filter_init(struct vl_deint_filter *filter, struct pipe_context *pipe,
|
|||
|
||||
/* TODO: handle other than 4:2:0 subsampling */
|
||||
memset(&templ, 0, sizeof(templ));
|
||||
templ.buffer_format = pipe->screen->get_video_param
|
||||
(
|
||||
pipe->screen,
|
||||
PIPE_VIDEO_PROFILE_UNKNOWN,
|
||||
PIPE_VIDEO_ENTRYPOINT_PROCESSING,
|
||||
PIPE_VIDEO_CAP_PREFERRED_FORMAT
|
||||
);
|
||||
templ.buffer_format = PIPE_FORMAT_NV12;
|
||||
templ.width = video_width;
|
||||
templ.height = video_height;
|
||||
templ.interlaced = true;
|
||||
|
|
|
|||
|
|
@ -390,26 +390,15 @@ vl_video_buffer_create(struct pipe_context *pipe,
|
|||
{
|
||||
enum pipe_format resource_formats[VL_NUM_COMPONENTS];
|
||||
struct pipe_video_buffer templat, *result;
|
||||
bool pot_buffers;
|
||||
|
||||
assert(pipe);
|
||||
assert(tmpl->width > 0 && tmpl->height > 0);
|
||||
|
||||
pot_buffers = !pipe->screen->get_video_param
|
||||
(
|
||||
pipe->screen,
|
||||
PIPE_VIDEO_PROFILE_UNKNOWN,
|
||||
PIPE_VIDEO_ENTRYPOINT_UNKNOWN,
|
||||
PIPE_VIDEO_CAP_NPOT_TEXTURES
|
||||
);
|
||||
|
||||
vl_get_video_buffer_formats(pipe->screen, tmpl->buffer_format, resource_formats);
|
||||
|
||||
templat = *tmpl;
|
||||
templat.width = pot_buffers ? util_next_power_of_two(tmpl->width)
|
||||
: align(tmpl->width, VL_MACROBLOCK_WIDTH);
|
||||
templat.height = pot_buffers ? util_next_power_of_two(tmpl->height)
|
||||
: align(tmpl->height, VL_MACROBLOCK_HEIGHT);
|
||||
templat.width = align(tmpl->width, VL_MACROBLOCK_WIDTH);
|
||||
templat.height = align(tmpl->height, VL_MACROBLOCK_HEIGHT);
|
||||
|
||||
if (tmpl->interlaced)
|
||||
templat.height /= 2;
|
||||
|
|
|
|||
|
|
@ -2245,11 +2245,8 @@ d3d12_screen_get_video_param_decode(struct pipe_screen *pscreen,
|
|||
flush internally on end frame for decode
|
||||
*/
|
||||
return 0;
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_MAX_WIDTH:
|
||||
case PIPE_VIDEO_CAP_MAX_HEIGHT:
|
||||
case PIPE_VIDEO_CAP_MAX_LEVEL:
|
||||
case PIPE_VIDEO_CAP_MIN_WIDTH:
|
||||
case PIPE_VIDEO_CAP_MIN_HEIGHT:
|
||||
case PIPE_VIDEO_CAP_SUPPORTED:
|
||||
|
|
@ -2286,8 +2283,6 @@ d3d12_screen_get_video_param_decode(struct pipe_screen *pscreen,
|
|||
return lowestSupportedConfig.resolution.Width;
|
||||
} else if (param == PIPE_VIDEO_CAP_MIN_HEIGHT) {
|
||||
return lowestSupportedConfig.resolution.Height;
|
||||
} else if (param == PIPE_VIDEO_CAP_MAX_LEVEL) {
|
||||
return bestSupportedConfig.level;
|
||||
} else if (param == PIPE_VIDEO_CAP_SUPPORTED) {
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -2297,8 +2292,6 @@ d3d12_screen_get_video_param_decode(struct pipe_screen *pscreen,
|
|||
}
|
||||
return 0;
|
||||
} break;
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
return (profile == PIPE_VIDEO_PROFILE_UNKNOWN) ? PIPE_FORMAT_NV12 : d3d12_get_pipe_format(d3d12_convert_pipe_video_profile_to_dxgi_format(profile));
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return true;
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_CONTIGUOUS_PLANES_MAP:
|
||||
|
|
@ -2318,14 +2311,11 @@ d3d12_screen_get_video_param_postproc(struct pipe_screen *pscreen,
|
|||
switch (param) {
|
||||
case PIPE_VIDEO_CAP_REQUIRES_FLUSH_ON_END_FRAME:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_MAX_WIDTH:
|
||||
case PIPE_VIDEO_CAP_MAX_HEIGHT:
|
||||
case PIPE_VIDEO_CAP_MIN_WIDTH:
|
||||
case PIPE_VIDEO_CAP_MIN_HEIGHT:
|
||||
case PIPE_VIDEO_CAP_SUPPORTED:
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_CONTIGUOUS_PLANES_MAP:
|
||||
case PIPE_VIDEO_CAP_VPP_MAX_INPUT_WIDTH:
|
||||
|
|
@ -2366,8 +2356,6 @@ d3d12_screen_get_video_param_postproc(struct pipe_screen *pscreen,
|
|||
if (d3d12_has_video_process_support(pscreen, supportCaps, minSupportedInput, maxSupportedInput)) {
|
||||
if (param == PIPE_VIDEO_CAP_SUPPORTED) {
|
||||
return true;
|
||||
} else if (param == PIPE_VIDEO_CAP_PREFERRED_FORMAT) {
|
||||
return PIPE_FORMAT_NV12;
|
||||
} else if (param == PIPE_VIDEO_CAP_MIN_WIDTH) {
|
||||
return minSupportedInput.Width;
|
||||
} else if (param == PIPE_VIDEO_CAP_MIN_HEIGHT) {
|
||||
|
|
@ -2466,8 +2454,6 @@ d3d12_screen_get_video_param_encode(struct pipe_screen *pscreen,
|
|||
switch (param) {
|
||||
case PIPE_VIDEO_CAP_REQUIRES_FLUSH_ON_END_FRAME:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_MAX_TEMPORAL_LAYERS:
|
||||
{
|
||||
switch (u_reduce_video_profile(profile)) {
|
||||
|
|
@ -2498,7 +2484,6 @@ d3d12_screen_get_video_param_encode(struct pipe_screen *pscreen,
|
|||
case PIPE_VIDEO_CAP_MAX_HEIGHT:
|
||||
case PIPE_VIDEO_CAP_MIN_WIDTH:
|
||||
case PIPE_VIDEO_CAP_MIN_HEIGHT:
|
||||
case PIPE_VIDEO_CAP_MAX_LEVEL:
|
||||
case PIPE_VIDEO_CAP_SUPPORTED:
|
||||
case PIPE_VIDEO_CAP_ENC_MAX_SLICES_PER_FRAME:
|
||||
case PIPE_VIDEO_CAP_ENC_SLICES_STRUCTURE:
|
||||
|
|
@ -2583,8 +2568,6 @@ d3d12_screen_get_video_param_encode(struct pipe_screen *pscreen,
|
|||
return minResEncode.Width;
|
||||
} else if (param == PIPE_VIDEO_CAP_MIN_HEIGHT) {
|
||||
return minResEncode.Height;
|
||||
} else if (param == PIPE_VIDEO_CAP_MAX_LEVEL) {
|
||||
return maxLvlEncode;
|
||||
} else if (param == PIPE_VIDEO_CAP_SUPPORTED) {
|
||||
return 1;
|
||||
} else if (param == PIPE_VIDEO_CAP_ENC_MAX_SLICES_PER_FRAME) {
|
||||
|
|
@ -2689,8 +2672,6 @@ d3d12_screen_get_video_param_encode(struct pipe_screen *pscreen,
|
|||
}
|
||||
return 0;
|
||||
} break;
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
return (profile == PIPE_VIDEO_PROFILE_UNKNOWN) ? PIPE_FORMAT_NV12 : d3d12_get_pipe_format(d3d12_convert_pipe_video_profile_to_dxgi_format(profile));
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return true;
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_CONTIGUOUS_PLANES_MAP:
|
||||
|
|
|
|||
|
|
@ -832,25 +832,11 @@ nouveau_screen_get_video_param(struct pipe_screen *pscreen,
|
|||
case PIPE_VIDEO_CAP_SUPPORTED:
|
||||
return entrypoint >= PIPE_VIDEO_ENTRYPOINT_IDCT &&
|
||||
u_reduce_video_profile(profile) == PIPE_VIDEO_FORMAT_MPEG12;
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_MAX_WIDTH:
|
||||
case PIPE_VIDEO_CAP_MAX_HEIGHT:
|
||||
return vl_video_buffer_max_size(pscreen);
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
return PIPE_FORMAT_NV12;
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return true;
|
||||
case PIPE_VIDEO_CAP_MAX_LEVEL:
|
||||
switch (profile) {
|
||||
case PIPE_VIDEO_PROFILE_MPEG1:
|
||||
return 0;
|
||||
case PIPE_VIDEO_PROFILE_MPEG2_SIMPLE:
|
||||
case PIPE_VIDEO_PROFILE_MPEG2_MAIN:
|
||||
return 3;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
default:
|
||||
debug_printf("unknown video param: %d\n", param);
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -451,8 +451,6 @@ nouveau_vp3_screen_get_video_param(struct pipe_screen *pscreen,
|
|||
profile >= PIPE_VIDEO_PROFILE_MPEG1 &&
|
||||
profile < PIPE_VIDEO_PROFILE_HEVC_MAIN &&
|
||||
firmware_present(pscreen, profile);
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_MAX_WIDTH:
|
||||
switch (codec) {
|
||||
case PIPE_VIDEO_FORMAT_MPEG12:
|
||||
|
|
@ -489,32 +487,8 @@ nouveau_vp3_screen_get_video_param(struct pipe_screen *pscreen,
|
|||
debug_printf("unknown video codec: %d\n", codec);
|
||||
return 0;
|
||||
}
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
return PIPE_FORMAT_NV12;
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return false;
|
||||
case PIPE_VIDEO_CAP_MAX_LEVEL:
|
||||
switch (profile) {
|
||||
case PIPE_VIDEO_PROFILE_MPEG1:
|
||||
return 0;
|
||||
case PIPE_VIDEO_PROFILE_MPEG2_SIMPLE:
|
||||
case PIPE_VIDEO_PROFILE_MPEG2_MAIN:
|
||||
return 3;
|
||||
case PIPE_VIDEO_PROFILE_VC1_SIMPLE:
|
||||
return 1;
|
||||
case PIPE_VIDEO_PROFILE_VC1_MAIN:
|
||||
return 2;
|
||||
case PIPE_VIDEO_PROFILE_VC1_ADVANCED:
|
||||
return 4;
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE:
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_CONSTRAINED_BASELINE:
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN:
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH:
|
||||
return 41;
|
||||
default:
|
||||
debug_printf("unknown video profile: %d\n", profile);
|
||||
return 0;
|
||||
}
|
||||
case PIPE_VIDEO_CAP_MAX_MACROBLOCKS:
|
||||
switch (codec) {
|
||||
case PIPE_VIDEO_FORMAT_MPEG12:
|
||||
|
|
|
|||
|
|
@ -821,30 +821,11 @@ nv84_screen_get_video_param(struct pipe_screen *pscreen,
|
|||
return (codec == PIPE_VIDEO_FORMAT_MPEG4_AVC ||
|
||||
codec == PIPE_VIDEO_FORMAT_MPEG12) &&
|
||||
firmware_present(pscreen, codec);
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_MAX_WIDTH:
|
||||
case PIPE_VIDEO_CAP_MAX_HEIGHT:
|
||||
return 2048;
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
return PIPE_FORMAT_NV12;
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return false;
|
||||
case PIPE_VIDEO_CAP_MAX_LEVEL:
|
||||
switch (profile) {
|
||||
case PIPE_VIDEO_PROFILE_MPEG1:
|
||||
return 0;
|
||||
case PIPE_VIDEO_PROFILE_MPEG2_SIMPLE:
|
||||
case PIPE_VIDEO_PROFILE_MPEG2_MAIN:
|
||||
return 3;
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE:
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN:
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH:
|
||||
return 41;
|
||||
default:
|
||||
debug_printf("unknown video profile: %d\n", profile);
|
||||
return 0;
|
||||
}
|
||||
case PIPE_VIDEO_CAP_MAX_MACROBLOCKS:
|
||||
return 8192; /* vc-1 actually has 8190, but this is not supported */
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -204,18 +204,12 @@ int rvid_get_video_param(struct pipe_screen *screen,
|
|||
case PIPE_VIDEO_CAP_SUPPORTED:
|
||||
return codec == PIPE_VIDEO_FORMAT_MPEG4_AVC &&
|
||||
rvce_is_fw_version_supported(rscreen);
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_MAX_WIDTH:
|
||||
return 2048;
|
||||
case PIPE_VIDEO_CAP_MAX_HEIGHT:
|
||||
return 1152;
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
return PIPE_FORMAT_NV12;
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return true;
|
||||
case PIPE_VIDEO_CAP_STACKED_FRAMES:
|
||||
return 1;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -239,37 +233,12 @@ int rvid_get_video_param(struct pipe_screen *screen,
|
|||
default:
|
||||
return false;
|
||||
}
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_MAX_WIDTH:
|
||||
return 2048;
|
||||
case PIPE_VIDEO_CAP_MAX_HEIGHT:
|
||||
return 1152;
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
return PIPE_FORMAT_NV12;
|
||||
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return true;
|
||||
case PIPE_VIDEO_CAP_MAX_LEVEL:
|
||||
switch (profile) {
|
||||
case PIPE_VIDEO_PROFILE_MPEG1:
|
||||
return 0;
|
||||
case PIPE_VIDEO_PROFILE_MPEG2_SIMPLE:
|
||||
case PIPE_VIDEO_PROFILE_MPEG2_MAIN:
|
||||
return 3;
|
||||
case PIPE_VIDEO_PROFILE_VC1_SIMPLE:
|
||||
return 1;
|
||||
case PIPE_VIDEO_PROFILE_VC1_MAIN:
|
||||
return 2;
|
||||
case PIPE_VIDEO_PROFILE_VC1_ADVANCED:
|
||||
return 4;
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE:
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN:
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH:
|
||||
return 41;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,8 +89,6 @@ static int si_video_get_param(struct pipe_screen *screen, enum pipe_video_profil
|
|||
* Have to determine the version and features of VPE in future.
|
||||
*/
|
||||
return PIPE_VIDEO_VPP_BLEND_MODE_NONE;
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
return PIPE_FORMAT_NV12;
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return true;
|
||||
case PIPE_VIDEO_CAP_REQUIRES_FLUSH_ON_END_FRAME:
|
||||
|
|
@ -124,8 +122,6 @@ static int si_video_get_param(struct pipe_screen *screen, enum pipe_video_profil
|
|||
(profile == PIPE_VIDEO_PROFILE_HEVC_MAIN_10 && sscreen->info.vcn_ip_version >= VCN_2_0_0) ||
|
||||
(profile == PIPE_VIDEO_PROFILE_AV1_MAIN &&
|
||||
(sscreen->info.vcn_ip_version >= VCN_4_0_0 && sscreen->info.vcn_ip_version != VCN_4_0_3))));
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_MIN_WIDTH:
|
||||
if (sscreen->info.vcn_ip_version >= VCN_5_0_0) {
|
||||
if (codec == PIPE_VIDEO_FORMAT_MPEG4_AVC)
|
||||
|
|
@ -150,15 +146,8 @@ static int si_video_get_param(struct pipe_screen *screen, enum pipe_video_profil
|
|||
return KERNEL_ENC_CAP(codec, max_height);
|
||||
else
|
||||
return (sscreen->info.family < CHIP_TONGA) ? 1152 : 2304;
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
if (profile == PIPE_VIDEO_PROFILE_HEVC_MAIN_10)
|
||||
return PIPE_FORMAT_P010;
|
||||
else
|
||||
return PIPE_FORMAT_NV12;
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return true;
|
||||
case PIPE_VIDEO_CAP_STACKED_FRAMES:
|
||||
return (sscreen->info.family < CHIP_TONGA) ? 1 : 2;
|
||||
case PIPE_VIDEO_CAP_MAX_TEMPORAL_LAYERS:
|
||||
return (sscreen->info.ip[AMD_IP_UVD_ENC].num_queues ||
|
||||
sscreen->info.vcn_ip_version >= VCN_1_0_0) ? 4 : 0;
|
||||
|
|
@ -415,8 +404,6 @@ static int si_video_get_param(struct pipe_screen *screen, enum pipe_video_profil
|
|||
default:
|
||||
return false;
|
||||
}
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return 1;
|
||||
case PIPE_VIDEO_CAP_MIN_WIDTH:
|
||||
case PIPE_VIDEO_CAP_MIN_HEIGHT:
|
||||
if (codec == PIPE_VIDEO_FORMAT_VP9 || codec == PIPE_VIDEO_FORMAT_AV1)
|
||||
|
|
@ -450,46 +437,8 @@ static int si_video_get_param(struct pipe_screen *screen, enum pipe_video_profil
|
|||
return (sscreen->info.family < CHIP_TONGA) ? 1152 : 4096;
|
||||
}
|
||||
}
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
if (profile == PIPE_VIDEO_PROFILE_HEVC_MAIN_10)
|
||||
return PIPE_FORMAT_P010;
|
||||
else if (profile == PIPE_VIDEO_PROFILE_VP9_PROFILE2)
|
||||
return PIPE_FORMAT_P010;
|
||||
else
|
||||
return PIPE_FORMAT_NV12;
|
||||
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return true;
|
||||
case PIPE_VIDEO_CAP_MAX_LEVEL:
|
||||
if ((profile == PIPE_VIDEO_PROFILE_MPEG2_SIMPLE ||
|
||||
profile == PIPE_VIDEO_PROFILE_MPEG2_MAIN ||
|
||||
profile == PIPE_VIDEO_PROFILE_VC1_ADVANCED) &&
|
||||
sscreen->info.dec_caps.codec_info[codec - 1].valid) {
|
||||
return sscreen->info.dec_caps.codec_info[codec - 1].max_level;
|
||||
} else {
|
||||
switch (profile) {
|
||||
case PIPE_VIDEO_PROFILE_MPEG1:
|
||||
return 0;
|
||||
case PIPE_VIDEO_PROFILE_MPEG2_SIMPLE:
|
||||
case PIPE_VIDEO_PROFILE_MPEG2_MAIN:
|
||||
return 3;
|
||||
case PIPE_VIDEO_PROFILE_VC1_SIMPLE:
|
||||
return 1;
|
||||
case PIPE_VIDEO_PROFILE_VC1_MAIN:
|
||||
return 2;
|
||||
case PIPE_VIDEO_PROFILE_VC1_ADVANCED:
|
||||
return 4;
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_CONSTRAINED_BASELINE:
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN:
|
||||
case PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH:
|
||||
return (sscreen->info.family < CHIP_TONGA) ? 41 : 52;
|
||||
case PIPE_VIDEO_PROFILE_HEVC_MAIN:
|
||||
case PIPE_VIDEO_PROFILE_HEVC_MAIN_10:
|
||||
return 186;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_CONTIGUOUS_PLANES_MAP:
|
||||
return true;
|
||||
case PIPE_VIDEO_CAP_ROI_CROP_DEC:
|
||||
|
|
|
|||
|
|
@ -126,32 +126,24 @@ virgl_get_video_param(struct pipe_screen *screen,
|
|||
|
||||
/*
|
||||
* Since there are calls like this:
|
||||
* pot_buffers = !pipe->screen->get_video_param
|
||||
* pipe->screen->get_video_param
|
||||
* (
|
||||
* pipe->screen,
|
||||
* PIPE_VIDEO_PROFILE_UNKNOWN,
|
||||
* PIPE_VIDEO_ENTRYPOINT_UNKNOWN,
|
||||
* PIPE_VIDEO_CAP_NPOT_TEXTURES
|
||||
* PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE
|
||||
* );
|
||||
* All parameters need to check the vcaps.
|
||||
*/
|
||||
switch (param) {
|
||||
case PIPE_VIDEO_CAP_SUPPORTED:
|
||||
return vcaps != NULL;
|
||||
case PIPE_VIDEO_CAP_NPOT_TEXTURES:
|
||||
return vcaps ? vcaps->npot_texture : true;
|
||||
case PIPE_VIDEO_CAP_MAX_WIDTH:
|
||||
return vcaps ? vcaps->max_width : 0;
|
||||
case PIPE_VIDEO_CAP_MAX_HEIGHT:
|
||||
return vcaps ? vcaps->max_height : 0;
|
||||
case PIPE_VIDEO_CAP_PREFERRED_FORMAT:
|
||||
return vcaps ? virgl_to_pipe_format(vcaps->prefered_format) : PIPE_FORMAT_NV12;
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
|
||||
return vcaps ? vcaps->supports_progressive : true;
|
||||
case PIPE_VIDEO_CAP_MAX_LEVEL:
|
||||
return vcaps ? vcaps->max_level : 0;
|
||||
case PIPE_VIDEO_CAP_STACKED_FRAMES:
|
||||
return vcaps ? vcaps->stacked_frames : 0;
|
||||
case PIPE_VIDEO_CAP_MAX_MACROBLOCKS:
|
||||
return vcaps ? vcaps->max_macroblocks : 0;
|
||||
case PIPE_VIDEO_CAP_MAX_TEMPORAL_LAYERS:
|
||||
|
|
|
|||
|
|
@ -81,13 +81,9 @@ enum pipe_video_profile
|
|||
enum pipe_video_cap
|
||||
{
|
||||
PIPE_VIDEO_CAP_SUPPORTED = 0,
|
||||
PIPE_VIDEO_CAP_NPOT_TEXTURES = 1,
|
||||
PIPE_VIDEO_CAP_MAX_WIDTH = 2,
|
||||
PIPE_VIDEO_CAP_MAX_HEIGHT = 3,
|
||||
PIPE_VIDEO_CAP_PREFERRED_FORMAT = 4,
|
||||
PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE = 6,
|
||||
PIPE_VIDEO_CAP_MAX_LEVEL = 8,
|
||||
PIPE_VIDEO_CAP_STACKED_FRAMES = 9,
|
||||
PIPE_VIDEO_CAP_MAX_MACROBLOCKS = 10,
|
||||
PIPE_VIDEO_CAP_MAX_TEMPORAL_LAYERS = 11,
|
||||
PIPE_VIDEO_CAP_SKIP_CLEAR_SURFACE = 12,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue