Henrik Rydgard
39b632b279
Copy the stencil value in REPLACE mode to fragment alpha (but only when it's safe)
...
This is cheap but incomplete.
To do it more "right", we need multipass when blending or alpha test is enabled, ugh. That's for later.
Anyway, this improves the glow situation in Wipeout somewhat. Still lots of stuff that glows that shouldn't, but a little less overwhelmingly bright.
2013-12-03 00:13:21 +01:00
Henrik Rydgård
4352d720d8
Let's not use #define in GLSL ES shaders.
...
There are rumours that Vivante chips hate these.
2013-10-29 11:37:16 +01:00
Henrik Rydgård
0471a8c886
Only set fogdepth to highp on PowerVR. May fix #4333
2013-10-28 15:38:25 +01:00
Unknown W. Brackets
2c56ccef18
Make sure frag shader ID matches generated code.
...
Before, we would use an id with alphatest on, but not actually compile in
alphatest. Or, we would use a shader with alphatest, when we actually
could compile it out.
2013-10-26 02:19:02 -07:00
Henrik Rydgard
5d47aabb08
Seems we need high precision for fog on PowerVR. #4287 might be fixed by this.
2013-10-22 19:56:06 +02:00
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