summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VideoConfig.cpp
AgeCommit message (Collapse)Author
2026-07-05Move the code for the show internal resolution settingJosJuice
fb4ff3e put all the code for the show internal resolution setting right next to the code for the show FPS setting, presumably because an earlier version of that commit had them next to each other in the GUI. It makes more conceptual sense to put the code next to the code for the show statistics settings, matching what the GUI looks like now.
2026-05-25Merge pull request #14607 from elyashue/internal-resolution-displayDentomologist
VideoCommon: Added option for showcasing internal resolution
2026-04-19VideoCommon: Added an option to showcase internal resolution, EFB width x ↵Elyas Hue
height as screen overlay. Option to turn it on is a checkbox in screen on the OSD settings, in debug. This supports enhancements.
2026-04-18Add screen crop featureAdam Scott
2025-11-12Core: Eliminate FreeLookConfig by putting the "active config" within ↵Jordan Woyak
FreeLookCamera.
2025-11-12Merge pull request #14100 from AndrewGDX/masterJordan Woyak
Improved stereoscopic 3D settings
2025-11-12Improved stereoscopic 3D settingsAndrewGDX
2025-11-11Merge pull request #14071 from iwubcode/avoid_config_framebuffer_managerJMC47
VideoCommon: pass the EFB buffer scale into the FramebufferManager
2025-11-06Common: Remove the string parameters from the HookableEvent interface.Jordan Woyak
2025-11-05VideoCommon: pass the EFB buffer scale into the FramebufferManager instead ↵iwubcode
of pulling it from config, in the future this will allow us to have multiple framebuffers
2025-11-02Common: Make HookableEvent use non-static data.Jordan Woyak
Co-authored-by: Dentomologist <dentomologist@gmail.com>
2025-11-02Merge pull request #14042 from iwubcode/bp_functions_globalJMC47
VideoCommon: move global variables out of BPFunctions
2025-10-31VideoCommon: move global variables out of BPFunctionsiwubcode
2025-10-26FifoManager: Remove redundant PauseAndLock parametersDentomologist
PauseAndLock was only called with do_lock=true, and the function only used unpauseOnUnlock when do_lock was false.
2025-10-26FifoManager: Extract RestoreState from PauseAndLockDentomologist
Replace calls of FifoManager::PauseAndLock(do_lock=false) with new function RestoreState for clarity.
2025-06-14Source: Remove redundant lambda parameter listsDr. Dystopia
2025-04-25VideoConfig: Remove ConfigChangedCallback on shutdownDentomologist
2025-03-17Config: Expose Default and 1x Anisotropic Filtering setting.Jordan Woyak
2025-03-16VideoConfig: Eliminate frame dumping members.Jordan Woyak
2025-03-11Merge pull request #13413 from jordan-woyak/vconfig-progressiveJMC47
VideoConfig: Eliminate bForceProgressive.
2025-03-11Merge pull request #13412 from jordan-woyak/netplay-vconfigJMC47
VideoConfig: Eliminate NetPlay related members.
2025-03-10VideoConfig: Eliminate bForceProgressive.Jordan Woyak
2025-03-10VideoConfig: Eliminate NetPlay related members.Jordan Woyak
2025-03-10Movie: Eliminate MovieManager::SetGraphicsConfig.Jordan Woyak
2025-03-09VideoCommon: Move backend_info out of VideoConfig struct.Jordan Woyak
2025-01-24VertexLoaderBase: Allow the vertex loader type to be set via configOatmealDome
2025-01-04Merge pull request #13233 from TryTwo/PR_CodecJMC47
AdvancedWidget: Replace FFV1 codec with Ut Video
2025-01-01Simplify `std::find` with `Common::Contains`mitaclaw
In NandPaths.cpp, the `std::initializer_list<char>` of illegal characters has been turned into a `char[]` (similar to the one in GameList.cpp). The reverse iteration in ResourcePack.cpp seemed to provide no benefits, and doing without it it seemed to have no ill effects.
2024-12-30Frame Dumping: Change lossless codec from FFV1 to Ut Video.TryTwo
Ut Video is faster and more compatible with editing programs, but produces larger files.
2024-08-22Graphics: Adapt aspect ratio when SBS/TAB 3D is usedBryan Jacobs
Adds support for choosing to present the full resolution independently to each eye when using side-by-side or top-and-bottom 3D.
2024-06-23Core/VideoCommon: Revert change from #12828Admiral H. Curtiss
This causes Dual Core to lock up during the boot sequence, because it tries to wait for a not-yet-running GPU thread. Fixes https://bugs.dolphin-emu.org/issues/13559
2024-06-21Audit uses of IsRunning and GetStateJosJuice
Some pieces of code are calling IsRunning because there's some particular action that only makes sense when emulation is running, for instance showing the state of the emulated CPU. IsRunning is appropriate to use for this. Then there are pieces of code that are calling IsRunning because there's some particular thing they must avoid doing e.g. when the CPU thread is running or IOS is running. IsRunning isn't quite appropriate for this. Such code should also be checking for the states Starting and Stopping. Keep in mind that: * When the state is Starting, the state can asynchronously change to Running at any time. * When we try to stop the core, the state gets set to Stopping before we take any action to actually stop things. This commit adds a new method Core::IsUninitialized, and changes all callers of IsRunning and GetState that look to me like they should be changed.
2024-06-21Core: Store current state in less placesJosJuice
Core::GetState reads from four different pieces of state: s_is_stopping, s_hardware_initialized, s_is_booting, and CPUManager::IsStepping. I'm keeping that last one as is for now because there's code in Dolphin that sets it directly, but we can unify the other three to make things easier to reason about. This commit also gets rid of s_is_started. This was previously used in Core::IsRunningAndStarted to ensure true wouldn't be returned until the CPU thread was started, but it wasn't used in Core::GetState, so Core::GetState would happily return State::Running after we had initialized the hardware but before we had initialized the CPU thread. As far as I know, there are no callers that have any real need to know whether the boot process is currently initializing the hardware or the CPU thread. Perhaps once upon a time there was a desire to make the apploader debuggable, but a long time has passed without anyone stepping up to implement it, and the way CBoot::RunApploader is implemented makes it rather difficult. So this commit makes all the functions in Core.cpp consider the core to still be starting until the CPU thread is started.
2024-04-08Video: split frame dumping settings into 3 resolution dumping modesFiloppi
also polish aspect ratio related code for clarity
2024-01-31VideoCommon/Statistics: Remove global system accessor from s_after_frame_eventLioncash
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-15Core/Movie: Refactor to class, move to System.Admiral H. Curtiss
A bit of global state remains (the `header` in `BeginRecordingInput()`) due to unclear lifetime requirements.
2023-12-18VideoCommon/Fifo: Pass system instance through FifoManager constructorLioncache
Given how many member functions make use of the system instance, it's likely just better to pass the system instance in on construction. Makes the interface a little less noisy to use.
2023-12-18Video: fix Auto Resolution Scale not updating when the window was resized.Filoppi
Also fixes the widescreen hack not fully updating when the aspect ratio setting changed on the spot.
2023-12-18Video: implement custom aspect ratio support (already exposed to Qt).Filoppi
This also renamed some variables/functions.
2023-10-10VideoCommon: wait for the GPU to be finished doing any work before ↵iwubcode
invalidating pipelines when graphic config changes
2023-09-06VideoCommon: Expose the widescreen heuristic's standard and widescreen ratio ↵Jordan Woyak
values in onion config.
2023-09-05VertexManagerBase: Allow widecreen heuristic constants to be overriden by ↵OatmealDome
onion config
2023-09-05RenderBase: Allow widescreen heuristic's transition threshold to be ↵OatmealDome
overridden by onion config
2023-08-26Merge pull request #12117 from JosJuice/config-callback-cpuAdmiral H. Curtiss
Don't call RunAsCPUThread in config callbacks
2023-08-20VideoCommon: when graphics settings change, trigger a reload of all custom ↵iwubcode
shaders
2023-08-18Video: implement output resampling (upscaling/downscaling) methodsFiloppi
2023-08-17Don't call RunAsCPUThread in config callbacksJosJuice
In theory, our config system supports calling Set from any thread. But because we have config callbacks that call RunAsCPUThread, it's a lot more restricted in practice. Calling Set from any thread other than the host thread or the CPU thread is formally thread unsafe, and calling Set on the host thread while the CPU thread is showing a panic alert causes a deadlock. This is especially a problem because 04072f0 made the "Ignore for this session" button in panic alerts call Set. Because so many of our config callbacks want their code to run on the CPU thread, I thought it would make sense to have a centralized way to move execution to the CPU thread for config callbacks. To solve the deadlock problem, this new way is non-blocking. This means that threads other than the CPU thread might continue executing before the CPU thread is informed of the new config, but I don't think there's any problem with that. Intends to fix https://bugs.dolphin-emu.org/issues/13108.
2023-06-19Video: implement color correction to match the NTSC and PAL color spaces ↵Filoppi
(and gamma) that GC and Wii targeted. To further increase the accuracy of the post process phase, I've added (scRGB) HDR support, which is necessary to fully display the PAL and NTSC-J color spaces, and also to improve the quality of post process texture samplings and do them in linear space instead of gamma space (which is very important when playing at low resolutions). For SDR, the quality is also slightly increased, at least if any post process runs, as the buffer is now R10G10B10A2 (on Vulkan, DX11 and DX12) if supported; previously it was R8G8B8A8 but the alpha bits were wasted. Gamma correction is arguably the most important thing as Dolphin on Windows outputted in "sRGB" (implicitly) as that's what Windows expects by default, though sRGB gamma is very different from the gamma commonly used by video standards dating to the pre HDR era (roughly gamma 2.35). Additionally, the addition of HDR support (which is pretty straight forward and minimal), added support for our own custom AutoHDR shaders, which would allow us to achieve decent looking HDR in Dolphin games without having to use SpecialK or Windows 11 AutoHDR. Both of which don't necessarily play nice with older games with strongly different and simpler lighting. HDR should also be supported in Linux. Development of my own AutoHDR shader is almost complete and will come next. This has been carefully tested and there should be no regression in any of the different features that Dolphin offers, like multisampling, stereo rendering, other post processes, etc etc. Fixes: https://bugs.dolphin-emu.org/issues/8941 Co-authored-by: EndlesslyFlowering <EndlesslyFlowering@protonmail.com> Co-authored-by: Dogway <lin_ares@hotmail.com>
2023-06-11VideoBackends:Vulkan: Allow loading custom drivers on AndroidRobin Kertels
... using libadrenotools
2023-02-09Apply suggestions from code reviewScott Mansell
Co-authored-by: Mai <mathew1800@gmail.com> Co-authored-by: BhaaL <bhaalsen@gmail.com> Co-authored-by: iwubcode <iwubcode@users.noreply.github.com>