From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id EDD724CC89 for <ffmpegdev@gitmailbox.com>; Sat, 12 Apr 2025 07:25:46 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BF9E468C760; Sat, 12 Apr 2025 10:23:25 +0300 (EEST) Received: from vidala.pars.ee (vidala.pars.ee [116.203.72.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 036C968C53B for <ffmpeg-devel@ffmpeg.org>; Sat, 12 Apr 2025 10:23:02 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; s=202405r; d=lynne.ee; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1744442582; bh=p+Iw0Bg7M6zCJJ8fL4caEz7 NZWBBj4DA0z8jTu4ljy0=; b=Ph4RyPlH4NG13Pi55Rrau1WzBSjnmU7e0KDI5E+DChKLE8zsx0 C4JXSan3RAif9vKDyPY40ePOuJKvCe0GscEviaBxXiZ4COT4jtIPdDM7STJO3m+hP0th0IKWpE6 yjfjplCBD4bVNmUU0LIIoF3cizIeFzznkxOTx+C/X/nk+4Cj71h8dNtFMlTTElUFD41AR+V4nUO 0mJ9CmRHXmGKT9Hs3GyQNa5iS/NHsf58f6oflDEjfYdKGwcG15y4d0UfulyqNbw/9Gdx3zzX5ZZ JKU5/M1m/H3EG5XKVblZlLydpdJHFzYLTKYg5iXCt5ByXZj4QajjQU6IXu95tM5gBuA==; DKIM-Signature: v=1; a=ed25519-sha256; s=202405e; d=lynne.ee; c=relaxed/relaxed; h=Message-ID:Date:Subject:To:From; t=1744442582; bh=p+Iw0Bg7M6zCJJ8fL4caEz7 NZWBBj4DA0z8jTu4ljy0=; b=8nLzoY/wKBpnIvUUL1CnwI2w2str3Olx0Yjy9abWGFSoYYYw/4 v1+7Ev7YoOTJ8E9kpT841cZt82e45uf4/tDA==; From: Lynne <dev@lynne.ee> To: ffmpeg-devel@ffmpeg.org Date: Sat, 12 Apr 2025 09:22:45 +0200 Message-ID: <20250412072256.77815-14-dev@lynne.ee> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250412072256.77815-1-dev@lynne.ee> References: <20250412072256.77815-1-dev@lynne.ee> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 14/18] vulkan_ffv1: externalize extended lookup check X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Cc: Lynne <dev@lynne.ee> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/20250412072256.77815-14-dev@lynne.ee/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> 8% speedup on nvidia on 4k. --- libavcodec/vulkan/ffv1_dec.comp | 3 +-- libavcodec/vulkan_ffv1.c | 6 ++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libavcodec/vulkan/ffv1_dec.comp b/libavcodec/vulkan/ffv1_dec.comp index a6272d4832..4cc3b9987f 100644 --- a/libavcodec/vulkan/ffv1_dec.comp +++ b/libavcodec/vulkan/ffv1_dec.comp @@ -47,8 +47,7 @@ ivec2 get_pred(ivec2 sp, ivec2 off, int p, int sw, uint8_t quant_table_idx) quant_table[quant_table_idx][1][(top[0] - top[1]) & MAX_QUANT_TABLE_MASK] + quant_table[quant_table_idx][2][(top[1] - top[2]) & MAX_QUANT_TABLE_MASK]; - if ((quant_table[quant_table_idx][3][127] != 0) || - (quant_table[quant_table_idx][4][127] != 0)) { + if (extend_lookup[quant_table_idx] > 0) { TYPE cur2 = TYPE(0); if (off.x > 0) { const ivec2 yoff_border2 = off.x == 1 ? ivec2(-1, -1) : ivec2(-2, 0); diff --git a/libavcodec/vulkan_ffv1.c b/libavcodec/vulkan_ffv1.c index aaebcd53b5..72cacb1678 100644 --- a/libavcodec/vulkan_ffv1.c +++ b/libavcodec/vulkan_ffv1.c @@ -88,6 +88,7 @@ typedef struct FFv1VkParameters { uint32_t crcref; int rct_offset; + uint8_t extend_lookup[8]; uint8_t bits_per_raw_sample; uint8_t quant_table_count; uint8_t version; @@ -120,6 +121,7 @@ static void add_push_data(FFVulkanShader *shd) GLSLC(1, uint32_t crcref; ); GLSLC(1, int rct_offset; ); GLSLC(0, ); + GLSLC(1, uint8_t extend_lookup[8]; ); GLSLC(1, uint8_t bits_per_raw_sample; ); GLSLC(1, uint8_t quant_table_count; ); GLSLC(1, uint8_t version; ); @@ -456,6 +458,10 @@ static int vk_ffv1_end_frame(AVCodecContext *avctx) .golomb = f->ac == AC_GOLOMB_RICE, .check_crc = !!(avctx->err_recognition & AV_EF_CRCCHECK), }; + for (int i = 0; i < f->quant_table_count; i++) + pd.extend_lookup[i] = (f->quant_tables[i][3][127] != 0) || + (f->quant_tables[i][4][127] != 0); + /* For some reason the C FFv1 encoder/decoder treats these differently */ if (sw_format == AV_PIX_FMT_GBRP10 || sw_format == AV_PIX_FMT_GBRP12 || -- 2.47.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".