Commit graph

197 commits

Author SHA1 Message Date
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
Unknown W. Brackets
fdd759909b Auto-disable shader blending after 48 per frame.
Should prevent possible massive slowdowns from log reporting.
2014-06-15 13:48:06 -07:00
Unknown W. Brackets
030b562eb9 Support render-to-offset within a framebuffer.
Fixes #6324.
2014-06-14 17:08:41 -07:00
Unknown W. Brackets
1d9f7b04fc Implement in-shader blending on gles2 / gl2.
I'm sure it'll be slow, though...
2014-06-13 23:42:59 -07:00
Unknown W. Brackets
1bd44fd4e2 Typo. 2014-06-08 23:21:16 -07:00
Unknown W. Brackets
63e0d47de6 Report unsupported RGB and a/stencil masks. 2014-06-08 22:45:59 -07:00
Unknown W. Brackets
865941a66d Ignore needShaderTexClamp when not texmapping. 2014-06-08 14:27:57 -07:00
Unknown W. Brackets
cc841bbe4c Apply tex wrap/clamp in shader for render-to-tex.
Fixes graphical artifacts in Wild Arms XF (which depends on how you get
there, because it's based on the size of the framebuffer.)
2014-06-07 13:13:58 -07:00
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
raven02
608d43898d Remove AlphaMaskHack 2014-05-27 22:11:18 +02:00
Unknown W. Brackets
8f9a2b9882 Unbind the fbo texture when it's not used.
Just in case there are problems with decimating it or etc.
2014-05-27 01:45:20 -07:00
Unknown W. Brackets
f80dee4164 Remove outdated comment.
Was all lies.
2014-05-27 01:45:19 -07:00
Unknown W. Brackets
b02fe1db3d Log when blitting a ton per frame, it can get slow. 2014-05-27 01:45:18 -07:00
Unknown W. Brackets
4b978ed6f9 Apply unsupported blending modes in the shader.
This handles unsupported fixed color combinations, alpha doubling, etc.
Where possible, tries to avoid it - it means using a blit (without the
framebuffer fetch extension), which can slow things down a lot with tons
of drawcalls.
2014-05-27 01:45:17 -07:00
raven02
e0e1a6b217 Only set depth update flag when depth write is enabled 2014-04-30 20:00:42 +08:00
Henrik Rydgard
cf4887ecdd Update native to detect the EXT and NV extensions separately. Only look at the NV one. 2014-04-18 19:30:10 +02:00