Commit Graph
374 Commits
Author SHA1 Message Date
Unknown W. Brackets 0846673dc3 Track temporary-use FBOs all in FramebufferManager.
This way it's easier to manage their lifecycle.
2014-06-01 01:03:43 -07:00
Unknown W. Brackets 4195eac04f Get rid of depalFBOs when overwriting textures.
Just in case they are not always used as framebuffers.  We set to 0 later
anyway.
2014-06-01 01:03:04 -07:00
Unknown W. Brackets 580143e5e2 Disable vertex arrays before depal as well. 2014-05-31 22:07:42 -07:00
Henrik Rydgard 44d9af9222 Hopefully fix the Manhunt red/green swap 2014-05-27 22:22:56 +02:00
Unknown W. BracketsandHenrik Rydgard 29a9ff369e Make a note when we need to reset the shader.
Hmm, not sure this is the cleanest way.
2014-05-27 22:12:25 +02:00
Unknown W. BracketsandHenrik Rydgard 14c081904c 5650 is also simple alpha. 2014-05-27 22:12:24 +02:00
Unknown W. BracketsandHenrik Rydgard 5f99f663ef Avoid duplicating an FBO when depaletizing it. 2014-05-27 22:12:23 +02:00
Unknown W. BracketsandHenrik Rydgard 5ac6fae8bb Validate framebuffer clut shaders on use.
When their parameters are actually the ones we are going to use.
2014-05-27 22:11:20 +02:00
Unknown W. BracketsandHenrik Rydgard aa32bd6aa4 Also disable the logic op when rendering FB w/clut. 2014-05-27 22:11:18 +02:00
Henrik Rydgard 7062da0483 Fix some more issues. The snow scene in FF Type 0 now looks B/W instead of broken. 2014-05-27 22:10:36 +02:00
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. BracketsandHenrik Rydgard 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