Unknown W. Brackets
c7e6f051e4
Split the texture application into two stages.
...
The latter simply applies the texture.
This makes our IsAlphaTestTriviallyTrue() check correct.
2015-09-13 09:30:39 -07:00
Unknown W. Brackets
5360422310
Defer bind of shader blend copy until after verts.
2015-09-13 06:52:47 -07:00
Henrik Rydgard
ab3468ea02
Move native/gfx_es2/gl_state.cpp/h into GPU/GLES/GLStateCache.cpp/h
2015-09-06 13:45:17 +02:00
Henrik Rydgard
1c0158bfe6
Further reduce the use of ifdef USING_GLES2 and friends.
2015-09-05 23:39:10 +02:00
Henrik Rydgard
5b2ffd1434
Fix some naming, remove NV_draw_texture, move decisions out
2015-09-05 22:11:28 +02:00
Henrik Rydgard
f524049277
Move more GPU feature checks upfront. Re-check when exiting settings menu.
2015-09-05 21:23:58 +02:00
Henrik Rydgard
a71be3f75f
Start moving GPU feature compatibility decisions to startup
...
(and a single, cache-friendly flag field)
2015-09-05 19:58:47 +02:00
Henrik Rydgard
9e18fb7e90
Round Z in the vertex shader to match a 16-bit Z buffer.
...
However this inexplicably does still not solve the Phantasy Star issue!
2015-08-26 15:25:21 +02:00
Henrik Rydgard
1e8a1b801f
Rename viewportX1/X2 etc to scale + center, which is what they actually are.
2015-08-26 15:24:35 +02:00
Henrik Rydgard
29fc9e81a4
Use the gstate.getViewport* accessors.
2015-08-26 15:24:35 +02:00
Henrik Rydgard
d7f4c47c22
Refactor: Even more getting rid of gstate access in the framebuffer manager.
2015-08-05 12:13:14 +02:00
Henrik Rydgard
d26b74d4d6
GPU refactor: Move accesses to gstate out of leaf functions
2015-08-05 01:03:49 +02:00
Henrik Rydgard
b5f7d9346f
Minor cleanups in GPU
2015-07-29 13:08:02 +02:00
Henrik Rydgard
2e26a4798e
Scale the frame profiler graph dynamically
2015-05-24 23:45:37 +02:00
Henrik Rydgard
26624709f7
Hook up the frame profiler to a few measurements
2015-05-24 23:45:36 +02:00
Henrik Rydgard
95b6b50fd5
Disable screen rotation in non-buffered rendering (as it won't worK)
2015-05-12 22:44:18 +02:00
Unknown W. Brackets
42bcea7b41
Report when minz/maxz is used in an effective way.
...
As long as it's outside the viewport it should be clipped anyway.
One concern is, does clipenable affect z? A game could depend on that.
2015-04-17 12:59:59 -07:00
Unknown W. Brackets
5fa3bf0eb9
Move the viewport transform to the proj matrix.
...
The viewport has an implementation defined maximum size. On some devices,
it's as low as 2048 or 4096.
Tales of Destiny 2, for example, uses a large viewport, which may be
outside this range at 1x or 2x on such devices. This makes it work much
better. It may also have better subpixel precision.
2015-03-22 23:35:24 -07:00
Unknown W. Brackets
08a1bb8796
Add support for ARM_shader_framebuffer_fetch.
2015-03-07 16:11:43 -08:00
Unknown W. Brackets
9c3ccc97a2
Support EXT_shader_framebuffer_fetch.
...
We only supported NV_ before. Not tested on any supporting device, but
this is primarily found on PowerVR devices. This may allow them to
perform effects (like min/max/etc.) more accurately and quicker.
2015-03-07 12:07:53 -08:00
Unknown W. Brackets
383f894db7
d3d9: Make blending more like GL's recent changes.
2015-03-01 10:31:43 -08:00
Henrik Rydgård
0d69576810
Merge pull request #7515 from unknownbrackets/gpu-minor2
...
For 5551 buffers, force stencil mask to 1/0
2015-02-26 21:56:19 +01:00
Unknown W. Brackets
a3342a72d7
Fix copy/paste mistake from 808eeb3a25
.
...
I'm pretty sure this was not intentional.
2015-02-23 11:06:44 -08:00
Unknown W. Brackets
b5126f7236
Use ONE/ZERO in place of CONSTANT_ALPHA if okay.
2015-02-23 09:58:46 -08:00
Unknown W. Brackets
3ff51588f7
Avoid using constant color when blending.
...
If it's just ONE/ZERO or etc., we can keep those constants. May be
faster, and apparently less buggy in some drivers.
2015-02-23 08:37:00 -08:00
Unknown W. Brackets
9d5ae2b336
For 5551 buffers, force stencil mask to 1/0.
...
4444 it would also be ideal to spread the bits, but that gets a bit
complicated. 5650 probably doesn't matter.
2015-02-22 19:11:11 -08:00
Unknown W. Brackets
4c15afa905
Allow multiple replacements on the same func.
...
Or, more specifically, hooks. This allows enter and exit on the same
func, which can obviously be useful for debugging.
2015-02-21 15:48:09 -08:00
Lioncash
dc436aebe8
GPU: Get rid of unused variable warnings
2014-12-12 09:29:41 -05:00
Unknown W. Brackets
67a54504c7
Oops, left the comment in the wrong one.
2014-09-24 23:11:47 -07:00
Unknown W. Brackets
d1e992736b
Simplify the viewport code a bit.
2014-09-24 23:09:09 -07:00
Unknown W. Brackets
c88b66b308
d3d9: Emulate some logic ops with blending.
...
This makes Brave Story's intro visible. Also add for GLES2/GLES3, but
doesn't seem to work on GLES2.
2014-09-23 21:13:47 -07:00
Unknown W. Brackets
4e50eed85b
d3d9: Specify tex stage for binding framebuf color.
2014-09-21 12:11:17 -07:00
Unknown W. Brackets
33ac30218a
Bind the alphatest tex after we know vert alpha.
...
Before we sometimes thought alpha test was trivially true when it wasn't.
2014-09-10 23:43:48 -07:00
Unknown W. Brackets
94c1271761
Add an experiment with using a texture for tests.
...
Using an option for now so it's easy to test, if it works well we can
maybe remove the option.
2014-09-07 10:04:57 -07:00
Unknown W. Brackets
39ee5bb6b7
Support stencil incr/decr even without blending.
2014-08-24 10:24:30 -07:00
Unknown W. Brackets
757f10d47a
Oops, equation not func.
2014-08-24 10:24:29 -07:00
Unknown W. Brackets
90746fb5b2
Support INVERT with stencil alpha replacement.
2014-08-24 10:24:28 -07:00
Unknown W. Brackets
0018638458
Support INCR/DECR with stencil value replacement.
2014-08-24 10:24:28 -07:00
Unknown W. Brackets
a43c3771a3
More correctly blend when hitting the frame cap.
...
If we hit too many blits per frame, fall back correctly in the shader.
2014-08-18 23:20:48 -07:00
Unknown W. Brackets
5d1b1ab547
Dirty the fixed color when premultiplying.
2014-08-18 23:20:46 -07:00
Unknown W. Brackets
24a0dd12ef
Avoid recalculating replaceBlend so many times.
2014-08-18 23:20:45 -07:00
Unknown W. Brackets
44620c92ed
Premultiply for doubled alpha blending if possible.
...
This makes the effect more accurate where the values were being clamped
before. Some obscure methods of blending may be slower.
2014-08-18 23:20:45 -07:00
The Dax
ee9eb00656
One last buildfix (please correct if GL_FUNC_ADD is wrong, I just wanted buildbot to work again). https://github.com/hrydgard/ppsspp/pull/6679 should replace this soon.
2014-08-05 00:34:36 -04:00
Unknown W. Brackets
cde9746dab
Buildfix.
2014-08-04 21:09:58 -07:00
Unknown W. Brackets
3008b4f8a8
Also do it here, although may be removed soon.
2014-08-04 19:33:58 -07:00
Unknown W. Brackets
8d6a5fd694
Use correct stencil values with non-add blending.
...
Otherwise, we get the min/max/etc. value instead.
2014-08-04 19:16:10 -07:00
Unknown W. Brackets
0279aa154c
Use glStencilMask() to partially simulate amask.
...
Alpha won't be correct, though.
2014-08-03 21:48:18 -07:00
Unknown W. Brackets
6e751f8092
Use shader blend for min/max when unsupported.
2014-06-17 00:20:06 -07:00
Unknown W. Brackets
640c58a892
Reorganize alphablend state mapping logic.
2014-06-17 00:20:05 -07:00
Unknown W. Brackets
256436b594
Support fixed/fixed blending without a blit.
2014-06-17 00:20:04 -07:00