Commit graph

257 commits

Author SHA1 Message Date
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
b7edf75437 Move Display.cpp/h to Common. 2020-10-04 11:42:16 +02:00
Henrik Rydgård
9e41fafd0d Move math and some file and data conversion files out from native to Common.
Buildfixing

Move some file util files

Buildfix

Move KeyMap.cpp/h to Core where they belong better.

libretro buildfix attempt

Move ini_file

More buildfixes
2020-10-04 09:12:46 +02:00
Henrik Rydgård
ed88761ecc Merge ext/native/stringutil.cpp/h into Common/StringUtils.cpp/h. 2020-09-29 15:51:51 +02:00
Henrik Rydgård
4e841ca3a6 Naming fix, better names for temp fbos 2020-08-27 21:50:05 +02:00
Henrik Rydgård
d54e0b3231 Fix longstanding depth/stencil view issue in Vulkan. Cleans up validation.
We didn't specify DEPTH|STENCIL as aspects for views we rendered to,
only DEPTH. Who knows how many of the driver bugs we "found" are this.

DEPTH|STENCIL views can't be sampled though, so we create a separate
DEPTH view for that. This keeps Katamari working.
2020-08-27 21:23:41 +02:00
Henrik Rydgård
506a86300d More explicit invalidation of any cached state in Thin3D. Fixes #13307 2020-08-22 00:30:29 +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
c41f875df4 Remove base/logging.h in a whole lot more places. 2020-08-15 19:09:00 +02:00
Henrik Rydgård
fbf6008a03 Set debug names for more framebuffers and textures 2020-08-09 09:36:54 +02:00
Henrik Rydgård
2f5de1987e Allow passing in an object name tag when creating framebuffers 2020-08-09 09:36:45 +02:00
Henrik Rydgård
ce31d3e375 Update Vulkan headers to the latest, just to keep up. 2020-08-01 23:37:15 +02:00
Henrik Rydgård
c5e0b799d9 Remove category from _assert_msg_ functions. We don't filter these by category anyway.
Fixes the inconsistency where we _assert_ didn't take a category but
_assert_msg_ did.
2020-07-19 20:33:25 +02:00
Unknown W. Brackets
9ebb402e4f Vulkan: Buildfix. 2020-07-13 18:19:36 -07:00
Henrik Rydgård
131a1eedfb Vulkan: Make sure textures/samplers are unbound at the end of PresentationCommon::CopyToOutput.
Validation caught an issue where old stuff lingered in sampler 1 and texture 1.

Bug probably introduced in #12921, but could also be others.
2020-07-13 23:32:37 +02:00
iota97
804b673d8e Vulkan: Correct secondary texture binding in Draw. 2020-06-12 12:40:53 -07:00
Unknown W. Brackets
201d2782b4 Draw: Allow 2 textures bound in Vulkan.
Not working properly though...
2020-06-12 12:35:37 -07:00
Unknown W. Brackets
21ac3ca7a4 Draw: Fix textures and samplers at an offset. 2020-06-12 12:35:37 -07:00
Unknown W. Brackets
c8f8d55118 Vulkan: Correct viewport flag reset on rebind.
Can't break since we're checking two separate flags.
2020-05-24 21:36:23 -07:00
Henrik Rydgård
370678c498 Do a similar thing for D3D (let the backend handle the dirtying). 2020-05-24 20:57:59 +02:00
Henrik Rydgård
fabe987c8f Add a name tag for all render steps (GL/Vulkan). Helps with debugging and should be cheap enough (a single pointer per "step"). 2020-05-21 11:24:05 +02:00
Unknown W. Brackets
8d900bb432 Vulkan: Check driver version for Adreno 5xx bug.
It's now fixed at least as of this version (possibly earlier.)
2020-05-19 22:13:15 -07:00
Unknown W. Brackets
2e05d22eb7 Vulkan: Move Harvest Moon fix to Draw::Bugs.
Also, make it so you can skip using ini settings.
2020-05-19 22:12:30 -07:00
Henrik Rydgård
e64fdfa0c3 Fix a case of pointer truncation in Vulkan on 32-bit. Fixes #12932 2020-05-19 20:53:51 +02:00
Henrik Rydgård
69c092dce1 Vulkan crashfix (pNext was uninitialized) 2020-05-19 20:52:47 +02:00
Unknown W. Brackets
cb23c0c01d Vulkan: Create FB compatible pipelines in Draw.
The easiest way is just to create both and support both.  Perhaps we could
optimize out the creation of the framebuffer one.

Fixes #12928.
2020-05-18 22:45:20 -07:00
Henrik Rydgård
4bf92a66c5 Thin3D: use 16-bit indices. Fixes #12898. 2020-05-15 18:07:07 +02:00
Unknown W. Brackets
8b4821bc05 Draw: Small optimization to callback.
This allows the callback to say "I didn't copy, please copy for me."  This
helps when additional conversions will be applied during the copy, or a
copy can be skipped.

Also, fixed a couple cases of the wrong mip level being used.
2020-05-13 20:30:24 -07:00
Unknown W. Brackets
762b656ea2 GPU: Use a texture directly for MakePixelTexture.
This makes it easier to do things with it.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets
f9697c2c32 Vulkan: Allow frag shader UBO reads. 2020-05-13 18:10:09 -07:00
Unknown W. Brackets
e309712fed Vulkan: Correct missing offsets in Draw.
Was silently ignoring them.  Caused stretch in postshaders.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets
ddd3af2297 Draw: Actually use the index offset parameter.
I'm not sure we need it, but having a param used only on one backend is
confusing.
2020-05-13 18:10:09 -07:00
Unknown W. Brackets
9b8157f624 Draw: Allow specifying a tag on shaders.
This way they are not always "thin3d" when using Draw.
2020-05-13 18:07:25 -07:00
Unknown W. Brackets
61cca61d0c Vulkan: Fix Draw usage of framebuffers. 2020-05-13 18:07:25 -07:00
Henrik Rydgård
63f06cdd91 Address some feedback, thanks unknown 2020-03-01 18:41:09 +01:00
Henrik Rydgård
0da04f3694 Vulkan: Support devices that don't properly support 16-bit texture (like MoltenVK).
Fixes #12615.

Will make finishing #10654 worthwhile.
2020-03-01 14:07:13 +01:00
Henrik Rydgård
6c8186d046 Remove unused textureswizzle support (we use shaders instead). Universally support presenting 5551 format directly. 2019-10-27 20:55:32 +01:00
Henrik Rydgård
4f7c23fe79 DarkStalkers: Fix display on OpenGL ES. 2019-10-27 20:54:36 +01:00
Henrik Rydgård
58568632e8 Software renderer: Use hardware color conversion on Vulkan in 5551 16-bit mode 2019-10-27 20:54:36 +01:00
Henrik Rydgård
c7b3a08cf3 Vulkan: Add checks so we don't try to write NULL objects to a descriptor set.
(Shouldn't happen, but bad rendering is better than a crash in descriptor writing)
2019-10-20 17:05:42 +02:00
Henrik Rydgård
87c1ce6fa2 Vulkan: Move viewport/scissor rotation to the QueueRunner instead of RenderManager. Add some checks. 2019-10-13 21:25:16 +02:00
Henrik Rydgård
1e3711ee66 Vulkan blend factor: Bugfix and minor optimization 2019-10-13 21:17:29 +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
5fcac1a9e2 Vulkan: Disable some bad validation. Things are right and work fine. 2019-08-21 10:23:36 +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
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