From 37c6144e8b6ea05b6270e46a646286d5d6f67600 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 26 Mar 2026 11:02:24 +0100 Subject: [PATCH 1/6] vl: Use NV12 as deint format instead of preferred format This is the last place where PIPE_VIDEO_CAP_PREFERRED_FORMAT is being used, and all drivers return NV12 here anyway. Reviewed-by: Ruijing Dong Part-of: --- src/gallium/auxiliary/vl/vl_deint_filter.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/gallium/auxiliary/vl/vl_deint_filter.c b/src/gallium/auxiliary/vl/vl_deint_filter.c index 48244435546..809a5c1bf88 100644 --- a/src/gallium/auxiliary/vl/vl_deint_filter.c +++ b/src/gallium/auxiliary/vl/vl_deint_filter.c @@ -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; From 105ddb028ec150d2521ddde4901730e8ce35b677 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 26 Mar 2026 11:08:10 +0100 Subject: [PATCH 2/6] vl: Don't check npot textures support when creating buffers This is the only place where PIPE_VIDEO_CAP_NPOT_TEXTURES is used, but all video drivers supports npot textures. Reviewed-by: Ruijing Dong Part-of: --- src/gallium/auxiliary/vl/vl_video_buffer.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/gallium/auxiliary/vl/vl_video_buffer.c b/src/gallium/auxiliary/vl/vl_video_buffer.c index 85dc4394140..0e808b6499f 100644 --- a/src/gallium/auxiliary/vl/vl_video_buffer.c +++ b/src/gallium/auxiliary/vl/vl_video_buffer.c @@ -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; From 97f8b955ae54649a4ba530508c2079e41d82491d Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 26 Mar 2026 11:05:03 +0100 Subject: [PATCH 3/6] pipe/video: Remove unused PIPE_VIDEO_CAP_PREFERRED_FORMAT Reviewed-by: Ruijing Dong Reviewed-by: Sil Vilerino Part-of: --- src/gallium/drivers/d3d12/d3d12_video_screen.cpp | 7 ------- src/gallium/drivers/nouveau/nouveau_video.c | 2 -- src/gallium/drivers/nouveau/nouveau_vp3_video.c | 2 -- src/gallium/drivers/nouveau/nv50/nv84_video.c | 2 -- src/gallium/drivers/r600/radeon_video.c | 5 ----- src/gallium/drivers/radeonsi/mm/si_mm_screen.c | 15 --------------- src/gallium/drivers/virgl/virgl_screen.c | 2 -- src/gallium/include/pipe/p_video_enums.h | 1 - 8 files changed, 36 deletions(-) diff --git a/src/gallium/drivers/d3d12/d3d12_video_screen.cpp b/src/gallium/drivers/d3d12/d3d12_video_screen.cpp index 29e98945d0e..b2833ab5cd0 100644 --- a/src/gallium/drivers/d3d12/d3d12_video_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_video_screen.cpp @@ -2297,8 +2297,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: @@ -2325,7 +2323,6 @@ d3d12_screen_get_video_param_postproc(struct pipe_screen *pscreen, 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 +2363,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) { @@ -2689,8 +2684,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: diff --git a/src/gallium/drivers/nouveau/nouveau_video.c b/src/gallium/drivers/nouveau/nouveau_video.c index a74f01f7828..17aa7e14d60 100644 --- a/src/gallium/drivers/nouveau/nouveau_video.c +++ b/src/gallium/drivers/nouveau/nouveau_video.c @@ -837,8 +837,6 @@ nouveau_screen_get_video_param(struct pipe_screen *pscreen, 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: diff --git a/src/gallium/drivers/nouveau/nouveau_vp3_video.c b/src/gallium/drivers/nouveau/nouveau_vp3_video.c index e21b1227593..30bb60ea1f7 100644 --- a/src/gallium/drivers/nouveau/nouveau_vp3_video.c +++ b/src/gallium/drivers/nouveau/nouveau_vp3_video.c @@ -489,8 +489,6 @@ 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: diff --git a/src/gallium/drivers/nouveau/nv50/nv84_video.c b/src/gallium/drivers/nouveau/nv50/nv84_video.c index 39a55c1a770..11a968cbde5 100644 --- a/src/gallium/drivers/nouveau/nv50/nv84_video.c +++ b/src/gallium/drivers/nouveau/nv50/nv84_video.c @@ -826,8 +826,6 @@ nv84_screen_get_video_param(struct pipe_screen *pscreen, 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: diff --git a/src/gallium/drivers/r600/radeon_video.c b/src/gallium/drivers/r600/radeon_video.c index a2b47ff0e6b..60313478bf1 100644 --- a/src/gallium/drivers/r600/radeon_video.c +++ b/src/gallium/drivers/r600/radeon_video.c @@ -210,8 +210,6 @@ int rvid_get_video_param(struct pipe_screen *screen, 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: @@ -245,9 +243,6 @@ int rvid_get_video_param(struct pipe_screen *screen, 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: diff --git a/src/gallium/drivers/radeonsi/mm/si_mm_screen.c b/src/gallium/drivers/radeonsi/mm/si_mm_screen.c index 16759ec91ad..cfadf6e58bf 100644 --- a/src/gallium/drivers/radeonsi/mm/si_mm_screen.c +++ b/src/gallium/drivers/radeonsi/mm/si_mm_screen.c @@ -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: @@ -150,11 +148,6 @@ 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: @@ -450,14 +443,6 @@ 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: diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c index 1e0b7cba1bf..dc9d9d673e6 100644 --- a/src/gallium/drivers/virgl/virgl_screen.c +++ b/src/gallium/drivers/virgl/virgl_screen.c @@ -144,8 +144,6 @@ virgl_get_video_param(struct pipe_screen *screen, 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: diff --git a/src/gallium/include/pipe/p_video_enums.h b/src/gallium/include/pipe/p_video_enums.h index 0efc97bf824..e59b1cefdd2 100644 --- a/src/gallium/include/pipe/p_video_enums.h +++ b/src/gallium/include/pipe/p_video_enums.h @@ -84,7 +84,6 @@ enum pipe_video_cap 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, From 5aad0242eb4a486d868fcc5fb723d1498b2202ee Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 26 Mar 2026 11:11:14 +0100 Subject: [PATCH 4/6] pipe/video: Remove unused PIPE_VIDEO_CAP_NPOT_TEXTURES Reviewed-by: Ruijing Dong Reviewed-by: Sil Vilerino Part-of: --- src/gallium/drivers/d3d12/d3d12_video_screen.cpp | 6 ------ src/gallium/drivers/nouveau/nouveau_video.c | 2 -- src/gallium/drivers/nouveau/nouveau_vp3_video.c | 2 -- src/gallium/drivers/nouveau/nv50/nv84_video.c | 2 -- src/gallium/drivers/r600/radeon_video.c | 4 ---- src/gallium/drivers/radeonsi/mm/si_mm_screen.c | 4 ---- src/gallium/drivers/virgl/virgl_screen.c | 6 ++---- src/gallium/include/pipe/p_video_enums.h | 1 - 8 files changed, 2 insertions(+), 25 deletions(-) diff --git a/src/gallium/drivers/d3d12/d3d12_video_screen.cpp b/src/gallium/drivers/d3d12/d3d12_video_screen.cpp index b2833ab5cd0..c9bb5fb65b6 100644 --- a/src/gallium/drivers/d3d12/d3d12_video_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_video_screen.cpp @@ -2245,8 +2245,6 @@ 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: @@ -2316,8 +2314,6 @@ 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: @@ -2461,8 +2457,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)) { diff --git a/src/gallium/drivers/nouveau/nouveau_video.c b/src/gallium/drivers/nouveau/nouveau_video.c index 17aa7e14d60..d2666fb6a0f 100644 --- a/src/gallium/drivers/nouveau/nouveau_video.c +++ b/src/gallium/drivers/nouveau/nouveau_video.c @@ -832,8 +832,6 @@ 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); diff --git a/src/gallium/drivers/nouveau/nouveau_vp3_video.c b/src/gallium/drivers/nouveau/nouveau_vp3_video.c index 30bb60ea1f7..15cabea9da9 100644 --- a/src/gallium/drivers/nouveau/nouveau_vp3_video.c +++ b/src/gallium/drivers/nouveau/nouveau_vp3_video.c @@ -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: diff --git a/src/gallium/drivers/nouveau/nv50/nv84_video.c b/src/gallium/drivers/nouveau/nv50/nv84_video.c index 11a968cbde5..294c19ed967 100644 --- a/src/gallium/drivers/nouveau/nv50/nv84_video.c +++ b/src/gallium/drivers/nouveau/nv50/nv84_video.c @@ -821,8 +821,6 @@ 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; diff --git a/src/gallium/drivers/r600/radeon_video.c b/src/gallium/drivers/r600/radeon_video.c index 60313478bf1..91c80412cd9 100644 --- a/src/gallium/drivers/r600/radeon_video.c +++ b/src/gallium/drivers/r600/radeon_video.c @@ -204,8 +204,6 @@ 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: @@ -237,8 +235,6 @@ 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: diff --git a/src/gallium/drivers/radeonsi/mm/si_mm_screen.c b/src/gallium/drivers/radeonsi/mm/si_mm_screen.c index cfadf6e58bf..b979af77fc3 100644 --- a/src/gallium/drivers/radeonsi/mm/si_mm_screen.c +++ b/src/gallium/drivers/radeonsi/mm/si_mm_screen.c @@ -122,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) @@ -408,8 +406,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) diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c index dc9d9d673e6..89d89027eb2 100644 --- a/src/gallium/drivers/virgl/virgl_screen.c +++ b/src/gallium/drivers/virgl/virgl_screen.c @@ -126,20 +126,18 @@ 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: diff --git a/src/gallium/include/pipe/p_video_enums.h b/src/gallium/include/pipe/p_video_enums.h index e59b1cefdd2..c21a1e6266a 100644 --- a/src/gallium/include/pipe/p_video_enums.h +++ b/src/gallium/include/pipe/p_video_enums.h @@ -81,7 +81,6 @@ 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_SUPPORTS_PROGRESSIVE = 6, From 1edf478e576c289edcaa93be973368928367ab23 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 26 Mar 2026 11:12:53 +0100 Subject: [PATCH 5/6] pipe/video: Remove unused PIPE_VIDEO_CAP_MAX_LEVEL Reviewed-by: Ruijing Dong Reviewed-by: Sil Vilerino Part-of: --- .../drivers/d3d12/d3d12_video_screen.cpp | 6 ---- src/gallium/drivers/nouveau/nouveau_video.c | 10 ------- .../drivers/nouveau/nouveau_vp3_video.c | 22 -------------- src/gallium/drivers/nouveau/nv50/nv84_video.c | 15 ---------- src/gallium/drivers/r600/radeon_video.c | 20 ------------- .../drivers/radeonsi/mm/si_mm_screen.c | 30 ------------------- src/gallium/drivers/virgl/virgl_screen.c | 2 -- src/gallium/include/pipe/p_video_enums.h | 1 - 8 files changed, 106 deletions(-) diff --git a/src/gallium/drivers/d3d12/d3d12_video_screen.cpp b/src/gallium/drivers/d3d12/d3d12_video_screen.cpp index c9bb5fb65b6..87899f96391 100644 --- a/src/gallium/drivers/d3d12/d3d12_video_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_video_screen.cpp @@ -2247,7 +2247,6 @@ d3d12_screen_get_video_param_decode(struct pipe_screen *pscreen, return 0; 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: @@ -2284,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; } @@ -2487,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: @@ -2572,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) { diff --git a/src/gallium/drivers/nouveau/nouveau_video.c b/src/gallium/drivers/nouveau/nouveau_video.c index d2666fb6a0f..e78d9c1c0f5 100644 --- a/src/gallium/drivers/nouveau/nouveau_video.c +++ b/src/gallium/drivers/nouveau/nouveau_video.c @@ -837,16 +837,6 @@ nouveau_screen_get_video_param(struct pipe_screen *pscreen, return vl_video_buffer_max_size(pscreen); 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; diff --git a/src/gallium/drivers/nouveau/nouveau_vp3_video.c b/src/gallium/drivers/nouveau/nouveau_vp3_video.c index 15cabea9da9..5130ed6d638 100644 --- a/src/gallium/drivers/nouveau/nouveau_vp3_video.c +++ b/src/gallium/drivers/nouveau/nouveau_vp3_video.c @@ -489,28 +489,6 @@ nouveau_vp3_screen_get_video_param(struct pipe_screen *pscreen, } 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: diff --git a/src/gallium/drivers/nouveau/nv50/nv84_video.c b/src/gallium/drivers/nouveau/nv50/nv84_video.c index 294c19ed967..a7cb4e0e731 100644 --- a/src/gallium/drivers/nouveau/nv50/nv84_video.c +++ b/src/gallium/drivers/nouveau/nv50/nv84_video.c @@ -826,21 +826,6 @@ nv84_screen_get_video_param(struct pipe_screen *pscreen, return 2048; 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: diff --git a/src/gallium/drivers/r600/radeon_video.c b/src/gallium/drivers/r600/radeon_video.c index 91c80412cd9..88f56fec81b 100644 --- a/src/gallium/drivers/r600/radeon_video.c +++ b/src/gallium/drivers/r600/radeon_video.c @@ -241,26 +241,6 @@ int rvid_get_video_param(struct pipe_screen *screen, return 1152; 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; } diff --git a/src/gallium/drivers/radeonsi/mm/si_mm_screen.c b/src/gallium/drivers/radeonsi/mm/si_mm_screen.c index b979af77fc3..aeb000db14d 100644 --- a/src/gallium/drivers/radeonsi/mm/si_mm_screen.c +++ b/src/gallium/drivers/radeonsi/mm/si_mm_screen.c @@ -441,36 +441,6 @@ static int si_video_get_param(struct pipe_screen *screen, enum pipe_video_profil } 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: diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c index 89d89027eb2..1884646edd9 100644 --- a/src/gallium/drivers/virgl/virgl_screen.c +++ b/src/gallium/drivers/virgl/virgl_screen.c @@ -144,8 +144,6 @@ virgl_get_video_param(struct pipe_screen *screen, return vcaps ? vcaps->max_height : 0; 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: diff --git a/src/gallium/include/pipe/p_video_enums.h b/src/gallium/include/pipe/p_video_enums.h index c21a1e6266a..ce2e9c9dde9 100644 --- a/src/gallium/include/pipe/p_video_enums.h +++ b/src/gallium/include/pipe/p_video_enums.h @@ -84,7 +84,6 @@ enum pipe_video_cap PIPE_VIDEO_CAP_MAX_WIDTH = 2, PIPE_VIDEO_CAP_MAX_HEIGHT = 3, 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, From 0bf00000ff44fe179b3746b79b92c2ff7e53f3a9 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 7 May 2026 15:27:02 +0200 Subject: [PATCH 6/6] pipe/video: Remove unused PIPE_VIDEO_CAP_STACKED_FRAMES Reviewed-by: Ruijing Dong Part-of: --- src/gallium/drivers/r600/radeon_video.c | 2 -- src/gallium/drivers/radeonsi/mm/si_mm_screen.c | 2 -- src/gallium/drivers/virgl/virgl_screen.c | 2 -- src/gallium/include/pipe/p_video_enums.h | 1 - 4 files changed, 7 deletions(-) diff --git a/src/gallium/drivers/r600/radeon_video.c b/src/gallium/drivers/r600/radeon_video.c index 88f56fec81b..1708af24417 100644 --- a/src/gallium/drivers/r600/radeon_video.c +++ b/src/gallium/drivers/r600/radeon_video.c @@ -210,8 +210,6 @@ int rvid_get_video_param(struct pipe_screen *screen, return 1152; case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE: return true; - case PIPE_VIDEO_CAP_STACKED_FRAMES: - return 1; default: return 0; } diff --git a/src/gallium/drivers/radeonsi/mm/si_mm_screen.c b/src/gallium/drivers/radeonsi/mm/si_mm_screen.c index aeb000db14d..0f6de5e39a3 100644 --- a/src/gallium/drivers/radeonsi/mm/si_mm_screen.c +++ b/src/gallium/drivers/radeonsi/mm/si_mm_screen.c @@ -148,8 +148,6 @@ static int si_video_get_param(struct pipe_screen *screen, enum pipe_video_profil return (sscreen->info.family < CHIP_TONGA) ? 1152 : 2304; 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; diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c index 1884646edd9..bcade7bc68a 100644 --- a/src/gallium/drivers/virgl/virgl_screen.c +++ b/src/gallium/drivers/virgl/virgl_screen.c @@ -144,8 +144,6 @@ virgl_get_video_param(struct pipe_screen *screen, return vcaps ? vcaps->max_height : 0; case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE: return vcaps ? vcaps->supports_progressive : true; - 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: diff --git a/src/gallium/include/pipe/p_video_enums.h b/src/gallium/include/pipe/p_video_enums.h index ce2e9c9dde9..cee17dfde04 100644 --- a/src/gallium/include/pipe/p_video_enums.h +++ b/src/gallium/include/pipe/p_video_enums.h @@ -84,7 +84,6 @@ enum pipe_video_cap PIPE_VIDEO_CAP_MAX_WIDTH = 2, PIPE_VIDEO_CAP_MAX_HEIGHT = 3, PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE = 6, - 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,