AnyPS5/core/libs/prx/libSceVideoOut/include
raghav314 1a2bbc5d3e fix(videoout): create the window and the device when VideoOut starts
The driver created a windowless Vulkan device at the first dispatch and
replaced it with a windowed one at the first flip. The replacement built a
second device and re-imported every host import, and the first flip paid
for it.

VideoOut now creates its window when it starts (the first VideoOut call),
at the default 1920x1080 output, and attaches it to the driver
(AgcDriverAttachWindow) before the call returns. The driver creates its
device with that window, so GPU work and presentation use one device.
Present no longer creates or replaces a device. A device created by GPU
work before VideoOut started is still replaced, now in AttachWindow.

A failure to create the window or the device is thrown from that first
VideoOut call instead of terminating the presentation thread.

Tests:
- video_out_flip_tests onedevice: GPU work, then a flip, leaves one device.
- pacing makes its first presentation span vblanks with GPU work queued
  ahead of the flip; it relied on the device being created at the flip.
- unavailable expects the failure from sceVideoOutOpen.
- guest_video_out_wqhd_detection writes a param.json for the window title
  and is skipped without a display or Vulkan device unless
  ANYPS5_REQUIRE_DISPLAY is set.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 05:54:05 +05:30
..
Buffer.hpp feat(sceVideoOut): video out functions impl (wip) 2026-09-12 11:02:17 +03:00
BufferReuseTracker.hpp feat(video): track ordered buffer reuse reservations 2026-09-25 07:13:15 +10:00
DisplayWindow.hpp fix(videoout): drop __stdcall from the window procedure 2026-09-26 11:15:16 +02:00
Event.hpp refactor(libs): organize libSceVideoOut with cmakelists 2026-09-11 16:41:01 +03:00
KeyboardInput.hpp feat(libSceKeyboard): implement the keyboard library 2026-10-01 19:00:23 +02:00
MouseInput.hpp feat(libSceVideoOut): route SDL mouse events to libSceMouse 2026-09-28 11:45:31 +02:00
Output.hpp feat(libSceVideoOut): implement sceVideoOutAllowOutputResolutionWqhdDetection 2026-10-06 10:10:25 +05:30
PadInput.hpp refactor(pad): trim comments and apply naming conventions 2026-09-29 04:24:39 +03:00
VideoOutDriver.hpp fix(videoout): create the window and the device when VideoOut starts 2026-10-08 05:54:05 +05:30