summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VideoConfig.cpp
AgeCommit message (Collapse)Author
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>
2023-02-09Lint fixesScott Mansell
2023-02-09Lint fixesScott Mansell
2023-02-09Move xfb tracking and IR scaling out of RenderBaseScott Mansell
2023-01-31Also use events for config changedScott Mansell
2023-01-31Split out everying remaining from SwapScott Mansell
2023-01-31Move ConfigChanged out of RenderBaseScott Mansell
There is this nice VideoConfig file that's perfect for it
2023-01-30Merge pull request #11205 from TellowKrinkle/AutoPresentPierre Bourdon
VideoBackends:Metal: Default to presentDrawable when vsync is on
2023-01-26Merge pull request #11208 from TellowKrinkle/CPUCullPierre Bourdon
Cull vertices on the CPU
2023-01-25VideoCommon: Cull vertices on the CPUTellowKrinkle
2023-01-14Add VISkipSam Belliveau
2022-12-23New FrameTime/VBlank Analyzer + GraphSam Belliveau
2022-12-09Core: Add option to force linear texture filtering.Admiral H. Curtiss
2022-11-23Improve FPS/VPS Counting and Revamp AppearanceSam Belliveau
2022-11-07VideoCommon: Add an option to disable mipmapsTellowKrinkle
Needed by M1 fifoci to work around a minor non-determinism bug
2022-10-24VideoBackends:Metal: Default to presentDrawable when vsync is onTellowKrinkle
2022-10-24Merge pull request #11028 from tellowkrinkle/MetalFixesJMC47
Various Metal renderer improvements
2022-10-22VideoCommon: Add configuration to prefer VS for line/point expansionTellowKrinkle
2022-10-08VideoBackends:Metal: Add config option to use presentDrawableTellowKrinkle
2022-10-08VideoBackends:Metal: Bring back unified memory configTellowKrinkle
Turns out it was helpful. (Most improvement in ubershaders.) This time with much better auto mode.
2022-09-26Software: Remove dedicated texture/frame dumping infrastructurePokechu22
Texture dumping can already be done using VideoCommon's system (and in fact the same setting already enabled *both* of these). Dumping objects/TEV stages/texture fetches doesn't currently have an equivalent, but could be added to the FIFO player instead.
2022-07-25CPUDetect: improve win/arm64 supportShawn Hoffman
read brand_string on macos/arm64 remove unused flags report family/model info instead of vendor name
2022-06-27Core / DolphinQt / VideoCommon: add setting for enabling graphic modsiwubcode
2022-05-16Verify graphics config validity after populating the backend infoPokechu22
... and refresh the config before populating the backend info, as the config (specifically iAdapter) needs to be set to correctly populate the backend info. Before, the list of valid antialiasing modes was always determined from the first adapter on the list on startup, regardless of the adapter the user selected.
2022-04-16Implement ImGui window for scissor rectanglesPokechu22
This is mainly for debugging, and is only exposed by manually editing the configuration.
2022-04-15Merge pull request #10255 from Pokechu22/sw-zfreezeScott Mansell
Software: Fix zfreeze with CullMode::All
2022-04-09Merge pull request #10571 from AdmiralCurtiss/ffmpeg-custom-pix-fmtMai M
VideoCommon/FrameDump: Allow user to specify a pixel format.
2022-04-08Software: Remove config to disable ZComploc and ZFreezePokechu22
These aren't particularly useful, and make the code a bit more confusing. If for some reason someone wants to test what happens when these functions are disabled, it's easier to just edit the code that implements them. They aren't exposed in the UI, so one would need to restart Dolphin to do it anyways.
2022-04-08Fix typo (GFX_HACK_VERTEX_ROUDING -> GFX_HACK_VERTEX_ROUNDING)Pokechu22
2022-04-09VideoCommon/FrameDump: Allow user to specify a pixel format.Admiral H. Curtiss
2022-01-06Merge pull request #10346 from iwubcode/fixed_shader_precompile_parallelizationJMC47
VideoCommon: Fix shader precompilization detection
2022-01-06Config: Port emulation speed setting to new config system.Admiral H. Curtiss
2022-01-04VideoCommon: assume the majority of os/drivers support parallel compiling of ↵iwubcode
shaders, we can create bugs if there are issues. Android is assumed buggy
2022-01-04Merge pull request #9414 from DevJPM/masterJMC47
Fix CPU Core Count detection and Enable Parallel Shader Compilation
2021-12-10Treewide: Adjust order of includesPokechu22
2021-11-22VideoCommon: Gate Multi-Threaded Shader Pre-Compilation behind a bug entryDevJPM
2021-11-20Fix CPU Core Count detection and Enable Parallel Shader CompilationDevJPM
This does this following things: - Default to the runtime automatic number of threads for pre-compiling shaders - Adds a distinct automatic thread count computation for pre-compilation (which has less other things going on and should scale better beyond 4 cores) - Removes the unused logical_core_count field from the CPU detection - Changes the semantics of num_cores from maximaum addressable number of cores to actually available CPU cores (which is also how it was actually used) - Updates the computation of the HTT flag now that AMD no longer lies about it for its Zen processors - Background shader compilation is *not* enabled by default
2021-11-17VideoCommon: Add option to use old behavior (Fast Texture Sampling)Pokechu22
Co-authored-by: JosJuice <josjuice@gmail.com>