61 Commits

Author SHA1 Message Date
Stenzek
9df59713da
GPUDevice: Put debug messages/scopes behind conditions
And completely compile them out in Release builds.

Gets Devel close to Release in terms of performance.
2024-12-01 23:21:33 +10:00
Stenzek
0faa9cf650
Build: Add Devel configuration
Gets you debug assertions and logging, while still producing an
optimized executable.
2024-12-01 23:21:33 +10:00
Stenzek
b97788a35a
PostProcessing/FX: Force native paths for includes 2024-11-27 13:18:11 +10:00
Stenzek
24dfd30839
Image: Refactor to a more generic class 2024-11-24 23:29:29 +10:00
Stenzek
3ff1b04576
GPUDevice: Support generating mipmaps 2024-11-24 23:29:28 +10:00
Stenzek
5c03e1d940
Misc: Fix alignment errors on ARM32 2024-11-23 18:52:45 +10:00
Stenzek
4963dc1759
Host: Make resource routines fill error object 2024-10-22 20:41:33 +10:00
Stenzek
eb46142ee7
GPUDevice: Extract swap chain to separate class 2024-10-18 20:48:29 +10:00
Stenzek
3d5503612b
Image: Span and Error-ify 2024-10-11 22:52:11 +10:00
Stenzek
3dca598063
Log: Switch to enum class
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2024-09-21 22:26:06 +10:00
Stenzek
559aff0ad5
D3D12Device: Use DXC and 12.0 feature level 2024-09-09 00:23:30 +10:00
Stenzek
4c31218d2b
GPUDevice: Add API version field
Also tie shader caches to API version and device LUID. That way we don't
have tons of cache files, and they're regenerated if the GPU/driver
changes.
2024-09-08 23:33:05 +10:00
Stenzek
432fd80f3d
PostProcessing/FX: Use SPIR-V instead of GLSL for Vulkan 2024-09-08 19:43:18 +10:00
Stenzek
86bff869bc
dep/reshadefx: Update to 7bdfb03 2024-09-08 19:19:58 +10:00
Stenzek
ac5a2a153a
GPUDevice: Remove BeginPresent() skip parameter
It wasn't used - System does its own present skipping.
2024-09-07 12:53:55 +10:00
Stenzek
4b0c1fdbf2
GPUDevice: Add recovery from lost device 2024-09-07 12:48:44 +10:00
Stenzek
129df8410e
PostProcessing/FX: Log pipeline creation error description 2024-09-03 23:28:27 +10:00
Stenzek
7f4e5d55db
Misc: Update copyright headers 2024-09-01 22:08:31 +10:00
Stenzek
707453b596
FileSystem: Swap vector for DynamicHeapArray
No point zeroing it out.
2024-08-25 22:13:18 +10:00
Stenzek
410cea0f12
PostProcessing/FX: Use ToChars instead of to_string()
More locale mess.
2024-07-29 20:38:55 +10:00
Stenzek
3282366ea7
PostProcessing/FX: Preserve option declaration order 2024-07-26 15:34:49 +10:00
Stenzek
6f50e12ea2
PostProcessing/FX: Remove debug shader dump 2024-07-07 12:46:09 +10:00
Stenzek
d178853392
PostProcessing/FX: Fix incorrect draw rect 2024-07-04 00:32:22 +10:00
Stenzek
9ef7e8c5d0
GPU/HW: Use GSVector instead of Rectangle 2024-07-03 15:44:12 +10:00
Stenzek
34d5cdec96
GPU/HW: Expose depth buffer to internal postprocessing 2024-06-29 14:25:36 +10:00
Stenzek
54097fc14e
Postprocessing/FX: Expose 'viewportoffset' uniform 2024-06-16 00:00:01 +10:00
Stenzek
964b94960e
Postprocessing/FX: Ensure RT isn't bound as sampler
Prevents possible Vulkan spec violation in some shaders.
2024-06-15 23:55:33 +10:00
Stenzek
ef69c31e9f
GPUDevice: Support transpiling shaders at compile time
And use it for GLSL postprocessing shaders.
2024-06-14 21:21:34 +10:00
Stenzek
d51b880052
Postprocessing/FX: Fix incorrect pixel size uniforms 2024-06-14 00:38:08 +10:00
Stenzek
facce0d8cb
PostProcessing: Expose aspect-correct pixel sizes
That consider the display aspect ratio/padding when sampling pixels in
the input (window size).
2024-06-11 23:32:19 +10:00
Stenzek
354b250642
PostProcessing: Add native width/height inputs
Available in GLSL as GetNativeSize(), GetUpscaleMultiplier(), and in
reshade as native_width/native_height/upscale_multiplier.

GetPaddedOriginalSize() is now deprecated, as it does not make since
since the postfx shader runs with a window-sized off-screen target as an
input, not the internal render texture.
2024-06-11 14:04:45 +10:00
Stenzek
4e922a34a7
Log: Simplify macros 2024-05-24 02:08:14 +10:00
Stenzek
b6d019db66
Misc: Replace log printf calls with fmt 2024-05-24 00:29:49 +10:00
Stenzek
ca3cfbaa99
Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
Stenzek
5d20f4514d
PostProcessing: Use ShaderGen GLSL version string 2024-04-28 15:25:24 +10:00
Stenzek
72ab669e70
GPUDevice: Add support for feedback loops 2024-04-01 13:55:19 +10:00
Stenzek
101ebe3ac3
PostProcessing/FX: Fix GLSL compile error with discard 2024-03-24 22:32:44 +10:00
Stenzek
620d08f72d
Build: Move Image from common to util 2024-03-06 16:09:21 +10:00
Stenzek
73cee9f705
Settings: Add UserResources to EmuFolders
Allowing some resources, such as fonts/sounds to be overridden by the
user.
2024-01-10 22:46:57 +10:00
Stenzek
b04578afee
ImGuiFullscreen: Fix menu background obscuring text 2023-12-15 13:45:19 +10:00
Stenzek
57aa138808
PostProcessing: Add compile progress indicator 2023-12-14 20:23:48 +10:00
Stenzek
c20805f2be
VulkanDevice: Work around some mobile driver issues 2023-12-13 23:01:10 +10:00
Stenzek
ff37afef55
PostProcessing/FX: Support multiple render targets 2023-12-09 22:08:14 +10:00
Stenzek
a907e1f550
GPUDevice: Pool textures 2023-12-09 22:08:13 +10:00
Stenzek
3b2c70cda5
GPUDevice: Get rid of framebuffer abstraction 2023-12-09 22:08:13 +10:00
Stenzek
b65d2748b4
GPUDevice: Implement MirrorRepeat address mode 2023-12-08 20:12:13 +10:00
Stenzek
10473f1cfb
PostProcessing: Add categories/combos/tooltips 2023-12-07 15:19:10 +10:00
Stenzek
ba5d1a109e
dep/reshadefx: Support generating GLSL ES 2023-12-07 14:13:56 +10:00
Stenzek
7bbf04ab99
PostProcessing/FX: Support reading shaders from resources 2023-11-25 00:50:12 +10:00
Stenzek
1a79a2f196
dep/reshadefx: Add manual include callbacks 2023-11-25 00:50:11 +10:00