iwubcode
1f083a60c9
VideoCommon: update ShaderAsset to remove requirement of the code name being in the shader source, this just makes it more difficult to iteratively test changes, assume shader devs know what they are doing
2025-11-21 14:29:24 -06:00
iwubcode
506e378289
VideoCommon: remove template parameter from lock guards in AsyncShaderCompiler, let type deduction do its thing and improve readability
2025-11-21 01:18:35 -06:00
iwubcode
75c66e35c6
VideoCommon: add method to async shader compiler to clear pending/completed work (used on shutdown), this will in turn clear up any resources that the worker items may have held onto
2025-11-21 01:17:45 -06:00
iwubcode
6e13a7d7e9
VideoCommon: fix MaterialAsset so that boolean parameters are written to memory as integers, matching the format internally expected by shaders
2025-11-20 23:51:34 -06:00
iwubcode
a4599a1add
VideoCommon: avoid assuming global state exists for 'EndUtilityDrawing', use last stored viewport/scissor rect instead
2025-11-20 00:35:01 -06:00
Jordan Woyak
2719a5673e
Merge pull request #14121 from jordan-woyak/warn-silence
...
Common and VideoCommon: Silence a few warnings.
2025-11-19 22:09:19 -06:00
JosJuice
91c3a58889
Merge pull request #13922 from TryTwo/imgui_add_default_font
...
OSD/Imgui: Add a better default font
2025-11-16 13:58:18 +01:00
Jordan Woyak
e630b0692e
VideoCommon/FramebufferManager: Silence warning:
...
warning: virtual method '~FramebufferManager' is inside a 'final' class and can never be overridden [-Wunnecessary-virtual-specifier]
2025-11-15 20:32:10 -06:00
Jordan Woyak
be95035cc4
Core: Eliminate FreeLookConfig by putting the "active config" within FreeLookCamera.
2025-11-12 18:01:53 -06:00
Jordan Woyak
c08fda96ca
Merge pull request #14100 from AndrewGDX/master
...
Improved stereoscopic 3D settings
2025-11-12 16:43:21 -06:00
AndrewGDX
113c86f1b4
Improved stereoscopic 3D settings
2025-11-12 12:29:03 +03:00
Jordan Woyak
bf61c890ca
VideoCommon/PerformanceMetrics: Display current offset between the latest frame presentation time and the intended presentation time in the "Show Frame Times" box.
2025-11-11 20:01:52 -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
f289b06e0d
Common: Make HookableEvent use non-static data.
...
Co-authored-by: Dentomologist <dentomologist@gmail.com>
2025-11-02 17:30:43 -06:00
iwubcode
ef87af2985
VideoCommon: fix wrong path to glslang include
2025-11-02 14:29:14 -06:00
JMC47
a4a4416ff2
Merge pull request #14042 from iwubcode/bp_functions_global
...
VideoCommon: move global variables out of BPFunctions
2025-11-02 13:17:38 -05:00
JMC47
1d9c743ef7
Merge pull request #13975 from iwubcode/shader_includes
...
VideoBackends / VideoCommon: add support for specifying include files in shader code
2025-11-02 13:17:28 -05:00
JosJuice
da1d45dbd4
Merge pull request #14057 from TellowKrinkle/VkRenderWrongLayout
...
VideoCommon: Fix render to texture in wrong layout
2025-11-01 10:06:41 +01:00
JosJuice
91fd53a98c
Merge pull request #14035 from Dentomologist/pauseandlock_refactoring
...
PauseAndLock Refactoring
2025-11-01 10:06:08 +01:00
iwubcode
6728007cb4
VideoCommon: rename ScissorResult 'm_result' to 'rectangles' to better reflect what the member is
2025-10-31 13:28:14 -05:00
iwubcode
ee7c476e24
VideoCommon: move global variables out of BPFunctions
2025-10-31 13:27:50 -05:00
TellowKrinkle
21ac489d57
VideoCommon: Fix render to texture in wrong layout
2025-10-30 20:50:17 -05:00
Jordan Woyak
c12d3a6d22
Merge pull request #14045 from JoshuaVandaele/warn-fix
...
Fix various warnings
2025-10-30 20:47:42 -05:00
Joshua Vandaële
33152740d0
CustomPipeline.cpp: Fix unused-function warning
...
This whole file is apparently going away soon.
2025-10-30 12:35:19 +01:00
Joshua Vandaële
280d0e7f8d
MaterialAsset: Fix shadowed field
2025-10-29 11:12:31 +01:00
Jordan Woyak
09a125fec4
VideoCommon: Clean up and eliminate the mutex in AsyncRequests using WaitableSPSCQueue.
2025-10-28 17:22:04 -05:00
Jordan Woyak
700abd68e3
VideoCommon/AsyncRequests: Remove now unnecessary SetEnable function. Requests are now always enabled. Call SetPassthrough on initialization to not be racy.
2025-10-26 23:07:14 -05:00
iwubcode
96fe6a1575
VideoBackends / VideoCommon: add support for specifying include files in shader code
2025-10-26 22:47:23 -05:00
Dentomologist
933071dd57
FifoManager: Remove redundant PauseAndLock parameters
...
PauseAndLock was only called with do_lock=true, and the function only
used unpauseOnUnlock when do_lock was false.
2025-10-26 18:01:51 -07:00
Dentomologist
f497eb519e
FifoManager: Extract RestoreState from PauseAndLock
...
Replace calls of FifoManager::PauseAndLock(do_lock=false) with new
function RestoreState for clarity.
2025-10-26 18:01:51 -07:00
TellowKrinkle
d404805b7f
CMake: Fix bundled glslang
2025-10-24 22:58:22 -05:00
TryTwo
c135af22dd
Imgui: Add a new default font (VeraMono - 49kb) that scales better than the old default.
...
Allow loading a custom font by naming it OSD_Font.ttf and placing the file in the User/Load folder, to load that font instead. Useful for future testing.
2025-10-16 15:36:50 -07:00
JMC47
e8d9c124e5
Merge pull request #13953 from TryTwo/add_osd_tab
...
Qt Settings: Transfer OSD settings to a new OSD pane.
2025-10-15 16:35:26 -04:00
Dentomologist
5b4df5ae98
VideoBackend: Rename GetName to GetConfigName
...
Make the function name more explicit and a better match for
GetDisplayName.
Change NAME to CONFIG_NAME while I'm at it.
2025-10-13 17:38:20 -07:00
TryTwo
3b11280c20
Movie Window: Move customization options from Menu Bar to OSD pane, but add options to toggle the window and to open the OSD pane.
...
Add new setting to show/hide the Movie Window.
2025-10-10 16:59:16 -07:00
fizzlepicklepop
3cb8f234a7
fixed the lint error
2025-10-07 23:57:53 -04:00
fizzlepicklepop
7ed61c50a1
Add toggles for Speedrun timer + Achievement badges visibility
...
Added some new visibility toggles so players can choose what to show (or hide) during their RetroAchievements runs:
Toggle for the Speedrun Leaderboards timer
Toggle for Achievement Challenge badges
2025-10-07 22:45:04 -04:00
Joshua Vandaële
cdfb389509
Externals: Update glslang to 16.0.0 and allow using system glslang
2025-09-27 08:56:10 +02:00
JMC47
f96837a321
Merge pull request #13940 from iwubcode/glslang_update
...
Externals / VideoCommon: update glslang to latest, turn into submodule
2025-09-26 17:13:54 -04:00
TryTwo
f8a8ddeddf
OSD / Imgui: Add font size spinbox to Interface Pane.
...
Adjust some imgui windows to work better with different font sizes.
2025-09-25 16:34:04 -07:00
iwubcode
491e3390be
Externals / VideoCommon: update glslang to latest, turn into submodule
2025-09-23 23:45:38 -05:00
JMC47
d9404e0274
Merge pull request #13941 from jordan-woyak/opcode-concepts
...
VideoCommon/OpcodeDecoding: Replace enable_if with concepts.
2025-09-16 14:55:16 -04:00
JMC47
a8a6cfebc7
Merge pull request #13895 from iwubcode/update_shader_asset
...
VideoCommon: update shader asset to support additional features in custom pipelines
2025-09-16 14:49:33 -04:00
JMC47
8b0498f5f2
Merge pull request #13889 from iwubcode/texture_and_sampler_asset
...
VideoCommon: add TextureAndSamplerAsset for use in custom materials
2025-09-16 14:48:24 -04:00
Jordan Woyak
071dedd492
VideoCommon/OpcodeDecoding: Replace enable_if with concepts.
2025-09-13 19:05:33 -05:00
iwubcode
440999d778
VideoCommon: update material asset to support render state properties, support multi-pass, and textures are now split out (as well as supporting a way to calculate sampler origin)
2025-08-23 15:17:49 -05:00
iwubcode
14459bcc1b
VideoBackends / VideoCommon: rename member variables in RenderState to be consistent
2025-08-23 13:50:22 -05:00
Tillmann Karras
10d0bc66b3
VideoCommon: fix -Wmismatched-tags warning
2025-08-23 03:05:04 +01:00
JMC47
b9affd5bc8
Merge pull request #13869 from TryTwo/ImGui_Updates
...
Externals: Update ImGui to 1.92.2 and ImPlot. Update code to use new features.
2025-08-22 21:24:27 -04:00
iwubcode
f0098eee13
VideoCommon: further remove 'CustomPipeline' details, so we can fully remove it in the very near future
2025-08-22 19:53:17 -05:00
iwubcode
6ec8e0ed8a
VideoCommon: update shader asset to support both vertex and pixel shaders; rename to 'RasterSurfaceShader'
2025-08-22 19:48:22 -05:00
iwubcode
4489ea0ec2
VideoCommon: add TextureAndSamplerAsset, this asset contains both the raw texture data and data about how the texture should be sampled
2025-08-20 19:41:22 -05:00
Sintendo
aa085a76bc
VideoCommon: Remove unused EnumMaps from PixelShaderGen
...
They appear to have been unused since #13432 .
2025-08-20 21:22:53 +02:00
Tilka
be6a6bce9f
Merge pull request #13873 from Dentomologist/dolphinanalytics_use_pascal_case_for_gamequirk_enum
...
DolphinAnalytics: Use Pascal case for GameQuirk enum
2025-08-19 21:57:34 +01:00
TryTwo
affc22f17d
Update code to work with new version of ImGui.
...
UpdateImGuiTexture now handles creating font textures and modifying them.
2025-08-18 05:38:14 -07:00
Tillmann Karras
37758fa290
OpcodeDecoder: provide default GetVertexSize() implementation
2025-08-18 01:41:14 +01:00
Dentomologist
3cc00c0676
DolphinAnalytics: Use Pascal case for GameQuirk enum
2025-08-14 13:54:23 -07:00
Admiral H. Curtiss
3fb80bec9b
Merge pull request #13780 from jordan-woyak/fix-text-filter-nearest
...
VideoCommon: Fix "Force Nearest" texture filter setting.
2025-08-01 21:59:04 +02:00
Admiral H. Curtiss
03b709019d
Merge pull request #13749 from iwubcode/vertex_shadergen_expand_fix
...
VideoCommon: fix regression in vertexshadergen for line/point expansion
2025-08-01 21:44:41 +02:00
Admiral H. Curtiss
06e05e0f90
Merge pull request #13794 from Sintendo/doouble-lookup
...
Avoid map/set double lookups
2025-08-01 21:43:12 +02:00
Tilka
812c6c2ea4
Merge pull request #13830 from CrossVR/broken-depth-clamp-control
...
DriverDetails: Disable depth_clamp_control on official AMD drivers
2025-07-31 01:06:00 +01:00
Tillmann Karras
cc71401e29
VideoCommon: drop unused XF enumerators
...
We handle all six registers (scale/offset * xyz) via the viewport name.
Keeping around unused enumerators only for the z component is confusing.
2025-07-30 19:56:30 +01:00
CrossVR
0d87f835e2
VKPipeline: Don't include depth clamp control struct when not supported
...
This should not be needed
2025-07-29 08:42:22 +09:00
CrossVR
59e9267e3d
DriverDetails: Disable depth_clamp_control on AMD official drivers
2025-07-29 08:42:22 +09:00
CrossVR
0ace5f5d3d
Vulkan: Add support for unrestricted depth range.
2025-07-21 14:07:26 +09:00
Dentomologist
72ea7a2128
VideoBackendBase: Remove redundant unique_ptr reset
...
Remove redundant reset of g_presenter in ShutdownShared, which is
already reset earlier in the function.
2025-07-09 14:12:06 -07:00
Sintendo
f2392e4048
Avoid map/set double lookups
...
Fix some common anti-patterns with these data structures.
- You can dereference the iterator returned by `find` to access the
underlying value directly, without an extra `operator[]`/`at`.
- Rather than checking for an element before insertion/deletion, you can
just do the operation and if needed check the return value to
determine if the insertion/deletion succeeded.
2025-07-08 06:53:42 +02:00
Jordan Woyak
60156f4f94
VideoCommon: Fix "Force Nearest" texture filter setting.
2025-06-28 15:52:27 -05:00
Tillmann Karras
59d2611a94
VideoCommon: remove unused struct fields
2025-06-24 19:38:45 +01:00
Dr. Dystopia
ca8f9b672b
Source: Remove redundant lambda parameter lists
2025-06-14 10:19:31 +02:00
iwubcode
6ab83bdd05
VideoCommon: fix regression where scenes with expanded lines or points would cause issues if doing per-vertex transformations in the vertex shader
2025-06-09 19:08:21 -05:00
Tilka
19fbbf0dba
Merge pull request #13727 from JoshuaVandaele/fmt-11.2.0-localtime-deprec
...
fmt: Replace deprecated `fmt::localtime` usage with `Common::LocalTime`
2025-06-08 04:04:37 +01:00
Jordan Woyak
65f3ba70f5
Merge pull request #13522 from tygyh/Enforce-overriding-destructor-style-Core&UnitTests
...
Core & UnitTests: Make overriding explicit and remove redundant virtual specifiers on overriding destructors
2025-06-07 17:55:14 -05:00
iwubcode
c3d3b81533
VideoCommon: remove 'GetByteSizeInMemory()' from custom asset, it is not needed anymore
2025-06-06 23:03:02 -05:00
iwubcode
774a84a953
VideoCommon: avoid race conditions with asset load/unload by moving the lock to the entire function, favor atomics for the memory/time getters
2025-06-06 23:03:02 -05:00
iwubcode
b3f50c969e
VideoCommon: rename m_bytes_loaded in asset library to bytes_loaded
2025-06-06 23:03:02 -05:00
iwubcode
3b83907b88
VideoCommon: update CustomAsset's load time to be before the load occurs (this prevents issues where the load time might be incorrectly inflated by long load operations)
...
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2025-06-06 23:03:02 -05:00
iwubcode
d940d62cae
VideoCommon: watch texture pack folder for texture reloads (from dynamic input textures)
2025-06-06 23:03:02 -05:00
iwubcode
7afa9e6c6f
VideoCommon: use CustomResourceManager in the texture cache and hook up to our hires textures
2025-06-06 23:03:02 -05:00
iwubcode
12d178a8df
VideoCommon: initialize and shutdown the CustomResourceManager when the video thread initializes and shuts down
2025-06-06 23:03:02 -05:00
iwubcode
70abcb2030
VideoCommon: add resource manager and new asset loader; the resource manager uses a least recently used cache to determine which assets get priority for loading. Additionally, if the system is low on memory, assets will be purged with the less requested assets being the first to go. The loader is multithreaded now and loads assets as quickly as possible as long as memory is available
...
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2025-06-06 23:03:02 -05:00
iwubcode
d8ea31ca46
VideoCommon: rename GameTextureAsset into TextureAsset and make it only contain CustomTextureData. Move validation and load logic to individual functions
2025-06-06 23:03:02 -05:00
iwubcode
2ae43324cb
VideoCommon: move AssetMap to a types header file, so it can be pulled in without the DirectFilesystemAssetLibrary dependencies, the header will be expanded later
2025-06-06 23:03:02 -05:00
iwubcode
bafe78203d
VideoCommon: remove 'GetLastAssetWriteTime' and switch to a steady_clock for asset times
2025-06-06 23:03:02 -05:00
iwubcode
15f125ebee
VideoCommon: change asset loading to return the number of bytes loaded instead of a pass/fail
2025-06-06 23:03:02 -05:00
iwubcode
316740daed
VideoCommon: add 'Unload' functionality to CustomAsset
2025-06-06 23:03:02 -05:00
iwubcode
9ec69b5925
VideoCommon: add a handle to custom asset, this is an id that is only relevant for a particular game session but is slightly faster as a numeric value for lookups than the traditional asset id
2025-06-06 19:20:25 -05:00
iwubcode
d7de49ccf6
Core / VideoCommon: Remove original custom asset loader
2025-06-06 19:20:25 -05:00
iwubcode
ae26b38fc0
VideoCommon: fix pixel shader gen error about structure not being fully initialized
2025-06-05 01:37:45 -05:00
Joshua Vandaële
4b65cc9a4c
fmt: Replace deprecated fmt::localtime usage with Common::LocalTime
2025-06-04 13:32:12 +02:00
iwubcode
b23dddea4e
VideoCommon: move vertex shader gen logic to a 'process_vertex()' function, to eventually allow for custom shaders to override vertex logic
2025-05-24 01:27:58 -05:00
Jordan Woyak
94888d250e
Merge pull request #13527 from tygyh/Replace-msg-with-structured-binding-VideoCommon/NetPlayChatUI
...
VideoCommon/NetPlayChatUI: Replace msg with structured binding
2025-05-17 17:09:13 -05:00
JMC47
cf3702cbc8
Merge pull request #13046 from SuperSamus/vi-overclock
...
Add VBI Frequency Override
2025-05-12 13:36:55 -04:00
Martino Fontana
c720211542
VideoCommon: Limit maximum denominator for MPEG4
...
It happened to be under the limit normally, but now that the VBI rate can be changed, that's no longer the case.
2025-05-12 18:54:42 +02:00
JMC47
b2e5d6df25
Merge pull request #13350 from iwubcode/custom_shader_overhaul_vertex_pos
...
VideoCommon: move transform matrices to accessible functions in VertexShaderGen
2025-05-10 01:20:28 -04:00