Commit graph

83 commits

Author SHA1 Message Date
raven02
0b98f1f71b Should keep default case 2013-08-28 15:10:40 +08:00
raven02
0f55a6e042 Add GE_COMP_NEVER for alpha/color test to return false. 2013-08-28 14:33:15 +08:00
Henrik Rydgard
dcc63fd716 PowerVR: work around what appears to be a driver bug with equality test + discard, but not completely sure that discard isn't just broken.
If this change breaks something, it was probably already broken, and it's PVR-only.
2013-08-28 00:12:49 +02:00
Henrik Rydgard
dd667156f5 Oops 2013-08-27 22:14:13 +02:00
Henrik Rydgard
711d3ff52c Speedup a few 2D games on mobile by eliminating the alpha test in some conditions
That is, if there's no depth testing/writing, and the alpha equation will produce the same result as the alpha test (when the alpha test is >= 0 or != 0 and the blend func is safe), we turn off the alpha test.
2013-08-27 21:48:03 +02:00
Henrik Rydgard
6360fcb0ae Add some stats to get some idea of much alpha tested drawing we do.
Turns out it's one hell of a lot and we really should fix this by
checking both vertices and textures to deduce when we can just skip
alpha testing safely, probably quite often.

I care about this because alpha testing drawing is very expensive
on some mobile chips.
2013-08-27 21:01:17 +02:00
Henrik Rydgard
edb6e5a54c Fix fallthough bugs in isAlphaTestTriviallyTrue 2013-08-24 11:56:39 +02:00
Henrik Rydgard
416f0c56e8 Experiment: Use glBlendFuncSeparate to not change dest alpha when blending.
Fixes Persona blending issues.
2013-08-22 19:14:04 +02:00
raven02
9931e5c5cc Fragment : Set doTextureAlpha = gstate.isTextureAlphaUsed(); 2013-08-20 21:32:07 +08:00
Unknown W. Brackets
12c5f5e1e6 Use constants for other uv gen mode usages.
And also change them to treat 3 as coords as well.
2013-08-19 00:43:54 -07:00
Unknown W. Brackets
46805b37cb Use the texture-related GE accessors. 2013-07-21 19:45:04 -07:00
Unknown W. Brackets
988614f6d0 Use lightning GE state accessors where appropriate. 2013-07-21 19:44:30 -07:00
Unknown W. Brackets
c0da6b97c5 Add and use some color/alpha test accessors. 2013-07-21 19:44:30 -07:00
raven02
7ac496529b Vendor Based Alpha and Color Testing 2013-07-21 01:14:36 +08:00
raven02
44fe09f03e Fix black box in Dainiji_Super_Robot_Taisen_Z_Hakaihen 2013-07-20 01:55:12 +08:00
Henrik Rydgard
1abd9ff2d3 Change the alpha test rounding offset to be just under half. Fixes some disappearing things.. 2013-07-18 19:19:52 +02:00
Henrik Rydgard
d76c45411d alpha test: fix typo, add back rounding offset 2013-07-18 01:02:21 +02:00
Henrik Rydgard
3e24949f8a Try different approach to rounding the inputs to the alpha test. Appears to fix some problems on PowerVR. 2013-07-17 23:03:21 +02:00
Henrik Rydgard
79110638c9 Unbreak things (silly mistake in last commit, remove *2.0 factor which just can't be right) 2013-07-06 22:50:06 +02:00
Henrik Rydgard
9928bd762c Specify alphacolorref as highp 2013-07-06 22:44:18 +02:00
raven02
64de3c428e Minor cleanup 2013-06-28 21:43:12 +08:00
Unknown W. Brackets
cd213e655b Add some debug code for finding textures. 2013-06-22 10:35:34 -07:00
Henrik Rydgard
cdef31f9fc Turn off the use of uniform arrays in shaders as some devices don't like them, and the speedup seems to be very small if any. 2013-05-26 14:03:02 +02:00
Henrik Rydgard
199907b9ed Shader simplification - well, more of it. Hopefully this helps the mali problems a bit more. 2013-05-22 15:52:10 +02:00
Unknown W. Brackets
03f3f99e39 Don't use ivec in the fragment shader.
Attempt at #1777.  Needs the + 0.5 to round properly on mobile.
2013-05-12 13:09:02 -07:00
Unknown W. Brackets
5ecacd6bc8 Don't double alpha when alphablend is disabled.
Probably doesn't affect much.
2013-05-12 09:31:23 -07:00
Unknown W. Brackets
c937a22f26 Only double the color with color doubling.
Not the alpha.
2013-05-09 23:31:53 -07:00
Unknown W. Brackets
47c404b925 Clean up some comments. 2013-05-09 01:19:55 -07:00
Unknown W. Brackets
4a30221c95 Ignore texfunc RGBA when texture is full alpha.
This allows us to skip some work in the fragment shader.
2013-05-08 23:14:20 -07:00
Unknown W. Brackets
ebf1b57834 Rename round255f to roundAndScale255f.
Seems to verbose to me, but no one can think it doesn't scale or round
this way.
2013-05-07 08:02:27 -07:00
Unknown W. Brackets
f2b4c4a0bc Pre-round the colortest/alphatest reference val. 2013-05-07 07:52:49 -07:00
raven02
eba452f1ba Add back round255f and round255v to u_alphacolorref 2013-05-07 21:52:40 +08:00
raven02
3744f6ee28 Fix colortest rounding using vec3 2013-05-07 19:53:48 +08:00
raven02
274b9c712c Add rounding to equality check for ColorTest 2013-05-07 16:47:53 +08:00
Unknown W. Brackets
9537be9ebb Don't double src alpha when it's not safe to do so.
Fixes LittleBigPlanet vignette.
2013-05-03 01:10:59 -07:00
Unknown W. Brackets
8f27d03af3 Double alpha at least for a known case.
Makes Popolocrois look much better now.
2013-04-30 00:04:20 -07:00
Unknown W. Brackets
3a769bb047 Do alpha test equal compares using rounding.
Fixes accuracy problems, Popolocrois shows things now.
2013-04-29 01:19:23 -07:00
Henrik Rydgard
e3f183bc28 ColorDouble needs to be in the fragment shader ID 2013-04-27 18:33:56 +02:00
Henrik Rydgard
c04ce5a64e Implement projective texture mapping. It's not used a great deal but good to have. 2013-04-17 21:41:47 +02:00
Henrik Rydgard
ea11c36091 Fix a vshader id bit collision, avoid color test when set to 'ALWAYS', zeroinitialize dls. 2013-04-15 22:57:54 +02:00
raven02
3252eb6554 Fragment Shader : use mix() for decal/blend 2013-04-08 22:48:40 +08:00
Henrik Rydgard
e246ffe20c fragment shader: RGBA DECAL does make more sense this way 2013-04-07 20:37:19 +02:00
raven02
b03dfeb8a6 Clean up if-else 2013-04-06 22:28:38 +08:00
raven02
34f6a7512f Miss parenthesis in GE_TEXFUNC_BLEND 2013-04-06 22:24:04 +08:00
BeaR
da1b345cd4 HW T&L: Change unlitcolor initialization and cleanup fragmentshader formatting 2013-04-02 12:24:22 +02:00
raven02
6396324f57 Add few isEnabled() in GPUState for Alpha/Color/Lighting/Texture Test 2013-03-27 18:35:54 +08:00
raven02
68faecd87c minor cleanup only 2013-03-25 22:57:40 +08:00
raven02
51fdd2a665 Enable ColorTest 2013-03-25 22:36:56 +08:00
Henrik Rydgard
724a7c8c93 Revert latest fliptexture hack. This seems to work better. 2013-03-11 20:26:47 +01:00
Henrik Rydgard
de469e77a4 Fix silly typo breaking alpha test in many cases. Make some log VERBOSE. 2013-03-11 19:40:47 +01:00