Commit graph

61 commits

Author SHA1 Message Date
Henrik Rydgård
3ffcf267cb Allow replacing mip levels of a texture even without a ini file. Probably niche. 2023-12-29 19:06:20 +01:00
Henrik Rydgård
ebaebf5945
Merge pull request #18546 from GermanAizek/make-smart-ptr
[Common Data/Core Dialog HLE/GPU Common Vulkan] Optimize create smart pointers using C++17 std::make_*
2023-12-14 14:02:55 +01:00
Herman Semenov
08070e7f31 [Common Data/Core Dialog HLE/GPU Common Vulkan] Optimize create smart pointer using C++17 std::make_* 2023-12-14 15:44:16 +03:00
Herman Semenov
de80cc3883 Using reserve if possible 2023-12-12 15:13:43 +03:00
Henrik Rydgård
be65cf0fc2 Assert improvements 2023-09-12 17:15:26 +02:00
Henrik Rydgård
c1a290b41f ReplacedTexture: Bugfix D3D workaround log check 2023-07-23 22:06:06 +02:00
Henrik Rydgård
ace217008a In D3D11, force block compressed textures to have dimensions divisible by 4
Fixes #17745 (crash when loading certain texture packs in D3D11)

This is an old unfortunate limitation. Only applies to the top mip
level, which makes it obvious that it's kinda unnecessary for the
hardware and indeed, Vulkan and OpenGL don't have this limitation.
2023-07-20 19:44:00 +02:00
Henrik Rydgård
2e3a676d71 Support BC1,2,3 formats also if packed in a DX10-style DDS. 2023-05-01 20:55:31 +02:00
Henrik Rydgård
cdfe4524ea ReplacedTexture: Opportunistically delete the waitable 2023-03-28 09:21:41 +02:00
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
Unknown W. Brackets
f1834fcdde Replacement: Correct padding w/ threads disabled. 2023-03-25 17:12:43 -07:00
Henrik Rydgård
6950801e25 Not much point with a single line cleanup function. Also remove redundant check. 2023-03-19 00:04:48 +01:00
Henrik Rydgård
97c9b9e4f7 Break out PollReplacement from TextureCacheCommon::FindReplacement 2023-03-18 12:01:24 +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
79f4e73110 Replacer: Perform the padding to pow2 size during CopyLevelTo, not during load. Saves memory. 2023-03-17 14:00:14 +01:00
Henrik Rydgård
1b0d5ec3aa Remove a unused state from ReplacedTexture, rename POPULATED to UNLOADED 2023-03-17 00:52:38 +01:00
Henrik Rydgård
6a430f2a14 ReplacedTexture: Some initialization. For UASTC, seems we need to clear the transcoder state. 2023-03-17 00:02:01 +01:00
Henrik Rydgård
f154f4a29d Warning fix 2023-03-16 15:06:38 +01:00
Henrik Rydgård
e34a5a68de Remove some locking 2023-03-16 12:04:14 +01:00
Henrik Rydgård
725d4195df Small cleanup of purging code 2023-03-16 11:53:39 +01:00
Henrik Rydgård
35f46ec161 Rework the replacement cache. No more duplicate ReplacedTexture objects. 2023-03-16 11:46:05 +01:00
Henrik Rydgård
c45376ddc7 Typo fix, thanks iota97 2023-03-15 20:31:27 +01:00
Henrik Rydgård
0fb7ff488e Add a convenient define to experiment with parallel copy 2023-03-15 14:48:32 +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
c31b4be690 Crashfix in ReplacedTexture. Thought I fixed this one before, hm. 2023-03-15 01:23:32 +01:00
Henrik Rydgård
13e63c109f If the target compression format is not supported, just transcode to RGBA8888. 2023-03-14 18:52:42 +01:00
Henrik Rydgård
b45f1db005 Correct some error reporting 2023-03-14 18:34:22 +01:00
Henrik Rydgård
d8c3269cc6 Fix zipped texture packs (it didn't load the ini from the zip, the rest worked).
Plus a few other things.
2023-03-14 17:53:01 +01:00
Henrik Rydgård
4bbc4c258a Remove sketch of Basis container format support (we go with KTX2 instead as the container) 2023-03-14 14:09: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
93bf82a906 Add KTX2 basis/UASTC texture transcoding support 2023-03-14 11:55:21 +01:00
Henrik Rydgård
0fd58d80d5 Detect BASIS files. Doesn't do much with them yet. 2023-03-14 11:55:21 +01:00
Henrik Rydgård
32e8ab3b5d Import all of basisu_transcoder, set up build 2023-03-13 12:37:43 +01:00
Henrik Rydgård
7df51c3d06
Merge pull request #17103 from hrydgard/replacement-dds-mipmaps
Texture replacement: Load DDS mipmaps
2023-03-13 09:58:32 +01:00
Unknown W. Brackets
2a20c5757f Build: Fix build on Visual Studio 2019. 2023-03-12 16:46:19 -07: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
b1b8fc65cf Error handling fixes (close the file). 2023-03-12 23:05:45 +01:00
Henrik Rydgård
b595a1dc4d Prepare LoadLevelData for loading multiple mips. 2023-03-12 16:18:49 +01:00
Henrik Rydgård
aaa83897fe Some code moving, tweaks 2023-03-12 16:18:49 +01:00
Henrik Rydgård
a4b5641f11 Add compressed texture format support checks 2023-03-12 16:18:46 +01:00
Henrik Rydgård
b44e879d21 Support DXT1/3/5 (BC1,2,3) in D3D9 2023-03-12 11:37:17 +01:00
Henrik Rydgård
f2673c8f7b Change BGRA to be a texture-specific flag. Fixes R/B swap in DDS textures in D3D11. 2023-03-12 10:19:12 +01:00
Henrik Rydgård
d95cd73c2c Address a round of feedback 2023-03-11 21:46:01 +01:00
Henrik Rydgård
996b685294 Fix BC7 textures 2023-03-11 12:34:08 +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
f936a6e9ce Structs and enums and build files 2023-03-11 11:19:33 +01:00
Henrik Rydgård
3dc2463b55 Simplify, avoid opening file twice (still rewinding!) 2023-03-10 23:36:00 +01:00
Henrik Rydgård
265ae5d0e9 Make the two methods more compatible 2023-03-10 23:28:11 +01:00
Henrik Rydgård
6ece79c3fa Move PopulateLevel and PrepareData next to each other, for later merging 2023-03-10 21:06:33 +01:00