Commit Graph
679 Commits
Author SHA1 Message Date
Henrik Rydgård 9e7625c74b Workaround for a crash found in #12358 on older devices 2019-09-28 01:11:06 +02:00
Henrik Rydgård 9d65ff8873 Silence a few warnings. 2019-09-24 23:10:18 +02:00
Henrik Rydgård 0462c01228 Workaround ARM Mali depth hardware bug. Fixes #11937
When triangles coincide with the Z=1 plane in specific ways, triggered
by Burnout Legends' sky for example, the depth buffer gets corrupted.

This is worked around here by slightly rescaling Z. This type of
workaround is recommended by ARM driver engineers.

Ugly but what can you do when the hardware is bugged. I've done quick
tests on a number of games with no issues.
2019-09-08 23:44:26 +02:00
Henrik Rydgård 2439c3efb1 Merge pull request #12306 from hrydgard/mali-driver-version-detection
Improve Mali driver version detection
2019-09-04 22:45:34 +02:00
Henrik Rydgård 025a9f4dae Improve Mali driver version detection 2019-09-04 21:46:07 +02:00
Henrik Rydgård ab3c9fc21f Vulkan: Move scissor/viewport rotation into the VulkanRenderManager. Fixes #12303. 2019-09-03 23:26:44 +02:00
Henrik Rydgård 3af7229abc Bump up the descriptor pool size for the UI. Should fix #12299. 2019-09-02 18:39:10 +02:00
Henrik Rydgård 7bb6febc32 Add a few more checks. 2019-08-22 09:23:02 +02:00
Henrik Rydgård 05b2e11c5c Vulkan: Prevent some bad merging of renderpasses. Thanks Unknown for writing it up. 2019-08-21 21:30:36 +02:00
Henrik Rydgård 773cb5fa70 Stop renderpass merging at readbacks. 2019-08-21 21:13:56 +02:00
Henrik Rydgård 597b034b5c Minor optimization 2019-08-21 20:32:23 +02:00
Henrik Rydgård 93412aff3b Vulkan: Automatically merge render passes to the same target when possible.
Should speed things up a bit on mobile in some games that do stupid
things like GoW. Currently only enabled in GoW, but plan to enable this
globally as it should be quite cheap when nothing is detected.
2019-08-21 20:32:23 +02:00
Henrik Rydgård e3f1e563f2 Improve renderpass profiling descriptions a little 2019-08-21 18:31:01 +02:00
Henrik Rydgård 66609b395f Vulkan: Profile individual render passes/steps. 2019-08-21 16:47:46 +02:00
Henrik Rydgård 06a71fdf49 Get rid of numQueries 2019-08-21 10:30:57 +02:00
Henrik Rydgård 5fcac1a9e2 Vulkan: Disable some bad validation. Things are right and work fine. 2019-08-21 10:23:36 +02:00
Henrik Rydgård 19a443819b Bugfixes to VK gpu profiling. Properly get the valid bits. 2019-08-21 09:02:40 +02:00
Henrik Rydgård 653afeb7ab Vulkan: Implement basic integrated GPU profiling.
Currently simply measures the total GPU time of the frame. Will later be
extended to get the execution time of individual render passes.
2019-08-21 00:03:00 +02:00
Unknown W. Brackets 3e51fc5a89 GPU: Avoid some unused var/func warnings. 2019-08-17 12:01:22 -07:00
Henrik Rydgård d0a3410875 Typo fix 2019-08-13 00:22:47 +02:00
Henrik Rydgård 49e64f10d4 Minor code cleanup 2019-08-12 23:36:35 +02:00
Henrik Rydgård ddb5208130 Vulkan: Reduce the amount of redundant stencil parameter sets 2019-08-12 23:19:07 +02:00
Henrik Rydgård cf06b4a947 Vulkan: Image views: The driver is probably smart enough to recognize a no-swizzle, but let's use the proper method. 2019-08-12 23:09:47 +02:00
Henrik Rydgård 213e2ccefc Vulkan: Add missing barrier when rendering to a target that's already in COLOR_OPTIMAL layout.
Fixes #12215
2019-08-08 15:38:09 +02:00
Henrik Rydgård 3b0624ff9f Some changes and asserts. 2019-08-08 14:07:53 +02:00
Henrik Rydgård ebe64c60e9 Vulkan: Improve the Metal Gear Acid 2 performance hack. 2019-08-08 11:49:35 +02:00
Henrik Rydgård 75e2366a6d Vulkan: Actually fix #12202, an array was out of scope where it was used, causing garbage flags. 2019-08-01 17:46:46 +02:00
Henrik Rydgård 3d6bd6f0df Vulkan: Using VK_DEPENDENCY_BY_REGION on the backbuffer subpass causes tearing, let's not do it. Fixes #12202. 2019-08-01 14:56:58 +02:00
Unknown W. Brackets 3de796779c Debugger: Fix subtexture readback crash.
When the texture image is scaled, we don't properly know its size, so we
were allocating too small of a buffer.  Since this is only used for
debugging, let's just get the actual texture size.
2019-06-23 15:30:30 -07:00
Henrik Rydgård ee294251c9 Fix the 270 degree rotation case 2019-06-21 11:58:41 +02:00
Henrik Rydgård e943724905 Vulkan: Apply the desired pretransform when drawing to the backbuffer.
This should save a lot of memory bandwidth on mobile devices that can't
rotate images natively in the display engine. Fixes #12099.
2019-06-21 09:38:51 +02:00
Henrik Rydgård eb3faf5370 Fix some further static analysis warnings 2019-06-18 01:08:25 +02:00
Henrik Rydgård a0dc85a9d7 Fix a bunch of inconsequential uninitialized variables 2019-06-18 00:18:40 +02:00
driver1998 eb99044a4f Fix d3d11_loader on x86 2019-05-12 11:17:54 +08:00
driver1998 21d2008676 Use D3DCompiler_47.dll for D3D9 context. 2019-05-12 11:17:10 +08:00
Henrik Rydgård ff65b813d9 Assorted warning fixes 2019-05-10 23:26:34 +02:00
Henrik Rydgård ed1aa74827 Address feedback from #11936 (support memory types without CACHED as a backup) 2019-03-26 10:39:51 +01:00
Henrik Rydgård 60889767bf Vulkan: Request cached memory for readbacks. First try coherent too but also support non-coherent cached memory.
Should speed up readbacks slightly.

