Commit graph

364 commits

Author SHA1 Message Date
Henrik Rydgard
634add3a46 Depalettize works at other resolutions than 1x. For some strange reason though if you change resolution in game it breaks. 2014-05-27 22:09:26 +02:00
Henrik Rydgard
d414327da7 Use a small offset to turn NEAREST into floor() when sampling the clut.
Minor fixes and cleanups.
2014-05-27 22:09:25 +02:00
Henrik Rydgard
d0e65054a4 A bit closer to working. Shadow visible 2014-05-27 22:09:22 +02:00
Henrik Rydgard
8fba7fa98e Initial work on depalettization. 2014-05-27 22:07:24 +02:00
Unknown W. Brackets
ec0ae44200 Don't force nearest for colortest against black.
Should fix #4217 and be relatively safe.  Probably it's a common colortest
ref color that's safe?
2014-05-15 23:52:16 -07:00
Unknown W. Brackets
99458d7797 Avoid forcing nearest/disabling linear if possible.
If we know that the test is trivially true, we don't need to worry about
the test.  May help #4405.
2014-05-15 22:38:44 -07:00
Unknown W. Brackets
2d12eb3394 Do not specify max LOD for no-mipmap textures.
Fixes #6077, incorrect filtering with no mipmaps in Popolocrois.
This was causing it to use the mag filtering setting, even when minifying.
2014-05-13 22:40:58 -07:00
Unknown W. Brackets
f660c04983 Optimize double alpha blending for 1/0 textures.
If the blend is 2*a / 1-a, and the alpha is either 1 or 0, we can still
use color doubling instead.  Fixes #3379 (Persona 2.)
2014-05-11 14:17:19 -07:00
Unknown W. Brackets
779a52e08a Don't forget tex alpha if only a mip has none.
Mip levels should only move toward unknown.
2014-05-04 09:54:53 -07:00
raven02
abc5c86339 Split out texture level 2014-04-19 06:45:17 +08:00
raven02
3fc5ba22f4 Set texture bias in constant mode 2014-04-18 18:07:52 +08:00
Unknown W. Brackets
089fea7185 Ignore uncached/kernel bits in texture cache.
Although I suppose we could respect uncached and never cache...

Possibly #5879.
2014-04-14 07:58:00 -07:00
Unknown W. Brackets
a411ec6d08 Don't use BGRA for upscaled textures.
Since they aren't color swapped.  Fixes #5881.
2014-04-14 07:34:04 -07:00
Unknown W. Brackets
419e812c9a Also color swap DXT textures.
Probably #5878.
2014-04-14 01:27:47 -07:00
Unknown W. Brackets
943353faac Use GL_BGRA for 32 bit textures on Windows.
25% improvement in Popolocrois, probably decent gains in other games using
32-bit textures often.  FF2 for example doesn't.
2014-04-14 00:28:31 -07:00
Unknown W. Brackets
ca6e4635aa Fix texture cache invalidation. 2014-04-13 16:25:09 -07:00
Unknown W. Brackets
dc0eea0522 Propagate texcache hash fails through cluts.
In games that use palette swapping (hi, FF2), if we detect a change in
a texture, another texture with the same address but new clut might not be
rehashed.

This just marks all other textures as dangerous when a hashfail occurs.

Fixes FF2 from recent optimizations.  It's slower, but still much faster
than before.
2014-04-13 16:20:58 -07:00
Unknown W. Brackets
6cfc61665d Switch to a bitmask instead. 2014-04-13 14:45:55 -07:00
Unknown W. Brackets
4c1c694d4b Use flags to avoid hashing textures when unchanged.
If only parameters change (like wrapping or clut, etc.) we don't need to
rehash the data - we know it hasn't changed.

