Commit Graph

60 Commits

Author SHA1 Message Date
Henrik Rydgard
16f4622ac7 Remove cached light variables to reduce work when parsing DLs.
Also removes some duplication between GL and the inactive D3D code.
2014-04-21 12:51:19 +02:00
Unknown W. Brackets
bb2fb12edd Inline SetupVertexDecoder() in SubmitPrim().
Everything SubmitPrim() calls is expensive...
2014-04-05 01:25:04 -07:00
Unknown W. Brackets
e7639f666c Ensure stuff run on every prim are inlined.
These both get a ton of calls and show up on profiles.
2014-03-30 00:42:26 -07:00
Unknown W. Brackets
a4327702f1 Reduce some includes under GPU/. 2014-03-29 16:51:38 -07:00
Henrik Rydgard
2c76e6d023 Correctly keep track of "full alpha" in vertices (x86 jit only). 2014-03-24 11:19:44 +01:00
Henrik Rydgard
20d480a374 Minor GPU code cleanups 2014-03-23 16:32:38 +01:00
Henrik Rydgard
8b92dcea47 Transform: Compute the "DCID" (draw call ID) incrementally instead of an extra pass. 2014-03-23 01:51:51 +01:00
Unknown W. Brackets
473fb866e6 softgpu: Implement vertex preview.
And move ConvertMatrix4x3To4x4() into a common place since there were
differing implementations, which was only confusing.
2013-12-29 13:45:10 -08:00
Unknown W. Brackets
d35717f5a8 Also report the vertex decoder jit to verysleepy.
Can use the same methods to support other platforms.
2013-11-30 19:20:22 -08:00
Unknown W. Brackets
fcc77f525f Implement some basic vertex previews on prim.
3D doesn't work correctly (sometimes it does...)  2D should be working.
2013-11-17 13:27:50 -08:00
Henrik Rydgard
3b63ef7005 Remove the SubmitPrim param forceIndexType, optimize BBOX more. 2013-11-14 14:03:03 +01:00
Henrik Rydgard
46313ced55 Prepare transform pipeline for step by step decoding 2013-11-13 18:10:57 +01:00
Henrik Rydgard
810b1a061f Vertex decoder JIT for x86 and x64. Handles the most common vertex formats. 2013-11-03 15:27:12 +01:00
Unknown W. Brackets
1e65a691f4 Cap the number of vertexes per flush.
Might not be realistic, but we crash if we go over.  Pretty unlikely to
happen in real games, but I suppose not impossible.  Happens in the vertex
speed demo (#3106.)
2013-10-27 14:43:58 -07:00
Henrik Rydgård
6d6ea77df2 Add comments (speedup plans for GLES) and reformat a bit (no changes) 2013-10-09 11:56:46 +02:00
Henrik Rydgard
4c2c015774 Expose the experimental "bPrescaleUV" as "Texture Coord Speedhack"
It's actually quite beneficial in some games, can substantially reduce
glUniform4fv calls.

Also throw in a second shot at glDrawRangeElements.
2013-10-08 22:59:40 +02:00
Henrik Rydgard
4cba4efbba Try to fix scaling of generated UV texcoords on splines. 2013-09-24 14:14:05 +02:00
Henrik Rydgard
bd8cb4b02d Start work on implementing bbox, add a comment with some thoughts.. 2013-09-24 14:14:05 +02:00
Henrik Rydgard
2b66a850be More spline/bezier optimization. Enable real splines. Add option "Low quality spline/bezier curves". 2013-09-24 11:14:49 +02:00
Henrik Rydgard
82e5787bbe Preparation for proper spline/bez: Convert control points to a simple format.
The bezier/spline code will no longer need to handle morph and splines,
when it's finally written. This is done by pre-skinning in software and
pre-decoding to get rid of the morph.
2013-09-21 23:37:14 +02:00
Henrik Rydgard
cc6681cd0b Compile Ced's DX9 GPU on Windows. Not hooked up yet.
This needs work, has several problems that must be fixed to run on Windows.

Ced, you'll have to fix up your xb project file a bit, sorry.
2013-09-15 12:52:44 +02:00
Henrik Rydgard
a418dd0566 Spline: Don't create twice the number of triangles we need. 2013-08-30 10:25:37 +02:00
Florent Castelli
c6932e2675 Use GEPrimitiveType everywhere instead of stupid integer 2013-08-25 19:51:06 +02:00
Unknown W. Brackets
c141e94fe9 Use gstate.* accessors in a few more places. 2013-08-24 11:34:35 -07:00
Henrik Rydgard
772f9cc585 Adapt the basic spline code from the softgpu to the GL code.
Fixes (but not perfectly) games that make simple use of splines like LocoRoco.
(The locos are a little jagged)
2013-08-23 00:33:18 +02:00
Henrik Rydgard
8e2c485373 Some microoptimization 2013-08-11 22:12:14 +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
Henrik Rydgard
61d419b2ec Don't scan for something to decimate every frame. Actually costs perf. 2013-08-01 00:13:58 +02:00
Unknown W. Brackets
2f94977efe Don't include gfx/gl* outside the OpenGL GE. 2013-07-29 22:47:38 -07:00
Henrik Rydgard
50a2d1b87f More work on prescaled UV 2013-07-28 00:33:51 +02:00
Henrik Rydgard
eaf5cc169d TransformPipeline: Minor memory optimization and a prim sanity check 2013-07-22 19:22:38 +02:00
Henrik Rydgard
5c1425f900 Detect clears, replace with glClear(). Needs more testing, disabled for now. 2013-05-09 09:47:39 +02:00
Henrik Rydgard
70bb4e1c85 Fudge GPU cycle estimates to let GoW runs fast and GTA smooth. See comments for the horrible details.
I hope this doesn't affect other games adversely.
2013-04-20 20:21:12 +02:00
Henrik Rydgard
d96c588288 Cache vertex decoders. No big boost now, but opens for optimizing them more, and lets us keep stats of the most common ones. 2013-03-24 12:28:42 +01:00
Henrik Rydgard
cf458dba60 gpu: Add support for scissor rectangle 2013-03-15 22:24:16 +01:00
Unknown W. Brackets
485bcac757 Actually, these are draws. Increase to 24. 2013-02-11 23:41:31 -08:00
Unknown W. Brackets
634b9112e4 Cache vertexes based on frames not draws. 2013-02-10 14:20:57 -08:00
Henrik Rydgard
aef2376b34 Merge branch 'master' into framebuffer-texture
Conflicts:
	GPU/GLES/TextureCache.cpp
2013-02-09 21:18:46 +01:00
Henrik Rydgard
0ca279e81d Don't hash vertex buffers every frame (TCP-style backoff up until every 16th)
Saves quite a bit time otherwise spent in CityHash, blowing the dcache every time.
2013-02-06 00:43:37 +01:00
Henrik Rydgard
a0c0d6a977 Initial support for texturing from framebuffers. 2013-02-01 00:18:23 +01:00
Henrik Rydgard
3b681d3854 Make GLES_GPU own texturecache 2013-01-30 20:40:26 +01:00
Henrik Rydgard
611fb3536f Try to use glDrawArrays in more situations, saving us a buffer. Misc. 2013-01-20 21:52:54 +01:00
Henrik Rydgard
201e1ea0bc Vertex caching now works for HW transform + VBO, not including RECTANGLE primitives yet. 2013-01-19 19:22:15 +01:00
Henrik Rydgard
8ff96bbcd8 Defer vertex decoding until flush. Track draw calls so that they can be cached later. 2013-01-19 17:05:50 +01:00
Henrik Rydgard
7271e3fcd5 Fix fog and stencil buffer clearing. The latter fixes the sky in MotoGP. 2013-01-14 20:44:11 +01:00
Henrik Rydgard
6c9d28205d Disable the LoggingDeadline. Uncomment if you want to use it. 2013-01-12 12:52:00 +01:00
Henrik Rydgard
5a2fc722f6 VBO buffer rotation. Helps a little on my Nexus S but perf is still bad. 2013-01-11 19:03:16 +01:00
Henrik Rydgard
479d1f5111 Draw using VBO. Add option, make default true. 2013-01-10 12:54:36 +01:00
Henrik Rydgard
f8ae18a130 "Fix" bezier the old way (puzzle bobble works again at least). 2013-01-04 09:54:19 +01:00
Henrik Rydgård
e2cc226d0d Just some cleanup of GPU code 2012-12-28 20:54:00 +01:00