Commit graph

255 commits

Author SHA1 Message Date
Henrik Rydgård
ddc0f0829b Replaced textures: Don't leak handles on failure, check allocation success 2021-10-08 19:09:43 +02:00
Henrik Rydgård
59ac4d3e27 Vulkan: Rework mipmap generation and its image barrier/layout handling.
Fixes bugs on mobile with texture scaling + auto max quality texturing
(since that generates mipmaps with blits from an image which was just generated from
compute, making proper barriers very critical).
2021-10-05 22:50:49 +02:00
Henrik Rydgård
992ad801e7 Add a crude way to blacklist post/texture shaders from certain vendors.
Use it to work around #14530 for now.
2021-09-28 23:39:52 +02:00
Unknown W. Brackets
c37c078254 Vulkan: Only force 32-bit if needed.
If there are mips already, we can keep 16-bit.
2021-09-13 00:07:01 -07:00
Unknown W. Brackets
d9f62d690a Vulkan: Expand 16-bit textures to generate mips.
When using "Auto Max Quality", we can't use 16-bit formats.
See #14804.
2021-09-13 00:03:42 -07:00
Henrik Rydgård
e2b0137400 VK: Only autogenerate mipmaps for R8G8B8A8 format textures.
Quickfix for bug with Auto High Quality texture filtering.

Fixes #14804 (good enough for now at least).
2021-09-07 23:41:03 +02:00
Henrik Rydgård
1df31e9304 Fix windows menus for the new tex filtering options. 2021-09-05 23:54:41 +02: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
Henrik Rydgård
deee9f9720 Unify the Vulkan format definitions / swizzles
To make the next attempt at #14602 easier.
2021-07-11 11:26:40 +02:00
Henrik Rydgård
7e048dbbff Revert "Merge pull request #14588 from hrydgard/vk-correct-565-format"
This reverts commit 43c16f1ea2, reversing
changes made to 25cfb92a9c.
2021-07-10 20:01:16 +02:00
Henrik Rydgård
9a2e220e0d Vulkan: Use the mandatory-support RGB565 format and not the opposite one.
Had apparently misread the spec.

Fixes validation (and probably rendering) errors on Linux/Intel.

https://www.khronos.org/registry/vulkan/specs/1.2/html/chap33.html#features-required-format-support
2021-07-07 19:07:29 +02:00
Henrik Rydgård
a40b1dec5f Use Path for fullName in dirlisting. Bugfixes.
Buildfixes

UWP: Buildfix.

headless: Buildfix.

Common: Buildfix.

iOS: Buildfixes.

libretro: Buildfix.

Qt: Buildfix.
2021-05-13 10:39:16 +02:00
Unknown W. Brackets
8a8328c431 Common: Move ColorConv to a more appropriate place. 2021-05-01 11:20:05 -07:00
Henrik Rydgård
4e1bc2b3e0 Further std::string removal 2021-03-13 17:55:07 +01:00
Unknown W. Brackets
82a7a26409 GPU: Look up replaced filtering options. 2021-02-27 17:17:21 -08:00
Henrik Rydgård
2f3bc2d373
Merge pull request #14056 from unknownbrackets/debugger-mem
Track memory allocations and writes for debug info
2021-02-21 10:18:11 +01:00
Unknown W. Brackets
557bf0d963 TexCache: Check for videos rendered as slices.
In a few places, we were checking only the start address of the video.
2021-02-20 20:59:04 -08:00
Unknown W. Brackets
10a77d29ab Debugger: Track texture usage too. 2021-02-15 15:01:23 -08: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
Henrik Rydgård
c48bdf7efc Vulkan: Fix image layout issues after compute shader uploads.
We're already in GENERAL so probably not worth to transfer to DST just
to do even more transfers due to the silliness of GenerateMip.

I'm planning to rework the whole texture upload thing to be far more
optimal with some kind of TextureUploadManager

Fixes #13987
2021-01-30 23:09:42 +01:00
Unknown W. Brackets
c630d365cd Vulkan: Allow tex shaders to specify a max scale. 2021-01-28 01:03:02 -08:00
Unknown W. Brackets
97b68e6964 Vulkan: Prevent scaling shader leak.
No need to recreate if they haven't changed.
2021-01-18 13:31:43 -08:00
Unknown W. Brackets
4240fa3053 GPU: Correct some incorrect deallocations. 2021-01-01 15:43:13 -08:00
Henrik Rydgård
a24f4e3e70 Start unifying BindFramebufferAsColorTexture 2020-11-07 11:03:53 +01:00
Henrik Rydgård
84037f448e Remove colorDepth property of framebuffers. They're all 8888. 2020-11-05 14:51:46 +01:00
Henrik Rydgård
020fb55a65 Completes the merge, deleting the Vulkan-specific fragment shader generator. 2020-10-23 10:03:44 +02: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
93e327ab78 Vulkan: Automatically generate mipmaps for replacement textures. 2020-10-05 22:36:55 +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
ff8148dd92 Move native/util, native/data and native/i18 to Common/Data.
Also move colorutil.cpp/h

linking build fix experiment

Delete a bunch of unused CMakeLists.txt files

CMakeLists.txt linking fix

Don't include NativeApp.h from any headers.

Android.mk buildfix

Half of the UWP fix

Buildfix

Minor project file cleanup

Buildfixes

Guess what? More buildfixes!
2020-10-04 07:28:29 +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
dcd33a4692 Remove redundant bind on GL texture build. Improve dirtying of texture state. 2020-09-21 08:56:58 +02:00
Henrik Rydgård
707e9cf7ac Remove some unnecessary function parameters, improve some comments. 2020-09-20 20:44:18 +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
a222b2017e Switch to a returned value and rename these functions. 2020-09-14 00:04:39 +02:00
Henrik Rydgård
5190f85c8e Unify/centralize SetFramebufferSamplingParams. Some include cleanup. 2020-09-14 00:04:39 +02:00
Henrik Rydgård
46b3fb0821 Workarounds for D3D9's very limited mip level control. 2020-09-14 00:04:39 +02:00
Henrik Rydgård
9ea295093b TextureCacheGLES: Also share the same sampler calculation for GLES. 2020-09-14 00:04:39 +02:00
Henrik Rydgård
a4c071261b TextureCacheCommon::UpdateSamplingParams no longer takes a TexCacheEntry 2020-09-13 16:40:37 +02:00
Henrik Rydgård
3dff9781fc Fix GetCurrentTextureDebug 2020-09-13 09:33:06 +02:00
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