This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 2d826f18fb66ba71fe63d1dec49922a3d48b5079
Author:     Lynne <[email protected]>
AuthorDate: Wed May 13 00:39:26 2026 +0900
Commit:     Lynne <[email protected]>
CommitDate: Thu May 14 02:55:53 2026 +0900

    vulkan/prores_raw: don't load the quantization matrix on every invocation
---
 libavcodec/vulkan/prores_raw_idct.comp.glsl | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavcodec/vulkan/prores_raw_idct.comp.glsl 
b/libavcodec/vulkan/prores_raw_idct.comp.glsl
index 69c0f33c00..15af6d5a3f 100644
--- a/libavcodec/vulkan/prores_raw_idct.comp.glsl
+++ b/libavcodec/vulkan/prores_raw_idct.comp.glsl
@@ -66,6 +66,8 @@ const u8vec2 scan[64] = {
     u8vec2(12, 12), u8vec2( 8, 14), u8vec2(10, 14), u8vec2(14, 14),
 };
 
+shared uint8_t qmat_buf[64];
+
 void main(void)
 {
     const uint tile_idx = gl_WorkGroupID.y*gl_NumWorkGroups.x + 
gl_WorkGroupID.x;
@@ -83,8 +85,10 @@ void main(void)
     const uint w = min(tile_size.x, width - td.pos.x) >> 1;
     const uint nb_blocks = w >> 3;
 
-    /* We have to do non-uniform access, so copy it */
-    uint8_t qmat_buf[64] = qmat;
+    /* Copy push-constant qmat into shared memory for fast non-uniform access 
*/
+    if (gl_LocalInvocationIndex < 64)
+        qmat_buf[gl_LocalInvocationIndex] = qmat[gl_LocalInvocationIndex];
+    barrier();
 
     [[unroll]]
     for (uint y = 0; y < 8; y++) {

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to