563 Commits

Author SHA1 Message Date
Henrik Rydgård 9a3ff69091 Workaround for some SOCOM game's misuse of CLUT8 textures.
Emulating this correctly would be possible too but would only work at 1x
rendering resolution.
2023-04-17 09:34:26 +02:00
Henrik Rydgård b90833a462 OpenGL texture filtering: enforce key.mipEnable when we're forcing mips.
Fixes #17268, but I feel we could possibly get rid of the bool entirely
since we have maxlevel. Only GL and D3D even looks at this flag.

Oh well, that's for later.
2023-04-14 14:36:07 +02:00
Герман Семенов 122b63b9a8 GPU: using if constexpr C++17 optimization 2023-04-02 16:36:37 +02:00
Henrik Rydgård 5332850b00 More accurate check for LoadCLUT from framebuffer margins.
Fixes #16819
2023-03-31 21:24:21 +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
Henrik Rydgård f5e8d39e42 Force mipmapping on when drawing using replacement textures that contain mipmaps. 2023-03-18 15:01:53 +01:00
Henrik Rydgård 3302e6a76b Lookup filtering overrides at texture load time instead of at runtime. 2023-03-18 13:03:05 +01:00
Henrik Rydgård 9a228b1f23 Avoid calling FindReplacement unnecessarily. 2023-03-18 12:03:32 +01:00
Henrik Rydgård 97c9b9e4f7 Break out PollReplacement from TextureCacheCommon::FindReplacement 2023-03-18 12:01:24 +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 1b0d5ec3aa Remove a unused state from ReplacedTexture, rename POPULATED to UNLOADED 2023-03-17 00:52:38 +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 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 21a0a91818 Remove a misplaced ForgetLastTexture.
Fixes #17115
2023-03-14 15:49:35 +01:00
Henrik Rydgård 1860a73d58 Address feedback from previous PR 2023-03-12 23:15:09 +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 f936a6e9ce Structs and enums and build files 2023-03-11 11:19:33 +01:00
Henrik Rydgård 8e3428438e Replacement: Fix mip level loading. Fix bug if LoadIni gets rerun for some reason. 2023-03-10 23:58:15 +01:00
Henrik Rydgård 36f78a46c1 Rename PREPARED->POPULATED 2023-03-10 17:21:23 +01:00
Henrik Rydgård f459a8f71a Fix ini-less texture replacement 2023-03-10 14:58:44 +01:00
Henrik Rydgård 53791b1816 Restore functionality of the allowVideo flag, while preserving the early-out. 2023-03-10 14:18:42 +01:00
Henrik Rydgård 07fc551e4e State fixes, disable logspam 2023-03-10 14:16:14 +01:00
Henrik Rydgård 9f45271730 Tex replacer state machine instead of flags 2023-03-10 13:43:48 +01:00
Henrik Rydgård 06b83115a5 Replacer: Avoid tracking video textures 2023-03-10 12:20:55 +01:00
Henrik Rydgård b253225815 Fix another replacer lifecycle issue, causing unnecessary texture invalidation. 2023-03-09 15:03:17 +01:00
Henrik Rydgård 44c4e63753 Simplifies and speeds up D3D11 texture uploads. Also, fixes a bug with replacement off 2023-03-09 14:43:59 +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 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 c74f5b2189 Prepare for unifying more stuff 2023-02-25 16:01:32 +01:00
Henrik Rydgård 49e5460c9c Remove count parameter from SetViewports. No use foreseen. 2023-02-25 07:12:53 +01:00
Henrik Rydgård 1b5148bb6c Remove kinda-duplicate function. 2023-02-24 23:54:04 +01:00
Henrik Rydgård 63c43b90f8 Remove a level of indentation in LoadCLUT 2023-02-05 13:59:16 +01:00
Henrik Rydgård 4427cb4fc3 Add parameter to thin3d::CopyFramebufferToMemory to specify blocking mode. Not yet implemented. 2023-02-04 23:40:36 +01:00
Henrik Rydgård 62484f01ed Make ReadbackFramebufferSync able to use the stretch ability of ReadbackDepthbufferSync 2023-02-04 12:05:50 +01:00
Unknown W. Brackets 0f92afb0c1 Replacement: Check replaceValid before load. 2023-01-08 10:20:52 -08:00
Unknown W. Brackets e5d67119a8 GPU: Avoid bloom hack on buffers used for depth.
If a buffer even has depth transferred to it, let's avoid lowering its
resolution.
2023-01-05 18:00:43 -08:00
Unknown W. Brackets 0b6635c2dc GLES: Avoid switch-case on older glsl. 2023-01-02 14:57:06 -08:00
Unknown W. Brackets 49f6c461ad Reporting: Fix some header includes.
Particularly in Common, avoid including Core/Reporting.h.
2022-12-27 14:58:20 -08:00
Unknown W. Brackets b0f93ed8d6 Merge pull request #16535 from hrydgard/minor-fixes
Some minor initialization fixes, and fix for a potential crash found by static analysis
2022-12-10 07:09:58 -08:00
Henrik Rydgård 59ab1374f2 Fix regression in Tactics Ogre - the mipmap level hack broke
It broke when we introduced the 3D texture support, in #15727

Fixes #16354
2022-12-10 11:41:12 +01:00
Henrik Rydgård 4ec1e2a175 Some minor initialization fixes, and one potential crash found by static analysis 2022-12-10 11:28:19 +01:00
Henrik Rydgård 3b5770da9b DXT5 fix 2022-12-09 23:47:42 +01:00
Henrik Rydgård e59b734b27 Fix case where we could write off the end of a buffer if texture width == 1 and 4-bit color. 2022-12-09 23:47:39 +01:00
Henrik Rydgård 7aab096791 LittleBigPlanet: Compat flag to work around smoke rendering problem
See #16030

Hopefully just for the release. There might be a tweak of our heuristics
that can fix it too, but much riskier at this point.
2022-12-07 13:29:47 +01:00