Should reduce the distance between lazy texture hashing on and off.
2014-04-13 14:22:39 -07:00
Unknown W. Brackets
b6dc7eba8b Simplify texture status checks a bit. 2014-04-13 13:19:35 -07:00
raven02
a6523dd507 Texture lod bias should be signed 2014-04-12 02:33:52 +08:00
Henrik Rydgård
89cf9230a1 Indentation fix 2014-04-02 10:28:03 +02:00
Henrik Rydgard
d83a5da6bd Fix glTextureStorage2D issue by scaling w/h. Fixes #5625 2014-04-02 00:15:41 +02:00
Unknown W. Brackets
b800762ceb Add a NEON-optimized version of XXH32.
This takes at least 40% less time to hash on NEON/ARM devices.
2014-03-25 00:34:55 -07:00
Unknown W. Brackets
b44d10a91e Move texture unswizzling to decoder, use NEON. 2014-03-22 21:35:16 -07:00
Henrik Rydgard
8bf015fe16 texcache: SSE optimized version of the most common case of Unswizzle
(didn't put this in fast_math because it's pretty specific to PSP)
2014-03-23 01:50:50 +01:00
Unknown W. Brackets
66f501b981 Avoid an invalid enum on GLES2 texture creation.
My device logs an error, which I'm guessing has perf impact.
2014-03-22 09:34:22 +01:00
Unknown W. Brackets
f124e7dddc Fix a minor typo. 2014-03-03 00:21:04 -08:00
Unknown W. Brackets
c7437bbe8e Fix some minor warnings. 2014-03-03 00:08:32 -08:00
Unknown W. Brackets
4f1236c2ba Don't use replaceImages for texture scaling = auto. 2014-03-02 01:39:41 -08:00
Unknown W. Brackets
034ae337b7 Handle texture scaling when render res is auto. 2014-03-02 01:39:40 -08:00
Unknown W. Brackets
15a608a6b9 Check for kernel textures in kernel ram properly.
Textures can perfectly legitimately be in volatile ram.
2014-03-01 16:11:56 -08:00
Henrik Rydgard
9c4d9461d4 Detect bad mipmap sizes, autogen mipmaps in this case. Might help part of #2603
(outrun)
2014-02-17 11:42:03 +01:00
Unknown W. Brackets
d2108a962e Switch from USING_GLES2 to MOBILE_DEVICE.
Still using USING_GLES2 for, well, GLES2.  But for things that are really
about mobile, we need a new define.  Devices are coming that don't use
GLES2.
2014-02-08 16:37:58 -08:00
Bovine
2c0df8db79 Fixed infrequent segfault in CheckAlpha
pixelData was allocated with stride shorts per row and then advanced as
stride ints per row (reading every other row).  Upshot: fully solid
16-bit textures with alpha channels should now properly categorize as
ALPHA_FULL
2014-02-02 13:51:45 -07:00
Unknown W. Brackets
b626daca59 Correct CheckAlpha() for un-rearranged textures.
Fixes #4403.  It was just not seeing the alpha when a texture had a large
bufw and a small w, and transparent only near the bottom - as in FF1's case.
2014-01-26 19:39:34 -08:00
Unknown W. Brackets
b48de952fd Duplicate framebuffers textured onto themselves.
This fixes #2917.

I verified that, at least for my card, blitting is much faster than
glReadPixels (by quite a margin.)
2014-01-20 07:54:39 -08:00
Unknown W. Brackets
09f1c795e5 Pass around texture pointers, not addresses.
This makes it possible to override it easier, rather than needing it in
PSP RAM.
2014-01-20 07:52:09 -08:00
Unknown W. Brackets
3e7f749f6d Change the self message for separate reporting. 2014-01-20 01:07:01 -08:00
Henrik Rydgård
1e360d5c0a Merge pull request #5153 from unknownbrackets/texcache2
Allow texture scaling on changed textures
2014-01-19 23:58:03 -08:00
Unknown W. Brackets
eeaeb91610 Disable scaling to odd multiples when unsupported.
May help #4000.
2014-01-19 21:14:21 -08:00
Unknown W. Brackets
9680a7ccc7 Allow texture scaling on changed textures.
But only if they don't change very frequently.  Should fix #1934.
2014-01-19 20:54:48 -08:00
Henrik Rydgård
4fda9135da Log dimensions of framebuffer/texture collisions. Update native. 2014-01-14 10:51:45 +01:00
Unknown W. Brackets
6b0853c2e0 Report when texturing from the render framebuffer. 2014-01-14 01:14:06 -08:00
raven02
271b680737 When mipmap disabled , maxlevel always 0 (set earlier) 2014-01-11 16:26:36 +08:00
Unknown W. Brackets
0f5aae9c49 Cleanup differences in DirectX9 texcache code. 2014-01-01 15:49:10 -08:00
Unknown W. Brackets
e477c50ea1 Fix #4922, kill age checks in texcache. 2014-01-01 15:49:10 -08:00
Unknown W. Brackets
e24f45b9a4 Add ini options to configure the texture cache. 2014-01-01 15:49:09 -08:00
Henrik Rydgard
91531a9792 Get rid of "ATIClampBug", it's not a bug, it's just lack of full non-pow-2 texture support 2014-01-02 00:09:01 +01:00
Henrik Rydgård
079d9c04dd Merge pull request #4942 from unknownbrackets/warnings
Fix some warnings, possibly fix Symbian
2013-12-30 00:28:48 -08:00