Commit Graph
53 Commits
Author SHA1 Message Date
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
Henrik Rydgård d95dbca9be Cleanup GPU init/shutdown a bit 2012-12-25 22:42:19 +01:00
Henrik Rydgård 7c64f9c61e Tiny optimization - only init the vertex decoder on vertex type change 2012-12-25 22:39:37 +01:00
Henrik Rydgård 9dce8b09a4 Move vertex arrays from globals to heap. 2012-12-25 22:39:37 +01:00
Henrik Rydgård d21647bbb9 Split code from GLES_GPU to TransformDrawEngine, cleanup 2012-12-25 22:39:37 +01:00
Henrik Rydgard 2e9daa5f89 All drawing is now indexed lists, through IndexGenerator. 2012-12-21 18:46:15 +01:00
Henrik Rydgard 4c23d668e1 Cleanup and reorganize gpu code a little 2012-12-21 16:50:14 +01:00
Henrik Rydgard 870ea6628b Reasonably correct viewport handling. Optional debug stats overlay (not always 100% working). 2012-11-26 17:35:08 +01:00