h264: V3D shaders for all 15 avg_ qpel positions — qpel QPU complete #34
Reference in New Issue
Block a user
Delete Branch "noether/v3d-shader-h264-qpel-avg"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Generates 15 avg_ shader variants by python-templating from existing put_ shaders. Each avg_ adds one L2 line at the tail (
dst = (dst + result + 1) >> 1). For B-slice biprediction per H.264 §8.4.2.3.1.Dispatch reuses the existing
dispatch_h264_qpel_diag_qpuhelper for all 15 — same src envelope as the diag variants. Slightly over-allocates for simpler positions but eliminates 15× boilerplate duplication.All 15 PASS 2048/2048 bytes bit-exact via QPU.
Qpel QPU matrix is now complete: 30 of 30 useful positions (15 put_ + 15 avg_; mc00 = integer copy, no shader).
H.264 8-bit 4:2:0 hot-path QPU coverage state:
The H.264 non-intra-deblock hot path is now FULLY on QPU for any consumer that initialises daedalus with a QPU-capable context.