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 6DFFB4CC3D
	for <ffmpegdev@gitmailbox.com>; Sat, 12 Apr 2025 07:23:49 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 74A9568C62A;
	Sat, 12 Apr 2025 10:23:12 +0300 (EEST)
Received: from vidala.pars.ee (vidala.pars.ee [116.203.72.101])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1B08668C1FB
 for <ffmpeg-devel@ffmpeg.org>; Sat, 12 Apr 2025 10:23:01 +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=1744442580; bh=u3bcWrmdjUmlQzoknrvoqZ2
 yPhoc0fQWU/2VoVe+HBY=; b=k5GTmCnnnlviVGSu3DQO7JCtvjTpZRq4Y3EAlRRCruZ/8XNlJW
 vFXxZ8hyzhSzQk20YSOmrX8/oM7JuD24tUGyFcRJz1YUclFsW8tXKiuxLAfZHI/y3212chNQTjl
 o+4VFy/N3yymYKg0oy+Go1+/aBf40Mvv1CiJdAKP6Kjy2okNItqjyzxzE3YQble1ZfG+Q7UTF4S
 fFVa9Pijt3v+NIKx7pH4caXfV24Wv0U1z/2lqoheDXnvEsVtcauL1gNXFPTnOi9rniISTC0ZWot
 Rs5GIstUxX3ovykI/6ALahEh67dtXLt3MvxSsGFoC3PlA4QpDoOUZOLcWRc/4DOKnWg==;
DKIM-Signature: v=1; a=ed25519-sha256; s=202405e; d=lynne.ee; c=relaxed/relaxed;
 h=Message-ID:Date:Subject:To:From; t=1744442580; bh=u3bcWrmdjUmlQzoknrvoqZ2
 yPhoc0fQWU/2VoVe+HBY=; b=QqPYIKuqIv+HhjZ76o3+ONwG4BzUT92gF8K9qyY+SoobeOCL+y
 3J9vqFGQKqACdf7dff4ZCKxFMlzeWA/8SGDw==;
From: Lynne <dev@lynne.ee>
To: ffmpeg-devel@ffmpeg.org
Date: Sat, 12 Apr 2025 09:22:35 +0200
Message-ID: <20250412072256.77815-4-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 04/18] vulkan_ffv1: slightly optimize the
 range decoder
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-4-dev@lynne.ee/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

GPUs have cmovs as standard.
---
 libavcodec/vulkan/rangecoder.comp | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/libavcodec/vulkan/rangecoder.comp b/libavcodec/vulkan/rangecoder.comp
index 4272b2a42f..ba8a6cfd9d 100644
--- a/libavcodec/vulkan/rangecoder.comp
+++ b/libavcodec/vulkan/rangecoder.comp
@@ -219,7 +219,7 @@ void refill(inout RangeCoder c)
     c.range <<= 8;
     c.low   <<= 8;
     if (c.bytestream < c.bytestream_end) {
-        c.low += u8buf(c.bytestream).v;
+        c.low |= u8buf(c.bytestream).v;
         c.bytestream++;
     } else {
         overread++;
@@ -234,11 +234,10 @@ bool get_rac(inout RangeCoder c, uint64_t state)
     int ranged = c.range + range1;
 
     bool bit = c.low >= ranged;
-    int bv = bit ? 0xFFFFFFFF : 0;
-    sb.v = zero_one_state[(bv & 0x100) + val];
+    sb.v = zero_one_state[val + (bit ? 256 : 0)];
 
-    c.low = c.low - (bv & ranged);
-    c.range = (ranged & ~bv) - (range1 & bv);
+    c.low = c.low - (bit ? ranged : 0);
+    c.range = (bit ? 0 : ranged) - (bit ? range1 : 0);
 
     if (c.range < 0x100)
         refill(c);
-- 
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".