Henrik Rydgård
e828df9f25
Split each renderpass/framebuffer into multiple "compatibility classes" (RenderPassType).
2022-09-08 00:32:03 +02:00
Henrik Rydgård
f81a28f661
Some reordering
2022-09-02 22:40:15 +02:00
Henrik Rydgård
b84cda2876
Plumb the computed pipeline state into ComputeFragmentShaderID.
2022-09-02 22:16:57 +02:00
Henrik Rydgård
9097fdaae6
Shrink VkRenderData from 88 to 64 bytes.
2022-09-01 14:21:34 +02:00
Unknown W. Brackets
18e1efece1
GPU: Add a way to defer dirty rechecks.
...
These are situations where we have temporary state which will require
recalc again later.
2022-08-28 08:34:48 -07:00
Henrik Rydgård
b529d26f3a
Fix smoothed depal on GLES. Don't enable filtering if not using.
2022-08-24 13:43:41 +02:00
Henrik Rydgård
f5e6754ac0
Special case depal lookups for Test Drive's strange usage.
...
This implements the hack I suggested in #13355 , where instead of first
reducing the color to RGB565 as the real game does, we just take each
channel at full precision and do the lookup according to the mask,
linearly filtering the palette.
This makes the game look a lot nicer and is also a small optimization,
but the hack is very specific so kinda ugly in a way.
2022-08-22 15:19:38 +02:00
Unknown W. Brackets
b5a4843c1f
GPU: Purify ConvertViewportAndScissor().
...
This makes it harder to misuse. See #15856 .
2022-08-20 14:21:11 -07:00
Unknown W. Brackets
d61619db47
GPU: Dirty params when converting viewport state.
...
This flag will be false when we convert next time, so parameters won't get
updated as expected.
2022-08-20 14:03:24 -07:00
Henrik Rydgård
1f276fcc20
Vulkan: Restore a minor old forgotten optimization
2022-08-16 21:42:40 +02:00
Henrik Rydgård
08e2d951b4
State handling reordering in D3D11 and D3D9 backends.
2022-08-05 23:07:01 +02:00
Unknown W. Brackets
8418287a87
Vulkan: Avoid crash on double DeviceLost.
...
This caused Android to crash when switching to OpenGL, because the
destructor would try to deinit again. There weren't any objects, but
draw_ was no longer valid.
2022-02-06 23:34:44 -08:00
Unknown W. Brackets
a9a07b0935
Vulkan: Avoid crash on bad shader.
2022-01-09 21:34:05 -08: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
Unknown W. Brackets
1010d7ac0e
Vulkan: Refactor common desc pool handling.
2021-12-09 18:39:55 -08: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
62f4875e24
VulkanRenderManager: Add deferred pipeline creation (to get it off the CPU thread)
2021-11-21 18:36:00 +01: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
5128480d74
GPU: Implement cull behavior in sw transform.
2021-10-30 21:04:16 -07:00
Unknown W. Brackets
159eab5141
GPU: Set projection matrix per backend.
...
There's a bit of variance, so this keeps the central code clean.
2021-10-30 18:20:36 -07:00
Unknown W. Brackets
f35c7d04bd
GPU: Update viewport params before sw transform.
2021-10-30 18:19:16 -07:00
Unknown W. Brackets
3730460bc5
GPU: Move swtransform flippedY to params.
2021-10-30 18:17:22 -07:00
Henrik Rydgård
6b76bcf070
Add new texture filtering "Auto Max Quality" that tweaks texture filtering for best quality.
...
It does this by enforcing mipmapping and minification filters, and
always autogenerates mipmaps and enforces anisotropic filtering for all
modes (if that's separately enabled).
This looks nice and flicker free in most games without any additional
tweaking, including GTA and Burnout which have long been painfully
flickery in the distance due to undersampling.
Needs a bit more testing before merge, maybe.
Fixes #13888
2021-09-03 00:14:58 +02:00
Bram Verweij
a31cbe42d2
Rename namespace to PPSSPP_VK, remove indentation
2021-08-21 12:39:15 +02:00
Bram Verweij
cc00a4132d
Prevent dlopen collisions between ppsspp_libretro.so and libvulkan.so
2021-08-20 11:22:57 +02:00
Unknown W. Brackets
e85a8b0f5b
Global: Cleanup class init order warnings.
2021-02-15 11:59:45 -08:00
Unknown W. Brackets
f32f89dd90
Global: Remove some unused variables.
2021-02-15 11:59:45 -08:00
Unknown W. Brackets
a73c15babc
GPU: Correct shader gen with weights as floats.
...
For now, this supports the option. We should probably just move to
everything being floats, but we already prefer software skinning.
Fixes #13903 .
2021-01-10 08:52:28 -08:00
Henrik Rydgård
f3ebd6553d
Turn off vertex range culling in bezier/spline calls.
...
When we do lower res tess than the real PSP, we cant trust the game to not cause range culling to kick in.
Fixes #11692
2020-12-13 16:04:16 +01:00
Henrik Rydgård
0c66f6c6d0
Assorted drive-by code cleanup
2020-12-13 00:20:47 +01:00
aliaspider
1aff9b3e2b
Vulkan: fix stack overflow.
2020-10-13 06:05:30 +01:00
Henrik Rydgård
5ece3de8ba
Track and accumulate pipeline flags for render passes.
...
(Information that will later let us make some interesting optimizations)
2020-10-11 12:22:25 +02:00
Henrik Rydgård
940611fe65
Remove the USE_GENERAL_LAYOUT_FOR* debug defines.
2020-10-11 11:06:54 +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
821817e6d4
Move the profiler 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
b6efc65c94
Set the texture dirty flags when binding a new framebuffer.
2020-09-21 08:56:58 +02:00
Henrik Rydgård
28b58ca05d
More asserts
2020-09-17 20:52:32 +02:00
Henrik Rydgård
1b3413945b
Some header include cleanup
2020-09-16 09:20:41 +02:00
Henrik Rydgård
7f1e35e761
Add missing asserts after some VK resource creation functions
2020-09-16 01:03:56 +02:00
Henrik Rydgård
59098a9a56
Sneak in a fix for a limited memory leak in Vulkan vertex cache
2020-09-16 01:03:56 +02:00
Unknown W. Brackets
15c25be42b
GPU: Switch vertex/lookup hashes to XXH3.
...
This is faster pretty much everywhere.
2020-08-27 20:37:49 -07: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
b43698a13d
Remove most instances of base/logging.h from Common, Core, GPU, more
2020-08-15 19:08:44 +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
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
Henrik Rydgård
6009bf7b74
Merge pull request #12952 from unknownbrackets/vulkan-safesize
...
Vulkan: Match safe size behavior on all backends
2020-07-13 15:59:09 +02:00
Henrik Rydgård
0c489e2d0d
We need to check for renderpass change and dirty here too. What a mess..
2020-06-02 11:18:42 +02:00