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]
