summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/DriverDetails.cpp
AgeCommit message (Collapse)Author
2026-03-21DriverDetails: Mark BUG_BROKEN_DISCARD_WITH_EARLY_Z as fixed in macOS 14.0+OatmealDome
2026-03-21DriverDetails: Use macOS version as the driver versionOatmealDome
2026-01-25Remove unused importsMartino Fontana
Yellow squiggly lines begone! Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes. If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed. The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports. Not everything is removed, but the cleanup should be substantial enough. Because this done on Linux, code that isn't used on it is mostly untouched. (Hopefully no open PR is depending on these imports...)
2025-07-29VKPipeline: Don't include depth clamp control struct when not supportedCrossVR
This should not be needed
2025-07-29DriverDetails: Disable depth_clamp_control on AMD official driversCrossVR
2024-01-28VideoCommon: Post to analytics when bug is overriddenTellowKrinkle
2024-01-28VideoCommon: Add ability for backends to override bugsTellowKrinkle
2024-01-28VideoBackends:Multiple: Split up BUG_BROKEN_SUBGROUP_OPSTellowKrinkle
We now use subgroup ops for more than just a minor performance optimization
2023-08-15Remove out-dated hack of AMD driver issue WRT dual-source blending output index.takayhan-AMD
2022-10-08VideoBackends:Multiple: More GPUs with broken subgroup opsTellowKrinkle
2022-09-30VideoBackends:Vulkan: Workaround slow vkCmdCopyImageToBuffer on QCom driverRobin Kertels
2022-07-21VideoBackends:Metal: Use DriverDetails for bugsTellowKrinkle
2022-07-10Merge pull request #10749 from tellowkrinkle/IntelUbershadersJMC47
VideoCommon: Fix ubershaders on MoltenVK Intel
2022-06-16VideoCommon: Fix SSBO layout and remove associated "bug"TellowKrinkle
2022-06-14VideoCommon: Fix Intel GPUs on Metal/Vulkan locking up in ubershadersTellowKrinkle
2022-04-20DriverDetails: Add broken discard with early-Z bug on Apple Silicon GPUsOatmealDome
2022-01-28DriverDetails: Disable primitive restart on AdrenoJosJuice
Turning off primitive restart increases performance a lot on Adreno for some reason. We're talking numbers like 50%-100% faster in situations which are bottlenecked by rendering.
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-22Trust MacOS not to crash during shader pre-compilationunknown
2021-11-22VideoCommon: Gate Multi-Threaded Shader Pre-Compilation behind a bug entryDevJPM
2021-09-20DriverDetails: Add broken dual source blending bug to MoltenVK on Intel GPUsOatmealDome
2021-09-16VulkanContext: Disable subgroup reduction on macOS with AMD GPUsOatmealDome
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.
2021-05-31VideoCommon: Fix bounding box on AMD/OpenGL/WindowsPokechu22
Co-authored-by: Techjar <tecknojar@gmail.com>
2021-04-11DriverDetails: Fix broken vector bitwise AND on Mali driverssspacelynx
2021-01-02Rehabilitate Haiku support.waddlesplash
2020-12-15Add NetBSD supportDavid Carlier
2020-10-08Re-enable GPU Texture Decoding under MoltenVKTechjar
2020-09-07VideoBackends: Disable GPU Texture Decoding under MoltenVKTechjar
It's broken and causes spectacular artifacts and crashes.
2019-10-02Vulkan: Add a DriverDetails bug for "slow cached readback memory"Stenzek
Using the cached memory type appears to be slower on Mali drivers, with ~10-15% CPU spent in the __pi___inval_cache_range kernel function.
2019-07-21Vulkan: Disable reversed viewport depth on macOS/MoltenVKStenzek
Apparently this is broken despite being allowed by the spec.
2019-07-18Vulkan: Use reversed depth range in viewportStenzek
Also adds a DriverDetails bug to disable on drivers where this is still broken.
2019-06-08VideoCommon/DriverDetails: Make look-up table immutableLioncash
Previously, this array potentially wouldn't be placed within the read-only segment, since it wasn't marked const. We can make the lookup table const, along with any other nearby variables.
2019-05-01Disable Vulkan overrides for RADV driverz0z0z
2018-10-20GLInterface: Drop Haiku supportStenzek
2018-09-01Revert "ShaderGen: Drop broken fragment shader index workaround for Vulkan"Pierre Bourdon
2018-08-28ShaderGen: Drop broken fragment shader index workaround for VulkanStenzek
AMD appears to have since fixed this in their driver, and it makes shadergen ever so slightly less messy.
2018-07-19FramebufferManager: Use D24S8 on Adreno when using VulkanStenzek
D32F clears are broken on Adreno, which resulted in smeared geometry across the screen.
2018-07-17DriverDetails: Disable shared context shader compilation on nouveauStenzek
Our usage of glFinish() can cause driver crashes and/or lockups. Please note that this disables the background shader compilation (i.e. all shaders will be compiled on boot). There is no way around this.
2018-05-24OGL/Streambuffer: Use coherent mapping by default.degasus
Coherent mappings have a lower overhead and less GL codes. So enables coherent mapping by default for all drivers. Both Qualcomm and ARM performs very bad with explicit flushing, so this change helps them as well. AFAIK there was one GPU generation which was slower on coherent mapping: nvidia tesla So Geforce 200 and 300 series should be tested with this PR before merging. As this was last tested many years ago, this issue might have been fixed as well. Those GPUs are close to 10 years old and not supported any more by nvidia.
2018-03-14DriverDetails: Disable primitive restart on Vulkan with Mali driverStenzek
2018-03-14Vulkan: Provide a more accurate method of detecting drivers/vendorsStenzek
This is needed to differentiate between the open-source Mesa drivers and their binary counterparts for Intel and AMD.
2018-03-10OGL: Re-implement async shader compilingStenzek
2018-02-25OGL: Use glBufferData on Mali.Markus Wick
tl;dr: This PR speedups dolphin on mobiles with the Mali GPU and ES 3.2 drivers by a factor of 10 by using the method with the biggest overhead. Please keep care not to buy this shit! The ARM driver team seems to care very well about their customers. But bad luck, users and open source developers are *not* their customers. So even device-independent feature requests are just ignored for *years*: https://community.arm.com/graphics/f/discussions/4645/gl_ext_buffer_storage-support The bad point, they neither implement any of the other common ways to stream dynamic content in unextented GL: - They just ignore the GL_MAP_UNSYNCHRONIZED_BIT flag - They don't support on-device buffer updates and just stall with glBufferSubData It seems like no benchmark is using any dynamic content - and like no customer cares about anything but benchmarks, or users... We have a flag to disable the glBufferSubData way, this PR adds the flag to also disable the unsychronized mapping way. The second one is available since their ES 3.2 update, but slow as hell. So how to continue? The last remaining technical way to stream dynamic content at all is to alloc a new buffer per draw call with glBufferData. This is very gross, but still a factor 10 speedup compared to stalling the GPU. Small tests shows that you can expect another 3-5 times speedup with EXT_buffer_data, so Mali would be on pair with Adreno here. So if you have bought such a device unfortunately, please try to make noise on your vendor forums/support and ask for this extension. If you are going to buy a new mobile, I'd recormend to avoid *any* mobile with a Mali GPU in it.
2017-09-07Vulkan: Extend the NVIDIA MSAA bug to render-pass based clearsStenzek
Calling vkCmdClearAttachments with a partial rect, or specifying a render area in a render pass with the load op set to clear can cause the GPU to lock up, or raise a bounds violation. This only occurs on MSAA framebuffers, and it seems when there are multiple clears in a single command buffer. Worked around by back to the slow path (drawing quads) when MSAA is enabled.
2017-09-03Merge pull request #5649 from JonnyH/WIP/disable-vk-clear-renderpassStenzek
Add DriverDetails::BUG to Disable "LoadOp" clear renderpass in vulkan
2017-09-02Mark an ImgTec driver bug as fixed in 1.8@4693462Jonathan Hamilton
Now we correctly parse ImgTec's GL_VERSION string we can actually use the BugInfo's version stuff correctly here
2017-08-28Add Bug to Disable "LoadOp" clear renderpass in vulkanJonathan Hamilton
This optimisation doesn't work on PowerVR's Vulkan implementation. We (incorrectly) disallow Framebuffer objects to be used with a different load or store op than that which they were created with, despite the spec allowing such. This fixes the windwaker intro "smearing"