This is just a common sense optimization, I haven't measured it. Writes to
coherent non-cached memory is OK due to hardware write combining, but for
reads you really want cached to avoid a memory transaction for every
single read (instead reading full cache lines).
2019-03-25 21:40:25 +01:00
Henrik Rydgård 06b04f65a0 Vulkan: Narrow down buffer usage flags a little bit. 2019-03-14 12:41:39 +01:00
Henrik Rydgård 7362cccee4 Vulkan subpass dependencies: Handle VK_IMAGE_LAYOUT_UNDEFINED without debug-asserting. 2019-03-12 22:34:41 +01:00
Henrik Rydgård 624587c594 Fix a VK validation failure when opening the homebrew menu 2019-03-11 16:42:41 +01:00
Henrik Rydgård c1427f5981 VulkanImage: Fix issue where we'd try to free dedicated allocations from the allocator_ instead of Vulkan directly.
Snuck in some minor cleanups.
2019-02-24 22:23:26 +01:00
Henrik Rydgård 58c240045e Make window resize work with Vulkan. Seems more stable now. 2019-02-23 15:53:05 +01:00
Henrik Rydgård 7e939802b5 Merge pull request #11787 from unknownbrackets/range-cull
GLES: Disable range culling on VideoCore/Vivante
2019-02-10 20:46:37 +01:00
Unknown W. Brackets 957c3d5b89 GLES: Disable range culling on VideoCore/Vivante.
Was only disabled before on Vivante GL3/GLES3 devices.
2019-02-10 11:36:23 -08:00
Henrik Rydgård c509650bec OpenGL: Disable the mapped buffer strategy for Adreno (Qualcomm).
It's a race during shutdown between the EmuThread writing commands, and
the render thread which just lost the buffer.
2019-02-10 20:13:39 +01:00
Henrik Rydgard f38a6650b1 VK code cleanup: Just a little helper for handling dedicated allocation for images. 2019-02-07 14:56:29 +01:00
Henrik Rydgård 54c6c148fb Detect PCI device ID where available (not in GL?) 2019-02-06 22:43:31 +01:00
Henrik Rydgard e30daa8027 Remove unused API, assorted cleanup.
No longer enable the geometry shader feature, no plans to use it.
2019-02-05 21:31:43 +01:00
Henrik Rydgard 32f37723f9 Properly use VK_KHR_dedicated_allocation to make some drivers extra happy 2019-02-05 18:07:18 +01:00