summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/DriverDetails.cpp
AgeCommit message (Collapse)Author
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"
2017-08-28Add VideoLogic (ImgTec) PCI IDJonathan Hamilton
2017-08-03Vulkan: Add a driver bug for NV when MSAA is enabledStenzek
This causes the card to lock up when vkCmdClearAttachments is called, when multisampling is enabled. Seems to be restricted to Maxwell and newer?
2017-07-30OGL: Uber shader supportStenzek
2017-05-03Add a workaround for a PowerVR glsl compiler bugJonathan Hamilton
It seems it doesn't like negating arguments for bitops, so suff like "var <<= (-othervar);" fails to compile
2017-03-28Merge pull request #4951 from waddlesplash/haiku-2Matthew Parlane
Initial support for Haiku.
2017-03-27Initial support for Haiku.Augustin Cavalier
2017-02-26Disable pinned memory for AMD mesa driversz0z0z
2017-02-18DriverDetails: Set BUG_PRIMITIVE_RESTART for AMD driversStenzek
2016-10-31DriverDetails: Make the bug identifiers humanly readable.Jules Blok
2016-10-30DriverDetails: Add OS X to the dual-source blending bug.Jules Blok
2016-10-27DriverDetails: Disable dual-source blending on AMD OGL drivers.Jules Blok
2016-10-01Vulkan: Work around indexed fragment output bug on AMD driversStenzek
2016-10-01VideoCommon: Extend DriverDetails to support both OpenGL and VulkanStenzek
2016-08-15DriverDetails: Add bug for broken gl_ClipDistance on i965.Jules Blok
2016-07-17Add an OpenBSD driver identifier.Anthony J. Bentley
2016-06-24Reformat all the things. Have fun with merge conflicts.Pierre Bourdon
2016-05-19OGL: Work around slowdown of glMapBufferRange with SSBO on NVIDIA driversStenzek
Using glMapBufferRange to read back the contents of the SSBO is extremely slow on NVIDIA drivers. This is more noticeable at higher internal resolutions. Using glGetBufferSubData instead does not seem to exhibit this slowdown.
2016-05-11OGL: Use coherent mapping on Qualcomm devices.degasus
2016-05-11DriverDetails: Drop BUG_BROKENALPHATEST.degasus
This flag is not in use at all.
2016-05-11OGL: Drop QC ES3.1 workaround.degasus
This was never tested well: HdkR> The tester was most likely trying to load a stale shader cache or something
2016-03-04Mark Mesa Intel Sandy Bridge geometry shaders not broken in Mesa 11.2Ryan Houdek
2016-02-12Geometry shader bug isn't fixed in 11.1.2 for Intel Sandy BridgeRyan Houdek
2016-02-11Both Intel and Radeon Mesa geometry shader bugs are fixed in 11.1.2Ryan Houdek
2016-01-20Blacklist Sandy Bridge on mesa from using geometry shaders.Ryan Houdek
2016-01-09Disable geometry shaders on mesa AMD/ATI drivers.Ryan Houdek
Causes misrenderings in games that uses them.
2015-12-31Add a comment to DriverDetails about Qualcomm failing our alpha tests.Ryan Houdek
2015-09-04Remove all of our workarounds for Qualcomm devices we don't support anymore.Ryan Houdek
2015-08-28[Android] Workaround Mali driver issue on the Samsung Galaxy S6.Ryan Houdek
Samsung updated the video drivers on the SGS6 which introduced a bug when disabling vsync. Both the driver versions are r5p0, but the md5sums of the blob differ. To work around the issue, make sure to never disable vsync by calling eglSwapInterval. We can't actually determine the driver version on Android yet. So until the driver version lands that displays the driver version string in the GL_VERSION string we will need to keep this workaround enabled at all times, which is a bit annoying. Current mali drivers return the video driver version in one of the EGL strings you can query. The issue with that is that Android eats all of those strings, so we can't query it.
2015-08-22Disable OpenGL ES 3.1 on all Qualcomm Adreno devices.Ryan Houdek
Their new driver that supports GLES3.1 + AEP has issues with it. At the very least they don't implement all of the geometry shader features fully which causes shader linker issues when we attempt to use them. I don't have a device so I can't fully test, so until I do I'm going to blanket disable the whole thing.
2015-08-06DriverDetails: Disable GL_ARB_copy_image on mesa.degasus
2015-07-20Work around slow glBufferSubData on PowerVR.Ryan Houdek
As with all tiled renderers, glBufferSubData is terribly slow. Use glBufferData as typical.
2015-06-28Use emplace() instead of insert() where applicable for maps.Lioncash
2015-06-13Fix FreeBSD buildJeffrey Pfau
2015-05-25Update license headers to GPLv2+Tillmann Karras
2015-04-23Fix OpenGLES 3.0 on Qualcomm's crappy driver, it can't bitshift sometimes.Dwayne Slater
[fixed lint issues and grammar ~comex]
2014-12-28DriverDetails: Remove Intel Structs bug since it doesn't affect us anymore.Jules Blok
2014-12-28DriverDetails: Update Intel bug description.Jules Blok
2014-12-19OGL: Disable geometry shaders on Intel's Windows drivers due to broken ↵Jules Blok
interface blocks.
2014-12-19Minor changes to DriverDetailsRyan Houdek
Fixes a typo where the official IMGTec drivers were said to be the OSS driver support. Removes Mali GPU family detection just like I removed the Adreno family detection. We don't support Mali Utgard anyway. If we need family detection we can properly add it, right now it isn't needed.
2014-12-19Fixes Adreno 400 slow performance.Ryan Houdek
Adreno 300 and 400 have the same video driver performance issues because they are very similar architectures which use basically the same thing with everything. There isn't any need to detect the family of the driver with Qualcomm anyway. If we ever need family specific bugs then we can implement real support for that. Performance issue on Adreno 400 series was due to us only detecting Adreno 300 series, and with Adreno 400 it wouldn't use the bugs, which would cause it to use glBufferSubData, causing the huge performance hit.
2014-12-03Works around broken Intel Windows video drivers.Ryan Houdek
Just use regular boolean negation in our pixel shader's depth test everywhere except on Qualcomm. This works around a bug in the Intel Windows driver where comparing a boolean value against true or false fails but boolean negation works fine. Quite silly. Should fix issues #7830 and #7899.
2014-10-29Adds a DriverDetails bug to track Qualcomm attributeless rendering.Ryan Houdek
This particular issue was fixed in the v66 (07-08-2014) development drivers from Qualcomm. To make sure we cover all drivers that may or may not have the issue fixed, make sure to mandate v95 minimum to work around the issue. The next commit is the actual work around for post processing for this.