766 Commits
Author SHA1 Message Date
Henrik Rydgård e723594133 Vulkan: Fix shutdown crash accidentally caused by #12324 2019-09-17 14:47:38 +02:00
Henrik Rydgård 6d2be0d716 Merge pull request #12324 from unknownbrackets/vulkan-cache
Vulkan: Clear caches when deleting shaders
2019-09-15 20:00:06 +02:00
Unknown W. Brackets 59062ca7bc Vulkan: Clear caches when deleting shaders.
As noticed by iota97 in #12317, we're not clearing these.  If a pointer
gets reused by the Vulkan driver, we have to be careful not to reuse a
pipeline.
2019-09-14 11:23:12 -07:00
Henrik Rydgård 02a96e29bb Fix a comment 2019-09-09 00:52:23 +02:00
Henrik Rydgård 70ec327b40 Vulkan: Slim down and rename the Mali hack. 2019-09-09 00:43:31 +02:00
Henrik Rydgård f76adfd760 Vulkan ARM mali Z hack: Modify the matrix instead of the shader. 2019-09-09 00:09:57 +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 025a9f4dae Improve Mali driver version detection 2019-09-04 21:46:07 +02:00
Henrik Rydgård 7ad10ff0ef Vulkan profiling vis bugfix: Restore font scale after drawing. 2019-08-21 23:11:01 +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 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
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 caabc9023f Vulkan: Set all four coordinates to NaN instead of just W. Fixes range culling on ARM. Fixes #11999. 2019-08-08 23:14:20 +02:00
Henrik Rydgård 96a15cf525 Fix the indirect postprocessing path. Fixes #12133 (but see the issue for a secondary bug). 2019-08-04 18:01:36 +02:00
Henrik Rydgård 3916f8d7b6 Add a little reminder to self with a link to an interesting article. 2019-07-23 17:45:52 +02:00
Henrik Rydgård b5ad92b9ef Avoid rotating the image when DrawActiveTexture is used for other things than drawing to the backbuffer. 2019-06-21 14:00:02 +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
vnctdj 0ec0c6eb92 Remove the related #include
Following https://github.com/hrydgard/ppsspp/pull/12030
Oops, I forgot to check if it was still needed...
2019-05-12 16:38:37 +02:00
vnctdj 80807675f1 Delete 2 unused i18n category pointer declarations 2019-05-11 23:47:37 +02:00
Henrik Rydgård b0048525a1 Merge pull request #11884 from hrydgard/vulkan-buffer-usage
Vulkan: Tighten up push buffer usage flags a little bit.
2019-03-18 11:17:49 +01:00
Unknown W. Brackets c5b844cc98 GPU: Respect stencil write mask on clear.
Actually identified this for the softgpu in #11319, but applying it for
RGBA is a problem in most renderers.  Forgot to at least apply it to
stencil.

Fixes #11901.
2019-03-16 19:42:18 -07: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 3445f39f3f Survive pipeline creation failure on Vulkan. Makes Burnout playable on Pocophone... Sigh.
Minor cleanups.
2019-03-11 16:40:10 +01:00
Henrik Rydgård 8e7da3fef4 Disable vertex range culling when the depthrange hack is enabled. Temporary workaround for #11576. 2019-02-26 16:07:11 +01:00
Henrik Rydgård 593c3139bd Ignore DisableAccurateDepth on Adreno as well. Fixes #11557 2019-02-26 15:21:21 +01:00
Henrik Rydgård bf2bbd891c Back out wrong change. Leaving better error handling for later. 2019-02-25 15:15:04 +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 Rydgard 5aed2a2cee Gate fewer effects behind "Disable slow framebuffer effects". 2019-02-08 15:02:31 +01:00
Henrik Rydgard 9736bc431a The block transfer setting should not affect clearing memory behind a render target, especially since that's already gated behind a compat flag. 2019-02-08 14:46:16 +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 8e1a5ef3d6 Minor refactor of physical device property/feature detection, to allow for more extension use. 2019-02-05 18:07:17 +01:00
Henrik Rydgard fdd0d7acb4 More Vulkan validation fixes
NVIDIA no longer uses nVidia capitalization.
2019-02-05 18:07:11 +01:00
Henrik Rydgard 128c0adc39 Vulkan: Fix typo, bump shader cache version. 2019-02-04 14:22:19 +01:00
Henrik Rydgard 992cea1082 Load a function from VK_EXT_external_memory_host 2019-01-31 13:53:27 +01:00
Henrik Rydgard c38c5469c4 Fixes for issues found by Vulkan validation layers, including a common non-harmful perf warning (doesn't fix all cases, but does fix the most common one). 2019-01-25 20:18:56 +01:00
Unknown W. Brackets 9a3de5cb1c GPU: Move dual source blending bug check to Draw.
This also allows the ini setting to avoid it on Intel.
2018-12-23 14:11:57 -08:00
Unknown W. Brackets f8ce9b08ba Vulkan: Limit stencil workaround to Adreno 5xx. 2018-12-23 14:11:57 -08:00
Unknown W. Brackets 1f594f3fb5 GPU: Track draw in shader manager.
With device restore etc. everywhere.
2018-12-23 12:55:37 -08:00
Henrik Rydgård 0037da55a1 Avoid breaking any alpha-stencil emulation in Adreno bug workaround 2018-12-23 11:57:06 +01:00
Henrik Rydgård 79ef185d6e Vulkan/adreno: Apply workaround for Harvest Moon issue #10421 2018-12-22 18:29:56 +01:00
Henrik Rydgård 2d01db805e Remove no-op DrawBuffer::End() 2018-12-18 10:10:53 +01:00
Henrik Rydgård d82ec339ee Remove the DisableShaderCache setting, rename the other 2018-12-15 10:44:05 +01:00
Henrik Rydgård 25b2ba013b VK: Add INI options to disable some vendor checks, and to disable the shader cache. 2018-12-11 00:36:15 +01:00
Henrik Rydgård d9cfa3a8fa Bump shader caches 2018-12-02 21:49:20 +01:00
Unknown W. Brackets 9a7ee41191 Vulkan: Avoid OpKill workaround with no stencil.
It seems like depth gets messed up either way on discard, but behaves
sorta better without the write to depth.
2018-12-01 14:10:47 -08:00
Unknown W. Brackets 5932cbabc3 GPU: Avoid stencil emulation if possible.
This reduces use of replaceAlpha, and reduces use of more complicated
blend states.  This simplifies fragment shaders a little.
2018-12-01 14:05:29 -08:00
Unknown W. Brackets b1e68c653c GPU: Avoid a missing virtual destructor warning. 2018-12-01 13:59:47 -08:00
Unknown W. Brackets d9510f8824 D3D11: Allow shader blend to self.
It was forcing from black before.  See #9616.
2018-11-24 10:19:28 -08:00
Unknown W. Brackets 1c19bce514 GPU: Correct specular exponent zero. 2018-11-22 08:53:25 -08:00