Commit graph

263 commits

Author SHA1 Message Date
Henrik Rydgård
df2f0df155 Make the Vulkan GPU log profiler a runtime developer setting.
I keep forgetting to disable the define on commit, this is a better
solution.
2021-12-19 22:50:14 +01:00
Henrik Rydgård
b85a7e9a46 Name uniform buffers, add more asserts. Used this to track down the bug fixed in the previous commit. 2021-12-10 21:01:01 +01:00
Henrik Rydgård
0cbb7ab027 Change the PushBuffer API a bit to not take explicit memory types. 2021-11-22 18:54:09 +01:00
Henrik Rydgård
f1cd1d535b Add a hidden setting to turn off the shader cache, for shader compile performance work 2021-11-21 21:25:56 +01:00
Unknown W. Brackets
f7a029c61f Vulkan: Fix crash on shutdown after device lost.
This happens in SDL every time, apparently.
2021-11-21 05:35:07 -08:00
Unknown W. Brackets
8a5f07b860 Vulkan: Don't cache vulkan_ with draw context.
Since we can get the VulkanContext cheaply from the draw context, it's
easier to make sure things stay up to date.
2021-11-14 15:25:28 -08:00
Unknown W. Brackets
60bd25582c Vulkan: Remove wide line handling.
No longer used, since we convert lines to triangles now.
2021-10-31 14:47:21 -07:00
Unknown W. Brackets
1d76e55f84 Vulkan: Disable large points feature.
No longer used.
2021-10-31 13:07:03 -07:00
Unknown W. Brackets
5557950a4b GPU: Allow range cull on Mali/etc.
Previously had been disabled when cullDistance/clipDistance were
unsupported, but it's still helpful without those.  See #15049.
2021-10-23 08:43:14 -07:00
Unknown W. Brackets
d804d35dcb GPU: Enable new guardband culling again. 2021-10-21 15:29:51 -07:00
Unknown W. Brackets
c72d045170 Compat: Ignore DisableRangeCulling with clip/cull.
As long as we support these things and the NAN issue isn't there, we
should be able to safely enable regardless.
2021-10-21 13:23:13 -07:00
Henrik Rydgård
593241b50f
Merge pull request #14996 from hrydgard/vulkan-best-practices
Vulkan "best practices" fixes
2021-10-19 17:57:39 +02:00
Unknown W. Brackets
33598f2e75 GPU: Support clip and cull distances separately.
Older GL devices, and it seems Apple devices, may not support cull.
2021-10-12 20:34:44 -07:00
Unknown W. Brackets
7b00c4a572 GPU: Move Z/W equal hack to bugs from supports.
It's really a bug (might even ideally cap the version?), and we already
have other bugs handled the same way.
2021-10-12 20:34:44 -07:00
Unknown W. Brackets
2271b41d07 Vulkan: Use clip distance only if supported. 2021-10-12 20:34:42 -07:00
Henrik Rydgård
b426d12a17 More best-practices adjustments 2021-10-08 21:32:40 +02:00
Henrik Rydgård
bd15ae4f75 Fix bug in homebrew store with files with "." in their names.
Also, move the homebrew store button to the top bar instead of the
bottom of the list.
2021-07-12 11:55:15 +02:00
Henrik Rydgård
3595e092c9 Turn off all 16-bit formats if B5G6R5 format is not available.
Works around #14602 for now.
2021-07-10 23:33:46 +02:00
Henrik Rydgård
4c9b5ada0f Address feedback 2021-07-09 21:09:44 +02:00
Henrik Rydgård
025bcb1673 Introduce Path, start using it all over the place.
Still lots left to convert!

Convert GetSysDirectory to return Path.

More buildfixing

