Commit Graph

74 Commits

Author SHA1 Message Date
Henrik Rydgård 841e4c8564 Add various checks trying to avoid various crashes found in Google Play crash reports. 2026-02-05 11:12:53 +01:00
Henrik Rydgård 435f523997 Replacement textures: Don't spend frame time waiting for a texture to be finished
It's better to finish rendering the frame and have the texture ready for
the next one, without wasting CPU.

However, if the user set their texture load speed to "Instant", that
means they never want to see any original textures. So in that case, we
do still wait.

Fixes #20519
2025-06-13 23:31:02 +02:00
Henrik Rydgård 252d342cc5 Fix another texture replacement crash (only happens with broken png texture files).
Fix a warning too.
2025-06-10 15:03:15 +02:00
Henrik Rydgård deb2fa4a63 Texture replacement: Fix issue where we could accidentally close a file twice.
Add a sanity check.
2025-06-06 10:31:01 +02:00
Henrik Rydgård 0f18f054ab Make the frame-time budget for uploading replacement textures take framerate into account 2025-04-22 20:19:43 +02:00
Henrik Rydgård df6ed8cfc9 Do some cleanup of #includes in GPU 2024-12-18 13:57:26 +01:00
Henrik Rydgård 839df81852 thread solution: initial progress 2024-12-10 01:27:25 +01:00
Henrik Rydgård 7f13bc1a34 Add new log category for texture replacements 2024-12-01 14:17:01 +01:00
Henrik Rydgård e4c0ed7078 TextureReplacement: Call CloseFile as early as possible when loading textures. 2024-11-30 11:56:27 +01:00
Henrik Rydgård 821624c494 TextureReplacer: Remove a lock that I don't think should be there. Blacklist another folder. 2024-11-30 02:44:01 +01:00
Henrik Rydgård 5eeb15b30a Use Exists instead of GetFileInfo in more cases 2024-11-30 00:39:38 +01:00
Henrik Rydgård 3d31b4ac4c Fix possible framebuffer binding bug in EmuScreen 2024-10-02 16:21:53 +02:00
Henrik Rydgård e01ca5b057 Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
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