Henrik Rydgård
4e41233bb7
Replacement: Save textures even if already replaced, if the png is missing.
...
Fixes #17182
Not exactly sure what behavior we really want, but I think this one is
OK, and at least more similar to the old one. Now we save
already-replaced textures if the named replacement texture is missing, and there
isn't already a hash-named one in new or the "root".
2023-03-27 15:43:18 +02:00
Henrik Rydgård
b13c5c2d1b
Add compat setting to force using maximum depth resolution
...
Fixes #17014
Even if our depth-testing-equal heuristic believes that the game needs
lower depth resolution.
This removes some depth-fighting artifacts (that are present on the real
PSP, but nice to avoid) in Outrun, Split/Second and Cars: Race-o-Rama -
essentially reverting these to the behavior we had before the heuristic.
(The heuristic is good though - it means less compat.ini hacks going in
the other direction).
In the case of Outrun, this relies on two passes that pass exactly the
same vertex coordinates twice resulting in the exact same final
geometry. This is actually guaranteed by the spec if the vertex math is
exactly the same and "invariant" is set on the position output, though
I guess you never know.. Haven't seen any issues at least.
Also sneak in disabling some validation messages from using extra Vulkan
validation layers other than the default.
2023-03-26 00:27:58 +01:00
Henrik Rydgård
d586ec0d5e
Don't create Host objects except in headless/unittest
2023-03-25 10:47:01 +01:00
Henrik Rydgård
9e125eeba7
Remove NotifyUserMessage from Host
2023-03-25 10:32:09 +01:00
Henrik Rydgård
75bcb9b10c
Some renaming, flag updates
2023-03-18 11:46:22 +01:00
Henrik Rydgård
5f76fbe1ad
Implement padding-on-copy for compressed textures as well.
2023-03-17 14:00:14 +01:00
Henrik Rydgård
cf6cce0744
Remove scaleFactor from struct ReplacedTextureDecodeInfo, instead pass in both unscaled and scaled dimensions
2023-03-16 10:21:57 +01:00
Henrik Rydgård
f2a5a5abe7
Avoid input/output arguments in the texture scaler too
2023-03-16 10:14:41 +01:00
Henrik Rydgård
87a16b0386
Fix the stats
2023-03-15 10:19:00 +01:00
Henrik Rydgård
089b63c22f
Address feedback, except the stats.
2023-03-15 10:09:39 +01:00
Henrik Rydgård
2ac74e3d37
Remove the PushBufferType enum
2023-03-15 09:59:00 +01:00
Henrik Rydgård
181ddf8266
Change the API of the old VulkanPushBuffer to match VulkanPushPool.
2023-03-15 09:56:32 +01:00
Henrik Rydgård
6d3a25e81f
Tweak some sizes.
2023-03-15 01:25:03 +01:00
Henrik Rydgård
c8b25e50b0
Better debug vis for push pools
2023-03-15 01:25:03 +01:00
Henrik Rydgård
9fcd6d6612
Use thin3d's push pool in the draw engine too.
2023-03-15 01:25:03 +01:00
Henrik Rydgård
700b1cd6a7
More conversion to pushPool
2023-03-15 01:25:03 +01:00
Henrik Rydgård
3d372400e1
Start converting over to it
2023-03-15 01:25:03 +01:00
Henrik Rydgård
56d792f422
Sketch the new VulkanPushPool
2023-03-15 01:25:00 +01:00
Henrik Rydgård
effbe6376a
Remove an unused VulkanPushBuffer.
...
Saves about 0.75MB of VRAM, but mainly just to clean things up.
I think I meant to use this one instead of grabbing the one from
DrawEngine in the TextureCache.
2023-03-14 23:39:47 +01:00
Henrik Rydgård
6d520d6d6b
Vulkan: Enable mobile compressed formats too (oops)
2023-03-14 11:55:21 +01:00
Henrik Rydgård
91900eda7e
Don't try to generate mips for compressed replacement images
2023-03-14 11:55:21 +01:00
Henrik Rydgård
2b1e87792f
Vulkan: During texture upload, batch the buffer->image copies to do all the mips at once.
2023-03-14 10:11:19 +01:00
Henrik Rydgård
1860a73d58
Address feedback from previous PR
2023-03-12 23:15:09 +01:00
Henrik Rydgård
f88633b696
Add support for loading multiple mipmaps from DDS files.
2023-03-12 23:05:45 +01:00
Henrik Rydgård
6a84d96a3c
Add actual support for DDS textures to the replacer. Vulkan only.
2023-03-11 11:34:28 +01:00
Henrik Rydgård
092bbf5eaa
Fix saving of textures
2023-03-09 10:51:15 +01:00
Henrik Rydgård
bda09be109
Texture color format doesn't belong as a per-level property, that's not supported.
...
All levels of a texture must have the same format.
2023-03-09 00:10:46 +01:00
Henrik Rydgård
4ba2001479
Replacer: Make the cache data model texture-centric instead of level-centric
2023-03-09 00:10:46 +01:00
Henrik Rydgård
226197f30f
Replace "none_" with nullptr.
2023-03-08 13:17:10 +01:00
Henrik Rydgård
3b39e9e068
Turn the VFS into a class, to be able to reuse it for other purposes.
2023-03-06 16:42:47 +01:00
Henrik Rydgård
cc9c01b1d0
Vulkan texture uploads: Take optimalBufferCopyRowPitchAlignment into account
...
Might marginally increase texture upload performance on some GPUs, but
mainly just the right thing to do.
For example, on Intel, this is 64.
2023-03-05 17:32:41 +01:00
Henrik Rydgård
ef4f17e998
Resurrect the Vulkan memory visualizer, but now it's global stats and pushbuffer stats.
2023-02-27 01:11:11 +01:00
Unknown W. Brackets
9e46a30c13
GPU: Correct some missing override specifiers.
2023-02-26 15:58:58 -08:00
Henrik Rydgård
b3ce31c61e
Address feedback
2023-02-26 19:54:30 +01:00
Henrik Rydgård
72bed6f2b5
Some DeviceLost/DeviceRestore cleanup
2023-02-26 11:05:52 +01:00
Henrik Rydgård
3dc47c7fef
Unify TextureCache ::StartFrame as much as possible.
...
Tiny optimization avoiding a Vulkan pool reset on most frames.
2023-02-25 23:20:41 +01:00
Henrik Rydgård
4c45f8a4b0
Pass in draw directly in GPUCommon::DeviceRestore, instead of awkwardly fetching it
2023-02-25 23:04:27 +01:00
Henrik Rydgård
af2fd7b038
Move Vulkan clear detection logic into DrawEngine like the other backends.
2023-02-25 19:23:07 +01:00
Henrik Rydgård
8fb75e0c12
Unify most of the DebugGetShader* functions
2023-02-25 16:42:09 +01:00
Henrik Rydgård
c2c479b217
Remove function InitClear. Was only implemented for DX9, and only barely meaningful in non-buffered.
2023-02-25 16:32:50 +01:00
Henrik Rydgård
8ba665e258
More unification work
2023-02-25 16:12:24 +01:00
Henrik Rydgård
c74f5b2189
Prepare for unifying more stuff
2023-02-25 16:01:32 +01:00
Henrik Rydgård
285ffbaa52
Unify CopyDisplayToOutput
2023-02-25 14:42:15 +01:00
Henrik Rydgård
18999c3687
Create the GPUCommonHW class.
2023-02-25 14:42:10 +01:00
Henrik Rydgård
0d57f3beee
Unify GPUCommon::DoState.
2023-02-25 12:21:03 +01:00
Henrik Rydgård
609a8f6d36
Unify ExecuteOp between the accelerated backends
2023-02-25 12:21:03 +01:00
Henrik Rydgård
ed03348c65
Unify PreExecuteOp, keep the soft GPU as a special case
2023-02-25 12:21:03 +01:00
Henrik Rydgård
da561aa9de
Unify CheckFlushOp
2023-02-25 12:21:03 +01:00
Henrik Rydgård
30120560ab
Include file cleanup in framebuffer managers
2023-02-25 12:21:00 +01:00
Henrik Rydgård
1b5148bb6c
Remove kinda-duplicate function.
2023-02-24 23:54:04 +01:00