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