Commit Graph
375 Commits
Author SHA1 Message Date
Unknown W. Brackets c2ccfd5629 Stop stretching things to the FBO size.
Instead, draw in the top corner.  This way, even if framebuffers get
smaller things stay consistent.
2014-06-01 21:20:04 -07:00
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