Henrik Rydgård
10a5d2f810
OpenGL: Improve checks for fragment shader float precision.
...
Fixes #22001 (although there may be other artifacts).
2026-07-30 10:03:15 +02:00
Henrik Rydgård
b46566adc2
Logging improvements
2026-07-29 14:42:24 +02:00
Henrik Rydgård
f8ccc78e31
OpenGL on Android: Don't try to detect version too early
2026-07-29 14:40:01 +02:00
Henrik Rydgård
1649d2fcae
Also merge away the iOS GL graphics context
2026-07-26 20:16:24 +02:00
Henrik Rydgård
ccff34b431
Reuse the AndroidJavaGLContext as the new generic OpenGLGraphicsContext
2026-07-26 20:07:14 +02:00
Henrik Rydgård
1c40facc4c
Vulkan SDL: Remove an old workaround
2026-07-26 19:10:46 +02:00
Henrik Rydgård
3784bbe0e6
Delete the AndroidVulkanContext, replace with the generic VulkanGraphicsContext
2026-07-26 19:10:46 +02:00
Henrik Rydgård
e3d36e2741
Move the VulkanGraphicsContext to its correct location in Common/GPU/Vulkan
2026-07-26 14:15:15 +02:00
Henrik Rydgård
3eb056ad86
Move Common/GraphicsContext.h to Common/GPU/GraphicsContext.h
2026-07-26 13:58:17 +02:00
Henrik Rydgård
568ffe5a05
Use the common EmuThread implementation on iOS as well
2026-07-26 12:04:51 +02:00
Henrik Rydgård
7f218acc53
Change the GraphicsContext interface to be more consistent
2026-07-26 10:22:00 +02:00
Henrik Rydgård
f5a8ad172e
Fix various issues with the headless build (for running frame dumps)
2026-07-19 00:09:06 +02:00
Henrik Rydgård
57e6bafb62
Remove largely ineffective and nearly not functional "low memory mode". Unlikely to save us.
2026-07-16 15:28:40 +02:00
Henrik Rydgård
26313b6314
Log improvements
2026-07-15 12:03:05 +02:00
Henrik Rydgård
c1ceea1405
Correct Vulkan initialization for devices that don't support Vulkan 1.1.
2026-07-15 11:57:27 +02:00
Henrik Rydgård
cd40e2d4f0
Delete more code related to hardware skinning
2026-07-14 17:17:40 +02:00
Henrik Rydgård
b68d4c0c48
Work around problem with clashing uniform precision in thin3d presets.
...
See #21904
Fixes #21904
2026-07-10 12:11:17 +02:00
Henrik Rydgård
78f80a0010
Some tweaks to avoid name collisions in upcoming commits
2026-07-10 12:11:17 +02:00
Henrik Rydgård
9e687c3282
Make Description a member function of VShaderID / FShaderID. Assorted cleanup
2026-07-09 17:46:07 +02:00
Henrik Rydgård
5f7281bd8e
Remove old vestiges of geometry shader support
2026-07-08 18:25:08 +02:00
Henrik Rydgård
90c48671d7
D3D11: Remove support for BGRA textures and preferred framebuffer formats
2026-07-03 16:20:22 +02:00
Henrik Rydgård
ebc564a465
Centralize handling of another GPU flag
2026-06-27 13:50:03 +02:00
Henrik Rydgård
7b3405ab86
Fix a Vulkan lifetime issue causing invalid descriptors on shutdown
...
Also simplifies the code a little
2026-06-25 21:56:33 +02:00
Henrik Rydgård
623545bd24
Delete the "Hardware tessellation" feature.
...
Very hard to maintain and debug, not worth it.
2026-06-16 16:17:14 +02:00
Henrik Rydgård
ea8a648737
Refactor UI shader presets, prepare for some updates to the ImGe debugger
2026-06-14 11:08:56 +02:00
Henrik Rydgård
e0634f3df9
Assorted cleanup and tweaks
2026-06-13 13:34:41 +02:00
Henrik Rydgård
aee05fcebb
vkGetDataFormatSupport is surprisingly expensive on some devices, cache it.
2026-06-13 13:34:38 +02:00
Henrik Rydgård
83d82dcf66
Shader depal: Don't generate a big switch in the shader, generate specialized shaders instead.
2026-06-10 12:22:11 +02:00
Henrik Rydgård
928cdea420
Fix vulkan validation error after #21616
...
See #21616
2026-06-05 10:09:23 +02:00
jasaaved
5e25118043
Fix the exclusive fullscreen config guard and switching the setting on/off
...
Previously the exclusive fullscreen option in the settings screen was
guarded by a compile-time #ifdef VK_EXT_full_screen_exclusive, which is
always true on Windows. It now uses a runtime fullScreenExclusiveSupported
cap derived from whether the extension is actually enabled by the driver.
Switching between borderless and exclusive fullscreen currently requires a
restart. This is because once DWM has claimed the window (any frames
presented), ALLOWED_EXT cannot re-engage exclusive mode on an existing
swapchain. A new process gets a fresh HWND that DWM has not claimed yet,
so ALLOWED_EXT works correctly at startup.
The proper fix is to use VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
with vkAcquireFullScreenExclusiveModeEXT/vkReleaseFullScreenExclusiveModeEXT
to explicitly negotiate exclusive mode with DWM mid-session without needing
a restart. To be done in a follow-up.
2026-06-03 17:15:13 -07:00
jasaaved
0c23cdaf3d
Windows Vulkan: default to borderless fullscreen, add exclusive option
...
Vulkan swapchain now explicitly sets VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT by default, enabling proper borderless fullscreen behavior with benefits including better Alt+Tab, VRR/G-Sync/FreeSync, and Auto HDR support.
2026-06-03 17:15:13 -07:00
Henrik Rydgård
f55adcc3a1
Apply a small depth bias to simulate rounding of Z. Fix min/max clip plane math
2026-05-30 19:07:58 +02:00
Henrik Rydgård
f60e27a9b7
Just some refactoring of the GPUStatistics struct, and more use of StringWriter
2026-05-29 14:40:31 +02:00
Henrik Rydgård
9845a78a46
Vulkan: Correct handling of VK_ERROR_OUT_OF_DATE_KHR
2026-05-28 10:56:35 +02:00
Herman Semenoff
b1d140e8e7
OpenGL/Vulkan/UI: duplicate fields move to separate const reference var
2026-05-27 12:26:12 +02:00
Herman Semenoff
eaae4dca82
Vulkan: duplicate fields move to separate const reference var
2026-05-27 12:23:47 +02:00
Henrik Rydgård
06a7793f57
Fix some y-flip issues in D3D11. It got broken by recent refactorings.
...
Fixes #21726
2026-05-26 15:51:24 +02:00
Henrik Rydgård
dd125b2e4d
Delete obsolete (and non-working) support for GPUs without non-pow-2 textures.
2026-05-24 14:15:34 +02:00
Henrik Rydgård
2a745bc98d
Apple buildfix
2026-05-21 16:36:32 +02:00
Henrik Rydgård
4a420c95c2
Remove some redundant device caps, show clip/cull/depth-clamp in system info
2026-05-21 11:59:26 +02:00
Henrik Rydgård
0c5e9e04b5
Also generate the fragment shaders
2026-05-18 14:14:29 +02:00
Henrik Rydgård
ebad3401d4
Finish vshader generation
2026-05-18 14:14:29 +02:00
Henrik Rydgård
6f0a16a4a4
Fix Y flip
2026-05-18 14:14:25 +02:00
Henrik Rydgård
cb2f5bf945
UI shaders: Convert the first shader to being generated
2026-05-18 14:11:39 +02:00
Henrik Rydgård
947217d1be
Convert the pre-rotation to just the matrix multiplication.
2026-05-17 10:59:40 +02:00
Henrik Rydgård
8dc3e8ed14
Add depthMinusOneToOne to specify GL's ridiculous behavior
2026-05-14 22:13:04 +02:00
Henrik Rydgård
85ddf03c4b
Vulkan: Remove deprecated use of device layers
2026-05-13 23:09:04 +02:00
Henrik Rydgård
28166cb35d
Add "allocation slack" to our pushbuffers. Fixes a memory overwrite bug
...
Reported by Joseph on Discord.
Sometimes, things could align perfectly so allocations happend exactly
at the end of a pushbuffer. At the same time, we allow our vertex decoder to write an extra few
bytes if it needs to for speed. Unfortunately I missed this interaction,
resulting in some uncommon crashes that were especially common with
heavy-geometry things like modified GTA LCS with PS2 assets, for
example.
The problem was reported with Vulkan, but our OpenGL backend had the
same issue too.
2026-05-13 15:55:34 +02:00
Henrik Rydgård
ed274c8a7e
Just some lint fixing
2026-05-13 11:37:26 +02:00
Henrik Rydgård
a78e0e76de
Disable the GPU profiler for OpenGL. Also restrict to in-game.
2026-05-06 00:27:20 +02:00