Remove unnecessary Path( constructors
2021-05-13 10:39:16 +02:00
Unknown W. Brackets
de46b0998a GPU: Correctly initialize HW tessellation support.
Oops, shouldn't call a virtual in a constructor.
2021-05-08 09:10:23 -07:00
Unknown W. Brackets
e85a8b0f5b Global: Cleanup class init order warnings. 2021-02-15 11:59:45 -08:00
Henrik Rydgård
16f629df3e Split the DepthRangeHack compat setting into itself and DisableRangeCulling
Most of our uses of DepthRangeHack was just to get DisableRangeCulling anyway -
and we don't want that on when not needed.

Also disables range culling for Splinter Cell Essentials (see #13035)

We really need to understand range culling better. This is a "ship hack" for 1.11.
2020-12-26 19:56:49 +01:00
Henrik Rydgård
559ccd9f33 Minor cleanups 2020-12-14 20:06:06 +01:00
Henrik Rydgård
575ae376a9 Don't try to texture from depth if not supported by backend. Works around #13621 2020-11-10 23:36:33 +01:00
Henrik Rydgård
d9ee06a60d Reorganize the DeviceLost code a little. FramebufferManagerCommon now sees it. 2020-11-07 10:51:54 +01:00
Henrik Rydgård
7b2236778b Remove remnants of an old, no longer applicable readback optimization 2020-11-05 14:38:20 +01:00
Henrik Rydgård
dc0f7ca8ee VK: Copy depth buffer if we can't blit. Some GPUs can't blit to depth.
Fixes some recent issues with Intel GPUs on Vulkan.
2020-10-11 10:57:35 +02:00
Henrik Rydgård
0e3a84b4a8 Move most GPU things to Common.
It works after the move, on Windows and Android at least.

Deletes the D3DX9 shader compiler loader, which was not used.
2020-10-04 23:39:02 +02:00
Henrik Rydgård
4f43cff5ca
Move fileutil, net, image loaders, ui to Common. (#13506)
* Move and rename file_util/fd_util to Common/File/FileUtil and DirListing

Let's also move net while we're at it.

Move the ZIM/PNG loaders over to Common.

Move the UI framework into Common

iOS buildfix

* Buildfix

* Buildfixes

* Apple buildfix

* This typo again..

* UWP buildfix

* Fix build of PPSSPPQt, such as it is (it's not in good condition...)

* Guess what? Another buildfix.
2020-10-04 20:48:47 +02:00
Henrik Rydgård
821817e6d4 Move the profiler to Common 2020-10-04 11:42:16 +02:00
Henrik Rydgård
3093b9c7bf Share GPUS stats formatting code between the backends (easier to add new stats) 2020-09-20 22:09:25 +02:00
Henrik Rydgård
d0f7b1e30f Make the implementations of CopyFramebufferDepth more similar.
Also avoid matching framebuffers with bad z for copies.
2020-09-17 20:52:45 +02:00
Henrik Rydgård
181ddd842a Unify some GPU_SUPPORT* bits 2020-09-17 20:52:32 +02:00
Henrik Rydgård
7630fae4b9 Fix bug in new framebuffer code, reducing unnecessary texture invalidations.
Improves the performance issue in #13431
2020-09-16 01:03:56 +02:00
Henrik Rydgård
f6db1c2b01 Show how many times we evaluate framebuffers per frame in debug statistics. 2020-09-12 15:37:03 +02:00
Henrik Rydgård
6e9d5ffbd7 VulkanRenderManager: Improve logging. LogSteps output is much better.
More logging improvements
2020-08-27 21:50:05 +02:00
Henrik Rydgård
d465ce5123 Quick Vulkan crashfix 2020-08-22 10:50:39 +02:00
Henrik Rydgård
5d64fc5ff1 Switch to PPSSPP's assert functions (don't use the system's) 2020-08-16 10:01:10 +02:00
Henrik Rydgård
ccc0331279 Move timeutil to Common. (Experiment to see how much work it is to move these). 2020-08-15 20:53:08 +02:00
Henrik Rydgård
c41f875df4 Remove base/logging.h in a whole lot more places. 2020-08-15 19:09:00 +02:00
Henrik Rydgård
b43698a13d Remove most instances of base/logging.h from Common, Core, GPU, more 2020-08-15 19:08:44 +02:00
Unknown W. Brackets
b8342fb8ec SaveState: Rename ChunkFile files to Serialize.
Makes more sense and less weird than ChunkFileDoMap, etc.
2020-08-10 08:04:05 +00:00
Unknown W. Brackets
1dc5ee424b SaveState: Split out Do types to reduce headers. 2020-08-10 08:03:44 +00:00
Henrik Rydgård
eadd3c5785 Remove the LARGE_VIEWPORTS separate path. The fewer paths the better, all need to work anyway.
Required fixing a bug in ShaderUniforms.cpp (used by D3D11 and Vulkan,
the two backends that previously exposed LARGE_VIEWPORTS).
2020-08-05 19:03:08 +02:00
Henrik Rydgård
882cc6295e Rename FramebufferVulkan.cpp/h to FramebufferManagerVulkan.cpp/h 2020-08-03 23:22:11 +02:00
Henrik Rydgård
d57edfbdac Rename FramebufferCommon.cpp/h to FramebufferManagerCommon.cpp/h for consistency 2020-08-03 23:17:22 +02:00
Henrik Rydgård
bb6219e402
Merge pull request #12921 from unknownbrackets/postshader
Use less FBOs for chained post-processing shaders
2020-07-13 18:52:53 +02:00
Henrik Rydgård
f9cef5b6b2 Partly clean up SDL resize code, should help #11974 2020-06-24 01:06:01 +02:00
Unknown W. Brackets
9ef521d945 GPU: Avoid immediate postshader FBO recreate.
Before, we created things at the wrong size, then recreated at the right.
Now we just start at the correct size once.
2020-06-12 12:35:35 -07:00