summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
AgeCommit message (Collapse)Author
2026-04-20Replace `find(x) != npos` with `contains(x)` - CoreDr. Dystopia
2026-03-21VulkanContext: Drop support for BUG_BROKEN_DISCARD_WITH_EARLY_Z workaroundOatmealDome
2025-07-29DriverDetails: Disable depth_clamp_control on AMD official driversCrossVR
2025-07-21Vulkan: Add support for unrestricted depth range.CrossVR
2025-03-09VideoCommon: Move backend_info out of VideoConfig struct.Jordan Woyak
2025-01-01Simplify `std::find_if` with `Common::Contains`mitaclaw
2024-12-15Modernize `std::any_of` with rangesmitaclaw
In WiimoteReal.cpp, JitRegCache.cpp, lambda predicates were replaced by pointers to member functions because ranges algorithms are able invoke those. In ConvertDialog.cpp, the `std::mem_fn` helper was removed because ranges algorithms are able to handle pointers to member functions as predicates.
2024-09-05VideoBackends:Vulkan: Use Vulkan 1.2 driverID to detect MoltenVKTellowKrinkle
Previously we'd assume all Apple GPUs were MoltenVK, including those running on Asahi Linux with open source Honeykrisp drivers.
2024-09-05VideoBackends:Vulkan: Consolidate feature checking into one structTellowKrinkle
2024-01-28VideoCommon: Post to analytics when bug is overriddenTellowKrinkle
2024-01-28VideoBackends:Multiple: Split up BUG_BROKEN_SUBGROUP_OPSTellowKrinkle
We now use subgroup ops for more than just a minor performance optimization
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-03-24Vulkan: Enable subgroupShuffle.degasus
It is used as workaround for the missing subgroupBroadcastDynamicId flag on SPIR-V < 1.5.
2023-02-16VideoBackends:Vulkan: Fix printing validation errorsRobin Kertels
2022-12-27VideoBackends:Vulkan: Replace debug_report with debug_utilsRobin Kertels
The former is deprecated and pretty much all modern drivers support VK_EXT_debug_utils. Android drivers dont support it. On those drivers, we use the implementation provided by the validation layers.
2022-10-24Merge pull request #11028 from tellowkrinkle/MetalFixesJMC47
Various Metal renderer improvements
2022-10-23Merge pull request #10890 from tellowkrinkle/VertexLineExpandJMC47
VideoCommon: Add vertex shader point/line expansion
2022-10-23VideoBackends:Vulkan: Clean up unused memory allocation codeRobin Kertels
2022-10-22VideoBackends:Vulkan: Add support for vertex shader point and line expansionTellowKrinkle
2022-10-23VideoBackends:Vulkan: Set up VMARobin Kertels
Co-authored-by: iwubcode <iwubcode@users.noreply.github.com>
2022-10-08VideoBackends:Multiple: More GPUs with broken subgroup opsTellowKrinkle
2022-10-01VideoBackends:Vulkan: Fix validation error around surface_capabilities2Robin Kertels
2022-09-19VideoBackends:Vulkan: Dynamic vertex loader supportTellowKrinkle
2022-09-19VideoCommon: Add dynamic vertex loader to ubershadersTellowKrinkle
2022-07-21VideoBackends:Metal: MSAA supportTellowKrinkle
2022-07-13VideoCommon: Better driver bug handlingTellowKrinkle
Adds a pass to process driver deficiencies between UID caching and use, allowing a full view of the whole pipeline, since some bugs/workarounds involve interactions between blend modes and the pixel shader
2022-06-14VideoCommon: Fix Intel GPUs on Metal/Vulkan locking up in ubershadersTellowKrinkle
2022-04-24Merge pull request #10251 from Pokechu22/negative-scissorJMC47
Rework scissor handling
2022-04-20DriverDetails: Add broken discard with early-Z bug on Apple Silicon GPUsOatmealDome
2022-04-19DriverDetails: Introduce new VENDOR_APPLE for Apple GPUsOatmealDome
2022-04-16VideoCommon: Remove bSupportsOversizedViewportsPokechu22
I think this is a relic of D3D9. D3D11 and D3D12 seem to work fine without it. Plus, ViewportCorrectionMatrix just didn't work correctly (at least with the viewports being generated by the new scissor code).
2022-01-31VulkanContext: Set bSupportsSettingObjectNames based on extension ↵OatmealDome
initialization result
2021-12-28VulkanContext: Ensure present queue family is valid before incrementing ↵OatmealDome
queueCreateInfoCount
2021-12-25VideoConfig: Add bool for sampler LOD bias supportOatmealDome
2021-12-22Merge pull request #10215 from OatmealDome/shader-logic-opsJMC47
VideoCommon: Support shader logic ops on Metal (Apple GPUs) and OpenGL ES
2021-12-10Treewide: Adjust order of includesPokechu22
2021-11-24VulkanContext: Set Apple GPUs as supporting framebuffer fetchOatmealDome
2021-11-17VideoCommon: Skip textureQueryLevels if it doesn't existPokechu22
2021-11-17VideoCommon: Use coarse derivatives for Manual Texture Sampling if possiblePokechu22
2021-10-24Convert LOG_TYPE and LOG_LEVELS to enum classPokechu22
2021-09-20VulkanContext: Don't assume anv for Intel GPUs on macOSOatmealDome
2021-09-16VulkanContext: Disable subgroup reduction on macOS with AMD GPUsOatmealDome
2021-08-30VideoBackends / VideoCommon: allow the ability to set debug names for ↵iwubcode
shaders / textures. These names are visible in applications like RenderDoc
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2020-12-02General: Convert PanicAlerts over to fmt equivalentLioncash
Converts lingering panic alert calls over to the fmt-capable ones.
2020-11-09Vulkan: Migrate logging over to fmtLioncash
Migrates the vulkan backend over to the fmt-capable logger.
2020-10-08DriverDetails: Remove bug for broken GPU Texture DecodingTechjar
2020-10-01Vulkan: Use VK_LAYER_KHRONOS_validation for validationStenzek
VK_LAYER_LUNARG_standard_validation is deprecated.
2020-09-07VideoBackends: Disable GPU Texture Decoding under MoltenVKTechjar
It's broken and causes spectacular artifacts and crashes.