From aa82bffa35e1cc865d3ed0da1650699d88ec7fa8 Mon Sep 17 00:00:00 2001 From: claude-noether Date: Thu, 14 May 2026 09:03:08 +0000 Subject: [PATCH] =?UTF-8?q?iter19=20=CE=B1-23=20TEST:=20skip=20media=5Freq?= =?UTF-8?q?uest=5Freinit()=20in=20RequestSyncSurface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tests mechanism 2 (REINIT clears controls between S_EXT_CTRLS and QUEUE). Co-Authored-By: Claude Opus 4.7 (1M context) --- src/surface.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/surface.c b/src/surface.c index 341637c..2bf0aba 100644 --- a/src/surface.c +++ b/src/surface.c @@ -339,7 +339,18 @@ VAStatus RequestSyncSurface(VADriverContextP context, VASurfaceID surface_id) * since iter4 (`74d8dd1`), so REINIT is no longer compromised by * the cluster-validation EINVAL pattern. */ - rc = media_request_reinit(request_fd); + /* + * iter19 α-23 TEST: skip REINIT to test mechanism 2. + * If kernel sees correct controls after this change, REINIT was + * clearing the request between S_EXT_CTRLS and IOC_QUEUE — but + * looking at the code, REINIT runs AFTER wait_completion (i.e., + * AFTER decode is done), so this should only affect NEXT frame's + * request reuse — not the current frame. Test it anyway since + * libva uses 16 request_fds in rotation per output_pool slot; + * each request_fd is REINIT'd before being reused next time. + */ + (void)media_request_reinit; + rc = 0; /* media_request_reinit(request_fd); */ if (rc < 0) { status = VA_STATUS_ERROR_OPERATION_FAILED; goto error;