Commit graph

210 commits

Author SHA1 Message Date
Henrik Rydgård
41eee6a1a4 Decouple framebuffers from texcache entries entirely. 2020-09-12 14:25:50 +02:00
Henrik Rydgård
a22181df1c Partially fix Katamari (flicker due to choice of the wrong depth buffer still happening). 2020-09-01 22:54:36 +02:00
Unknown W. Brackets
e32524c544 GPU: Remove ReliableHash aliases.
Let's just use XXH32/XXH64 directly in texture replacements, clearer
anyway.
2020-08-28 01:15:22 -07:00
Unknown W. Brackets
7f812a5d9a GPU: Hash CLUT using XXH3 with replacements off.
It's faster, but if texture replacements are enabled, we want the hash to
stay the same.
2020-08-27 20:46:39 -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
Unknown W. Brackets
1e2f87a6d2 Vulkan: Fix tex upscaling 4444 swizzling. 2020-08-15 10:12:34 -07:00
Henrik Rydgård
ba0d04a142 Vulkan: Implement depth texturing through depal. 2020-08-09 20:31:04 +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
58ef0c8e80 Texture from framebuffer: Logging improvements 2020-08-04 14:45:14 +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
de178d617b Move a line to a better place 2020-08-03 23:14:27 +02:00
iota97
ce2fc7d986 Fix texture upscaling and per game setting fix/cleanup 2020-08-03 16:04:23 +02:00
Unknown W. Brackets
d99e67a061 Vulkan: Allow custom texture upscaling shaders.
Let's not just hardcode.
2020-08-01 22:00:04 -07:00
BreadFish64
b0a073b4bb Fix alpha channel handling in xBRZ texture filter shader 2020-07-29 16:29:31 -05: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
737688a22a Annotate calls to RebindFramebuffer with their cause. 2020-06-02 09:51:38 +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
ac909d2192 Vulkan: Ensure scaling happens in cached RAM.
There's a non-trivial performance impact to using uncached coherent
memory, which is usually what we get for the push buffer.
2020-03-08 12:02:46 -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
Unknown W. Brackets
5009698cc0 Core: Use a shared_ptr for i18n categories.
This does not make them thread safe, but it reduces the chances of a crash
a bit (see #12594.)
2020-02-09 07:35:16 -08:00
Unknown W. Brackets
be5d93d5f1 Vulkan: Compile compute shaders only if enabled. 2019-09-30 00:39:00 -07:00
Unknown W. Brackets
41a6831333 Vulkan: Add a setting for hardware scaling. 2019-09-30 00:35:50 -07:00
Unknown W. Brackets
7fa05a3181 Vulkan: Initial 16-bit texture shader decode. 2019-09-30 00:35:14 -07:00
Unknown W. Brackets
6613312ecc Vulkan: Add 4xbrz texture shader. 2019-09-30 00:34:53 -07:00
Henrik Rydgård
eeec18c018 Make the barrier a bit more focused. Up some limits. 2019-09-29 10:55:49 -07:00
Henrik Rydgård
080f34acfe Need a barrier on Mali. Strange that validation didn't warn... 2019-09-29 10:54:55 -07:00
Henrik Rydgård
e9b2af7fc7 In the computeUpload path, use a shader intrinsic to unpack the color. 2019-09-29 10:54:33 -07:00
Henrik Rydgård
a355f49c91 Also experiment with a "copy shader" that just does raw data manipulation into GPU local memory, then copies to image from there. 2019-09-29 10:39:12 -07:00
Henrik Rydgård
9ed66001c6 Use a plain compute shader for RGBA8888 texture uploads, as a proof of concept. 2019-09-29 10:27:50 -07:00
Henrik Rydgård
e6bec3e555 Vulkan: Add simple manager for compute shaders that upload data to images. 2019-09-29 10:24:48 -07: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
8e1a5ef3d6 Minor refactor of physical device property/feature detection, to allow for more extension use. 2019-02-05 18:07:17 +01:00
Henrik Rydgård
b037efdb55 If there are multiple Vulkan devices, show a setting to allow the user to choose. 2018-06-06 10:20:12 +02:00
Unknown W. Brackets
8d07e6d985 GPU: Prevent temp FBOs from overwriting each other.
Sometimes we'd use two temp FBOs in the same draw (e.g. shader blending +
depal.)  This could cause the same temp FBO to get used for two purposes,
causing weird behavior.
2018-05-06 08:57:44 -07:00
Henrik Rydgård
77e574ccc6 Buildfix. 2018-05-04 22:57:13 +02:00
Henrik Rydgård
698bd75209 Fix regression caused by the new depal code for Vulkan. Fixes #10993 2018-05-04 22:24:11 +02:00
Unknown W. Brackets
3eb0450998 Depal: Reapply texture when bounds change.
Since we need each slice of the texture when we use bounds to reduce the
size.  Fixes #10951.
2018-04-22 10:43:46 -07:00
Henrik Rydgård
81276c8862 Fix various bugs. 2018-04-13 14:19:05 +02:00
Henrik Rydgård
29c41c6a35 Implement shader depal for Vulkan. See #10908. Bilinear filter not yet implemented. 2018-04-13 14:19:01 +02:00
Henrik Rydgård
31ae11ecc8 Don't forget to dirty some state after depal. May help #10906 ? 2018-04-12 11:59:18 +02:00
Henrik Rydgård
e784d1a29c Vulkan: Ease off on the allocator "slab pressure" if texture scaling is enabled.` 2018-04-07 10:40:49 +02:00
Unknown W. Brackets
d07a124a90 Vulkan: Increase base slab allocation size. 2018-04-06 21:43:18 -07:00
Unknown W. Brackets
5f27a2e60a Vulkan: Track tags on emu textures. 2018-04-06 21:43:18 -07:00
Unknown W. Brackets
fd183715ec Vulkan: Decimate when there are many slabs.
This helps avoid one little texture holding onto a whole slab.

Won't change behavior when they are full, since then the cacheSizeEstimate
should be fairly high.
2018-04-06 21:42:32 -07:00
Henrik Rydgård
86966684d4 Vulkan: Remove the wrapper struct around VulkanTexture 2018-04-05 23:23:14 +02:00
Henrik Rydgård
f967e206b8 Remove the last remains of the idea that textures can be efficiently updated instead of recreated. Accidentally fixes #10697 somehow.
Also this is good for terminology, no more confusion with the texture
replacement facility :)
2018-03-25 10:50:37 +02:00
aliaspider
198c946218 remove unnecessary NULL assignment. 2018-03-23 04:14:10 +01:00
aliaspider
fc9a5ff65c prevent use-after-free. 2018-03-22 22:10:05 +01:00
Henrik Rydgård
22e28e218b
Merge pull request #10411 from hrydgard/gl-render-manager
GL render manager - new faster GL multithreading
2018-01-31 12:22:07 +01:00