Jeremy Bowers
0356a3221e
Fix the handling of stopping the emulation so it doesn't seem to just freeze.
...
Trying to stop the emulation in VR or S3D modes would result in a QT
dialog box popping up about whether you were sure you wanted to end
the emulation, but that caused no visible effect on the screen.
Now there's a dialog visible for it when emulating in those modes,
and it should correctly work for flat emulation and when pressing
the Stop button in the QT UI.
This fixes #11 .
2026-10-18 22:38:46 -04:00
Jeremy Bowers
49cf50d0e2
Presenter: add stereoscopic virtual screen submission path
...
Add IsOpenXRStereoScreen() and route classic SBS frames through a new
SubmitStereoFlatFrame() path. The left XFB layer is blit into the left
OpenXR eye swapchain and the right layer into the right eye swapchain,
then the backend submits two quad layers at the virtual-screen pose.
Stereo-screen mode is treated like flat mode for direct-to-HMD and
pacing-thread deferral: the eye blits happen at submit time, not during
the desktop mirror path.
2026-10-03 01:24:39 -04:00
Jeremy Bowers
aa2871d9e6
VK/OpenXR: support headless Vulkan VR session
...
- Skip Vulkan surface creation when VR session is active; output goes to
OpenXR swapchains, not a desktop window. This avoids WSI crashes under
compositors such as Gamescope.
- Guard VKGfx backbuffer/present/fullscreen paths against a null swapchain
in headless mode.
- Allow Present() and Presenter::Initialize() to run on any VR-active
backend, not only Android GLES, so the XR frame lifecycle works with
headless Vulkan.
Cleaned up diagnostic init logging added during earlier debugging.
2026-10-03 01:22:39 -04:00
iChris4
e7662f3c8b
Removed "LockHeadPosePerFrame " and "AutoImmediateXFB "in VR Hacks
2026-07-21 17:06:40 +02:00
iChris4
e77555d766
XFB pose stamps & EFB clear moved off the present path
2026-07-18 23:24:17 +02:00
iChris4
a77f7c85d3
D3D12 Texture2DArray OpenXR swapchain
2026-07-17 04:33:48 +02:00
iChris4
a4a4eec869
Defer eye blit to submit time
2026-07-16 15:38:48 +02:00
iChris4
3bfa9ad3ec
Improved passthrough & Added XRPacingThread
2026-07-12 01:32:52 +02:00
iChris4
d9565464a9
Added 2D "cinema" mode
2026-07-07 05:37:17 +02:00
iChris4
bc7a7dbe67
Updated Passthrough Mode
2026-07-07 04:11:24 +02:00
iChris4
a5e3bbf159
Restored the direct-to-HMD switch
2026-07-04 04:40:14 +02:00
iChris4
f7abfcd745
Initial OpenGL VR Support
2026-07-04 02:43:15 +02:00
iChris4
04113519b6
Opcode Replay Added 72,90,120hz
2026-05-15 02:15:13 +02:00
iChris4
2bedfe31bd
Linux Debian VR Building Option
2026-05-14 18:56:58 +02:00
iChris4
49ad800936
Added Default GamesettingsVR
2026-05-03 14:43:33 +02:00
iChris4
c80961c437
Quest Vulkan Multiview fixes & Performances
2026-05-02 15:58:54 +02:00
iChris4
adaeeaf3d4
Fix for Vulkan
2026-04-24 16:15:01 +02:00
iChris4
2929ead841
Initial Support for Quest
2026-04-24 13:40:27 +02:00
iChris4
19ba9b05fa
Opcode Replay Fix & Lock Head Pose Per Frame Fix
2026-04-23 16:43:59 +02:00
iChris4
49febf2cbe
WII Controller Config Screen Overlay for OpenXR & Quest 3 Controller Fix
2026-04-12 02:08:02 +02:00
iChris4
677aa34050
Added ARMode by Clodo76
2026-04-11 18:08:04 +02:00
iChris4
a2dad38be5
Add OpenXR support and related VR changes
2026-04-07 00:18:01 +02:00
Sintendo
1e0473e44f
Fix various typos and spelling mistakes
2026-01-17 20:11:38 +01:00
Jordan Woyak
44a766772f
VideoCommon: Add a hidden setting to cap immediate XFB swaps to one per VI.
2025-11-25 00:15:32 -06:00
Jordan Woyak
c2a1dce246
VideoCommon: Add "Smooth Early Presentation" setting to improve frame pacing with ImmediateXFB and/or RushFramePresentation.
2025-11-11 20:01:52 -06:00
Jordan Woyak
cc331feb02
VideoCommon: Make Presenter aware of the next swap time to eliminate unsafe usage of GetTicks() with ImmediateXFB + DualCore.
2025-11-11 20:01:52 -06:00
Jordan Woyak
16260040e0
CoreTiming: Add "Rush Frame Presentation" setting to throttle only once after each presentation for lower input latency.
2025-11-11 20:01:52 -06:00
JMC47
f63796c480
Merge pull request #14071 from iwubcode/avoid_config_framebuffer_manager
...
VideoCommon: pass the EFB buffer scale into the FramebufferManager
2025-11-11 20:58:35 -05:00
Jordan Woyak
da6c65bf3b
Common: Remove the string parameters from the HookableEvent interface.
2025-11-06 22:34:40 -06:00
iwubcode
2f20c12d82
VideoCommon: pass the EFB buffer scale into the FramebufferManager instead of pulling it from config, in the future this will allow us to have multiple framebuffers
2025-11-05 21:52:54 -06:00
Jordan Woyak and Dentomologist
f289b06e0d
Common: Make HookableEvent use non-static data.
...
Co-authored-by: Dentomologist <dentomologist@gmail.com >
2025-11-02 17:30:43 -06:00
Jordan Woyak
48b2f7d200
VideoConfig: Eliminate frame dumping members.
2025-03-16 04:30:06 -05:00
Jordan Woyak
7222188cde
Core/VideoCommon: Push presentation time calculated from CPU thread to GPU thread.
2025-03-10 16:40:46 -05:00
Jordan Woyak
c18c039089
VideoCommon: Move backend_info out of VideoConfig struct.
2025-03-09 01:42:45 -06:00
TellowKrinkle
7e1a9490c0
VideoBackends:Vulkan: Don't try to present if swapchain acquire failed
2024-10-02 19:22:16 -05:00
Bryan Jacobs
7ec6d116e8
Graphics: Adapt aspect ratio when SBS/TAB 3D is used
...
Adds support for choosing to present the full resolution
independently to each eye when using side-by-side or
top-and-bottom 3D.
2024-08-22 07:11:43 +10:00
Admiral H. Curtiss
8268ae1cf7
Merge pull request #12698 from iwubcode/xfb_copy_hash_in_present
...
VideoCommon: add xfbs hashes to present info if available
2024-04-18 17:11:49 +02:00
Admiral H. Curtiss
2f13be5a2d
VideoConfig: Adjust FrameDumpResolutionType enum class to style guidelines
2024-04-13 03:21:39 +02:00
iwubcode
abf380b705
VideoCommon: add xfb hash values (if available) to present information
2024-04-09 18:59:33 -05:00
Filoppi
66592f79f2
Video: remove enforced resolution least common multiple of 4 when dumping screenshots and not videos (only videos encoders have this limit).
...
NOTE: this will likely trigger FIFOCI differences.
2024-04-08 22:54:45 +03:00
Filoppi
72db62e178
Video: split frame dumping settings into 3 resolution dumping modes
...
also polish aspect ratio related code for clarity
2024-04-08 22:54:45 +03:00
Filoppi
1f34adf216
Video: move all padding added for frame dumping to a single function,
...
which also avoids the output window from being resized randomly to be a multiple of 4
2024-04-03 13:32:01 +03:00
Filoppi
d6230bbad8
Video: Change the frame dumper to actually use the raw emulation output resolution, avoiding any scaling if possible.
...
This should make comparisons much more reliable as pixels wouldn't be smushed together or stretched.
2024-04-03 13:32:01 +03:00
Filoppi
41b19e262f
Add custom relative and raw (squared pixels) aspect ratio modes
2024-02-29 21:11:19 +02:00
Filoppi
3f102ea8c2
Video: Make the game resolution (within the window) snap to the XFB size if they are within a ~1 pixel treshold on one axis only.
...
This takes care of making the image clearer in some edge cases where the game was already running at near perfect
4:3 with no stretching, and the VI aspect ratio didn't match the XFB by one pixel, making the image stretched and blurry.
-Video: Fix `FindClosestIntegerResolution() using the window aspect ratio and not the draw aspect ratio, causing it to prefer
stretching over black bars in cases when it wasn't desirable.
2024-02-20 03:09:11 +02:00
Lioncash
cac66317aa
VideoCommon/Statistics: Remove global system accessor from s_after_frame_event
...
Instead, we make the event take a reference to the system and then pass
it in when the event is triggered.
This does introduce two other accessors, but these are much easier to
refactor out over time, and without modification to the existing event
interface.
2024-01-31 13:12:09 -05:00
Filoppi
a6dfeed318
Video: make the "Auto" resolution setting also follow the max res setting, to avoid trying to create texture bigger than the maximum supported one
2023-12-18 02:00:25 +02:00
Filoppi
ff03189a60
Video: fix auto resolution scale calculations
2023-12-18 02:00:25 +02:00
Filoppi
fdd1934f12
Video: fix Auto Resolution Scale not updating when the window was resized.
...
Also fixes the widescreen hack not fully updating when the aspect ratio setting changed on the spot.
2023-12-18 02:00:25 +02:00
Filoppi
b3aa6ad93b
Video: implement custom aspect ratio support (already exposed to Qt).
...
This also renamed some variables/functions.
2023-12-18 02:00:24 +02:00