You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CI: the VideoOut display tests never run on Linux or Windows; under Xvfb they run in 10 s and caught the EOP flip regression #6899
17 VideoOut tests skip on the Linux CI job, and Windows CI skips them as well: video_out_flip_{controls,eop,eop_aftergpu,eop_main,labels,labels_main,lifetime,overlay,reopen,unopened}, video_out_frame_dump_queue, video_out_hdr_present and guest_video_out_{hdr,high_frame_rate,output_mode,resolution_status,wqhd_detection}. They use SDL_VIDEODRIVER=offscreen (the ANYPS5_VIDEO_OUT_TEST_DRIVER default from #3810), and SDL2's offscreen driver has no Vulkan surface, so each one reports no display or Vulkan device. tools/check_skips.py accepts that reason, so the job stays green.
This hides real regressions. #1202 (pipelined draws on by default) broke presentation of EOP flips from #5539: video_out_flip_eop and _eop_main fail and _eop_aftergpu times out. CI could not see it; it was found by running the tests by hand and bisecting. The fix is #6616.
On main plus #6616, 16 of the 17 run and pass, in 9.9 s for all 21 video_out tests. guest_video_out_high_frame_rate still skips, because Xvfb offers no 120 Hz mode. check_skips.py already accepts that reason. On main without #6616, the three EOP tests fail as described above.
A hardware Vulkan driver cannot present on Xvfb, which has no DRI3: Intel ANV fails with No DRI3 support detected. So this works with lavapipe, which is what the Linux job already uses.
Suggestion
On the self-hosted Linux runner: install xvfb, configure with -DANYPS5_VIDEO_OUT_TEST_DRIVER=x11, and run the ctest step under xvfb-run -a (or with a started Xvfb and DISPLAY set). Once that is in place, check_skips.py could stop accepting no display on the Linux job, so a lost display shows up as a failure instead of a skip. The runner is yours to configure, so I have not opened a workflow PR. I'm happy to send one if this direction is wanted.
I’m prototyping the Linux CI change from your suggestion: configure ANYPS5_VIDEO_OUT_TEST_DRIVER=x11 and run CTest under xvfb-run, with ANYPS5_GPU=llvmpipe. The repo’s build instructions cover X11/XRandR development packages but not the self-hosted runner’s Xvfb package. Is xvfb-run already installed on the [self-hosted, linux, x64, anyps5] runner, or should the workflow install/provision it? I’m keeping this separate from the EOP production fix in #6616.
I opened #6932 with the Linux X11/Xvfb CI change. The workflow checks for both xvfb-run and xauth, and installs xvfb/xauth with apt if either is missing. The focused VideoOut target builds locally, but runtime assertions on my host stop at the emulator CPU feature guard; I have not claimed a local CTest pass. The PR checks are still running, with the Windows relinker CTest step pending.
Update: #6932 has now passed its PR checks, including the Linux, macOS, and Windows relinker test jobs. The full Linux/Windows build suites are skipped on pull requests by the workflow conditions; the Xvfb VideoOut configuration will be exercised by the full Linux build on main after merge. My local VideoOut test attempt remains blocked before assertions by this host’s CPU feature guard.
Activity
MarcZX10 commentedon Oct 16, 2026
I’m prototyping the Linux CI change from your suggestion: configure
ANYPS5_VIDEO_OUT_TEST_DRIVER=x11and run CTest underxvfb-run, withANYPS5_GPU=llvmpipe. The repo’s build instructions cover X11/XRandR development packages but not the self-hosted runner’s Xvfb package. Isxvfb-runalready installed on the[self-hosted, linux, x64, anyps5]runner, or should the workflow install/provision it? I’m keeping this separate from the EOP production fix in #6616.MarcZX10 commentedon Oct 16, 2026
I opened #6932 with the Linux X11/Xvfb CI change. The workflow checks for both
xvfb-runandxauth, and installsxvfb/xauthwith apt if either is missing. The focused VideoOut target builds locally, but runtime assertions on my host stop at the emulator CPU feature guard; I have not claimed a local CTest pass. The PR checks are still running, with the Windows relinker CTest step pending.MarcZX10 commentedon Oct 16, 2026
Update: #6932 has now passed its PR checks, including the Linux, macOS, and Windows relinker test jobs. The full Linux/Windows build suites are skipped on pull requests by the workflow conditions; the Xvfb VideoOut configuration will be exercised by the full Linux build on
mainafter merge. My local VideoOut test attempt remains blocked before assertions by this host’s CPU feature guard.