Commit Graph
102 Commits
Author SHA1 Message Date
raven02 7f080b9958 Add isAntiAliasEnabled() 2013-08-30 20:46:36 +08: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
Unknown W. Brackets cd70250d8c Use more accessors, simplify softgpu colortest. 2013-08-24 11:34:38 -07:00
Unknown W. Brackets 5ab04a3076 Centralize CLUT handling form gstate values. 2013-08-24 11:34:37 -07:00
Unknown W. Brackets 7f6cf3ec29 Add a few gstate accessors for texture type stuff. 2013-08-24 11:34:37 -07:00
Unknown W. Brackets 0a217a1254 Use accessors better for block transfers. 2013-08-24 11:34:36 -07:00
Unknown W. Brackets c141e94fe9 Use gstate.* accessors in a few more places. 2013-08-24 11:34:35 -07:00
Henrik Rydgard dfb91d4532 Track number of GPU commands executed per call level.
This is to get an idea if it would be beneficial to compile and cache display lists. Looks like it would be for some games, for example in GTA it's often 20k/80k/20k commands per frame - that is 100k executed commands per frame that could potentially just be executed instead of interpreted. Likewise in Wipeout. Of course, this means yet another cache with invalidation issues etc..
2013-08-23 11:29:55 +02:00
raven02 282d072793 Add isTextureAlphaUsed() 2013-08-20 21:28:16 +08:00
Tony Wasserka 2962d242cb softgpu: Implement skinning. 2013-08-16 23:49:14 +02:00
Tony Wasserka 11a94e1d14 softgpu: Implement spline surface drawing (without patch subdivision). 2013-08-16 23:49:13 +02:00
Tony Wasserka d2f30961af softgpu: Make perspective correct uv mapping code more readable and implement projection mapping. 2013-08-16 23:49:12 +02:00
Tony Wasserka 62b384e052 softgpu: Lots of clearmode fixes. 2013-08-16 23:49:11 +02:00
Tony Wasserka e1216e91cc softgpu: Implement texture scaling, texture offset and texture coordinate wrapping/clamping. 2013-08-16 23:49:10 +02:00
Tony Wasserka d91d5c087b GPUState: Fix depth buffer stride getter. 2013-08-16 23:49:09 +02:00
Tony Wasserka a013aad6f1 softgpu: Fix incorrect depth buffer write base address.
softgpu: Implement framebuffer pixel formats different than RGBA8888.
softgpu: Move texel decoding functions to a separate header.
2013-08-16 23:49:09 +02:00
Tony Wasserka 0e1e8fe331 softgpu: Clean up depth testing code. 2013-08-16 23:49:02 +02:00
Henrik Rydgard 96373132bb Android buildfix 2013-08-14 20:42:13 +02:00
raven02 fad8b77044 Merge remote-tracking branch 'upstream/master' into patch-13 2013-08-14 07:29:56 +08:00
raven02 c2a86d647f Fix wrong size generated of FBO for some games which uses it as render-to-texture 2013-08-12 02:20:55 +08:00
Unknown W. Brackets e7c7c5b3db Add a setting to launch a separate CPU thread. 2013-08-09 22:41:30 -07:00
Henrik Rydgard bc00a7e302 Process frame timing on frame boundaries instead of flips. Frameskipping works better in many games. 2013-08-07 23:32:28 +02:00
Henrik Rydgard 51ffdfa132 Rename gpuStats.numFrames to numVBlanks. Switch to using numFlips for things like cache expirations. 2013-08-07 22:34:00 +02:00
raven02 c4a3638183 Add gstate.isClearModeDepthWriteEnabled/ColorMask/AlphaMask() 2013-08-03 14:56:37 +08:00
raven02 0daa550538 Add getWeightMask() 2013-07-30 23:55:11 +08:00
raven02 50f98fe498 Add texture level parameter 2013-07-30 23:23:02 +08:00
raven02 75c9ce2498 GPUstate :Add getTextureWidth() & getTextureHeight()
and
2013-07-30 23:09:22 +08:00
Unknown W. Brackets 2f94977efe Don't include gfx/gl* outside the OpenGL GE. 2013-07-29 22:47:38 -07:00
raven02 adf0680897 gstate code cleanup 2013-07-29 17:25:07 +08:00
Henrik Rydgard 50a2d1b87f More work on prescaled UV 2013-07-28 00:33:51 +02:00
Unknown W. Brackets 4cfa074546 Use GE state accessors in the texcache. 2013-07-21 19:45:05 -07:00
Unknown W. Brackets b2927213c7 Use stencil GE state accessors. 2013-07-21 19:45:04 -07:00
Unknown W. Brackets 46805b37cb Use the texture-related GE accessors. 2013-07-21 19:45:04 -07:00
Unknown W. Brackets abd9dc6137 Use the light computation/type GE accessors. 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
neobrain 3ca0c5397f Add logic op/color masking GE state accessors. 2013-07-21 19:44:29 -07:00
neobrain e6e7dd66d0 Implement some stencil test GE state accessors. 2013-07-21 19:44:29 -07:00
Florent Castelli cc180fa204 Add type safe getter for texture and clut format fields. 2013-07-21 19:44:28 -07:00
neobrain a70220a1d5 Add clut GE state accessors. 2013-07-21 19:44:28 -07:00
neobrain 01824e44ae Add some texture-related GE accessors. 2013-07-21 19:44:23 -07:00
neobrain 4c74cafa51 Add some more lighting related accessors. 2013-07-21 19:43:34 -07:00
neobrain abca8f6c87 Add some more GE state accessors for light/etc. 2013-07-21 19:43:34 -07:00
neobrain a40741798c Add accessors for several lighting related values. 2013-07-21 17:43:08 -07:00
raven02 7ac496529b Vendor Based Alpha and Color Testing 2013-07-21 01:14:36 +08:00
Henrik Rydgard 4c913c097e new attempt at sizing the framebuffers, similar to what raven02 said 2013-07-10 21:59:43 +02:00
PGGB eaa8813d44 Remove relative gl_common.h include directives 2013-07-10 19:28:15 +02:00
Sacha b39a572043 Buildfixes.
Fix C++11 usage.
Remove redundancy.
Fix st_*time re-usage.
2013-06-02 13:26:39 +10:00
Unknown W. Brackets 9c85bd92e4 Show statistics for GPU cycles executed per frame. 2013-05-31 10:40:16 -07:00
Unknown W. Brackets cb217189c5 Keep track of whether a texture has alpha.
This way we know what sorts of blending we even have to do.  Commonly,
textures don't have any real alpha.

Not yet used for anything.
2013-05-08 23:14:19 -07:00