Henrik Rydgard
2292531dd6
Small optimization for Disable Alpha Test - makes sure we don't generate the same shader twice.
2013-10-22 15:15:13 +02:00
Henrik Rydgard
bf59f3db73
Add ugly hack setting for PowerVR to disable alpha test
...
Causes glitches but the speedup is truly massive in some games so I relent :/
Please do not report graphics bugs when this is enabled...
Future: Maybe remove this setting except on PowerVR?
2013-10-22 13:00:19 +02:00
Henrik Rydgard
80702109f5
Move gpu vendor detection to native with the rest of the gl init.
...
Also disable vertical layout for mainscreen entirely.
2013-10-16 00:48:44 +02:00
Henrik Rydgard
f645988b8f
More precision annotations in shader generators, other microoptimizations
2013-10-07 20:15:00 +02:00
Henrik Rydgard
99a7ff0973
Fix shader generation issue for desktop PowerVR chips - are there still such things???
...
Seen in our automatic reports.
2013-09-29 11:17:12 +02:00
raven02
8564d146c8
Rename roundTo255th to roundTo255thf
2013-09-28 00:06:18 +08:00
raven02
50edfb75d0
Add reporting for color test function
2013-09-10 09:20:50 +08:00
Unknown W. Brackets
655a7b4973
Check for a stencil test when ignoring alphatest.
2013-08-29 22:14:51 -07:00
Henrik Rydgard
766731db8e
Add back the default case to the triviallytrue functions.
2013-08-29 20:39:23 +02:00
raven02
65d836c5dd
Fix FF2 issue #2857
2013-08-29 22:50:31 +08:00
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