Henrik Rydgård
0aa67e5276
Add some texture loading safety checks
...
I hit a spurious, non-reproducible debug assert in Archer McLean's Mercury.
Just want to rule out some bad code paths.
2023-09-06 15:38:47 +02:00
Henrik Rydgård
62c9041060
Merge pull request #18011 from hrydgard/collapse-degenerate-volume-textures
...
Detect the simplest Tactics Ogre case (US/EU) early
2023-08-31 08:45:11 +02:00
Henrik Rydgård
7e0e9a6d2b
Shrink TexCacheEntry by 4 bytes and clean up a naming issue
...
Was a little confused by the "/2". It's not really useful to cache this
value anyway.
2023-08-30 16:37:38 +02:00
Henrik Rydgård
0d0c11a1ed
Remove unnecessary check, add comment.
2023-08-30 10:29:14 +02:00
Henrik Rydgård
30a165b1dd
Detect the simplest Tactics Ogre case (US/EU) early
...
Removes the need for the compat.ini flag for these versions, since we
can just treat the texture exactly as a regular 2D texture.
2023-08-30 10:27:19 +02:00
Henrik Rydgård
de679e2761
Generalize the odd/even mip level check
2023-08-29 10:44:18 +02:00
Henrik Rydgård
0cdfaffb48
Enable the FakeMipmapChange flag for US/EU Tactics Ogre, fixing replacement problem.
...
For correct lookups, without our texture replacement actually supporting
volume textures, we need to use this mechanism here too.
The game actually uses two mipmaps, but they're identical and point to
the same memory, so we treat them as a regular 2D texture instead for
purposes of both texturing and replacement. This is presumably legacy
from the initial Japanese version that needs to use multiple texture
layers. Similarly it does in in pairs.
This does actually not fully fix texture replacement for the Japanese
version, unfortunately. For that we need more proper support for these
weird textures in the texture replacement code - when I refactored it
before for more natural handling of regular mipmapping, this kinda got
lost.
2023-08-28 20:58:57 +02:00
Henrik Rydgård
5c42aa07fc
Minor log improvement
2023-08-28 16:11:47 +02:00
Henrik Rydgård
a529a9c408
Improve the logging in the CLUT load path
2023-08-28 14:39:24 +02:00
Henrik Rydgård
16d073c4ad
Add compat flag to not load CLUTs from old framebuffers
2023-08-24 10:30:37 +02:00
Henrik Rydgård
714558853c
Enable anisotropic filtering for replacement textures with mipmaps
2023-08-18 15:21:07 +02:00
Henrik Rydgård
a32249a3cf
Move DebugOverlay rendering to the overlay screen, allowing drawing it on top of the menu
2023-08-03 16:19:18 +02:00
Henrik Rydgård
fc6879674e
Refactor overlays into an enum
2023-08-02 13:03:04 +02:00
Henrik Rydgård
def09bf575
Update the uvscale uniform a bit more conservatively on framebuffer changes
...
Plus fixes a few minor oversights
Fixes #17581 and possibly #17522
2023-06-15 11:57:30 +02:00
Henrik Rydgård
80e47b7bd3
Only dirty the uniform UVSCALEOFFSET when really needed
...
Broken out from #17479
With OpenGL, greatly reduces the amount of glUniform4fv calls in many games (and
similar in the other backends).
2023-05-25 15:00:57 +02:00
Henrik Rydgård
bdd0eeb7c3
Avoid double texture cache load.
...
Texture packs are loaded from NotifyConfigChanged which is called
anyway.
Fixes #17381
2023-05-01 23:52:39 +02:00
Henrik Rydgård
484f2c5954
Fix texcoord issue with SOCOM post effect
2023-04-25 23:02:12 +02:00
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