From 9e8e34d47593af8f017462e48e121e250a68b042 Mon Sep 17 00:00:00 2001 From: Lynne Date: Sat, 13 Dec 2025 22:05:44 +0100 Subject: [PATCH] vulkan_ffv1: remove unused RCT shader files The 2 files were made redundant when the RCT was merged into encode/decode. --- libavcodec/vulkan/Makefile | 4 +- libavcodec/vulkan/ffv1_enc_rct.comp | 79 ------------------------- libavcodec/vulkan/ffv1_rct.comp | 90 ----------------------------- 3 files changed, 2 insertions(+), 171 deletions(-) delete mode 100644 libavcodec/vulkan/ffv1_enc_rct.comp delete mode 100644 libavcodec/vulkan/ffv1_rct.comp diff --git a/libavcodec/vulkan/Makefile b/libavcodec/vulkan/Makefile index 9d1349e0e3..78d511a90e 100644 --- a/libavcodec/vulkan/Makefile +++ b/libavcodec/vulkan/Makefile @@ -6,8 +6,8 @@ clean:: OBJS-$(CONFIG_FFV1_VULKAN_ENCODER) += vulkan/common.o \ vulkan/rangecoder.o vulkan/ffv1_vlc.o \ vulkan/ffv1_common.o vulkan/ffv1_reset.o \ - vulkan/ffv1_enc_rct.o vulkan/ffv1_enc_setup.o \ - vulkan/ffv1_rct_search.o vulkan/ffv1_enc.o + vulkan/ffv1_enc_setup.o vulkan/ffv1_enc.o \ + vulkan/ffv1_rct_search.o OBJS-$(CONFIG_FFV1_VULKAN_HWACCEL) += vulkan/common.o \ vulkan/rangecoder.o vulkan/ffv1_vlc.o \ diff --git a/libavcodec/vulkan/ffv1_enc_rct.comp b/libavcodec/vulkan/ffv1_enc_rct.comp deleted file mode 100644 index b611f4be98..0000000000 --- a/libavcodec/vulkan/ffv1_enc_rct.comp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * FFv1 codec - * - * Copyright (c) 2024 Lynne - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -ivec4 load_components(ivec2 pos) -{ - ivec4 pix = ivec4(imageLoad(src[0], pos)); - if (planar_rgb != 0) { - for (int i = 1; i < (3 + transparency); i++) - pix[i] = int(imageLoad(src[i], pos)[0]); - } - - return ivec4(pix[fmt_lut[0]], pix[fmt_lut[1]], - pix[fmt_lut[2]], pix[fmt_lut[3]]); -} - -void bypass_sample(ivec2 pos) -{ - imageStore(dst[0], pos, load_components(pos)); -} - -void bypass_block(in SliceContext sc) -{ - ivec2 start = ivec2(gl_LocalInvocationID) + sc.slice_pos; - ivec2 end = sc.slice_pos + sc.slice_dim; - for (uint y = start.y; y < end.y; y += gl_WorkGroupSize.y) - for (uint x = start.x; x < end.x; x += gl_WorkGroupSize.x) - bypass_sample(ivec2(x, y)); -} - -void transform_sample(ivec2 pos, ivec2 rct_coef) -{ - ivec4 pix = load_components(pos); - pix.b -= pix.g; - pix.r -= pix.g; - pix.g += (pix.r*rct_coef.x + pix.b*rct_coef.y) >> 2; - pix.b += offset; - pix.r += offset; - imageStore(dst[0], pos, pix); -} - -void transform_block(in SliceContext sc) -{ - const ivec2 rct_coef = sc.slice_rct_coef; - const ivec2 start = ivec2(gl_LocalInvocationID) + sc.slice_pos; - const ivec2 end = sc.slice_pos + sc.slice_dim; - - for (uint y = start.y; y < end.y; y += gl_WorkGroupSize.y) - for (uint x = start.x; x < end.x; x += gl_WorkGroupSize.x) - transform_sample(ivec2(x, y), rct_coef); -} - -void main() -{ - const uint slice_idx = gl_WorkGroupID.y*gl_NumWorkGroups.x + gl_WorkGroupID.x; - - if (slice_ctx[slice_idx].slice_coding_mode == 1) - bypass_block(slice_ctx[slice_idx]); - else - transform_block(slice_ctx[slice_idx]); -} diff --git a/libavcodec/vulkan/ffv1_rct.comp b/libavcodec/vulkan/ffv1_rct.comp deleted file mode 100644 index b10bb47132..0000000000 --- a/libavcodec/vulkan/ffv1_rct.comp +++ /dev/null @@ -1,90 +0,0 @@ -/* - * FFv1 codec - * - * Copyright (c) 2024 Lynne - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -ivec4 load_components(ivec2 pos) -{ - ivec4 pix = ivec4(imageLoad(src[0], pos)); - if (planar_rgb != 0) { - for (int i = 1; i < (3 + transparency); i++) - pix[i] = int(imageLoad(src[i], pos)[0]); - } - - return ivec4(pix[fmt_lut[0]], pix[fmt_lut[1]], - pix[fmt_lut[2]], pix[fmt_lut[3]]); -} - -void bypass_sample(ivec2 pos) -{ - imageStore(dst[0], pos, load_components(pos)); -} - -void bypass_block(in SliceContext sc) -{ - ivec2 start = ivec2(gl_LocalInvocationID) + sc.slice_pos; - ivec2 end = sc.slice_pos + sc.slice_dim; - for (uint y = start.y; y < end.y; y += gl_WorkGroupSize.y) - for (uint x = start.x; x < end.x; x += gl_WorkGroupSize.x) - bypass_sample(ivec2(x, y)); -} - -void transform_sample(ivec2 pos, ivec2 rct_coef) -{ - ivec4 pix = load_components(pos); - pix.b -= offset; - pix.r -= offset; - pix.g -= (pix.r*rct_coef.x + pix.b*rct_coef.y) >> 2; - pix.b += pix.g; - pix.r += pix.g; - imageStore(dst[0], pos, pix); -} - -void transform_sample(ivec2 pos, ivec2 rct_coef) -{ - ivec4 pix = load_components(pos); - pix.b -= pix.g; - pix.r -= pix.g; - pix.g += (pix.r*rct_coef.x + pix.b*rct_coef.y) >> 2; - pix.b += offset; - pix.r += offset; - imageStore(dst[0], pos, pix); -} - -void transform_block(in SliceContext sc) -{ - const ivec2 rct_coef = sc.slice_rct_coef; - const ivec2 start = ivec2(gl_LocalInvocationID) + sc.slice_pos; - const ivec2 end = sc.slice_pos + sc.slice_dim; - - for (uint y = start.y; y < end.y; y += gl_WorkGroupSize.y) - for (uint x = start.x; x < end.x; x += gl_WorkGroupSize.x) - transform_sample(ivec2(x, y), rct_coef); -} - -void main() -{ - const uint slice_idx = gl_WorkGroupID.y*gl_NumWorkGroups.x + gl_WorkGroupID.x; - - if (slice_ctx[slice_idx].slice_coding_mode == 1) - bypass_block(slice_ctx[slice_idx]); - else - transform_block(slice_ctx[slice_idx]); -}