Henrik Rydgard
1fe2af3421
Fix D3D NFSU crash #7030 in a cleaner way than #7033 :)
2014-10-29 23:51:23 +01:00
Unknown W. Brackets
2b16b5b79b
Use XXH64 on 64-bit systems.
...
I'm not able to reproduce any real performance difference, but I know
there are some games which do more hashing and it may help there.
2014-10-26 17:49:24 -07:00
Henrik Rydgard
7cb5e7f53f
Some very minor optimizations. Remove little-used stat counter.
2014-10-19 21:12:25 +02:00
Henrik Rydgard
6c313385ab
Reduce the diff between the two draw engines
2014-09-18 00:40:25 +02:00
Henrik Rydgard
5e2c30c640
Move GetCurrentSimpleVertices to DrawEngineCommon
2014-09-17 21:37:53 +02:00
Unknown W. Brackets
01bdb6e160
Cleanup some minor vertex cache stuff.
2014-09-15 07:08:55 -07:00
Unknown W. Brackets
64d955ea49
d3d: Share the bounding box code.
2014-09-14 14:04:09 -07:00
Unknown W. Brackets
f0c37e3f61
d3d: Use minihashing in the vertex cache.
2014-09-14 13:50:57 -07:00
Unknown W. Brackets
afd9d864be
Clear alpha only when clearing stencil.
...
Not sure if this will fix anything.
2014-09-14 08:00:35 -07:00
Unknown W. Brackets
d60fd955d6
Vertex cache a bit more frequently.
...
Rely upon the minihashing a bit more.
2014-09-13 14:03:13 -07:00
Unknown W. Brackets
456b2613f0
Avoid full rehashes when failures are frequent.
2014-09-13 14:03:13 -07:00
Unknown W. Brackets
c8e6a809c3
Use a more frequent mini hash in the vertex cache.
2014-09-13 14:03:12 -07:00
Unknown W. Brackets
37b9af75b1
Refactor vertex caching a little.
2014-09-13 14:03:12 -07:00
Unknown W. Brackets
bcc6b4027a
Limit unreliable vertexes uncached per frame.
...
Remember them longer, and avoid slamming too many in the same frame.
2014-09-13 14:03:11 -07:00
Henrik Rydgard
19a9c4481f
Move GLES' SoftwareTransform to Common
2014-09-13 13:27:42 +02:00
Henrik Rydgard
4212bbb51e
Cleanup SoftwareTransform a bit more
2014-09-13 13:15:18 +02:00
Henrik Rydgard
ca3ed34b44
Move most GL code out of GLES/SoftwareTransform.cpp
2014-09-13 13:03:37 +02:00
Henrik Rydgard
37e3cf362f
Move vertexdecoder files into GPU/Common
2014-09-12 02:00:32 +02:00
Henrik Rydgard
7cf05e44a2
Add option to vertexdecoder to expand UVs to floats
2014-09-12 02:00:31 +02: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
4a8d52ab1a
Add a config option for the slow framebuf effects.
...
Like cluts, blitting, etc. At higher render resolutions these are
expensive, and on some mobile devices they may be too much.
Of course, they're only used when needed so this is a speedhack.
2014-07-08 23:57:27 -07:00
Unknown W. Brackets
32a11dc28d
Minor optimization for prescale/not, fix switch.
2014-06-29 15:47:00 -07:00
Unknown W. Brackets
596abeca06
Use the same vertex decoders for splines.
...
Had the vert type bits at the top.
2014-06-29 15:46:59 -07:00
Unknown W. Brackets
95f4341838
Allow changing prescale uv at runtime.
2014-06-28 21:51:25 -07:00
Unknown W. Brackets
1c3b60a8ee
Allow changing software skinning at runtime.
2014-06-28 21:46:43 -07:00
Henrik Rydgard
8b60fe0239
Ridge Racer hack: Flush after every prim if fb addr == tex addr.
...
Fixes the bloom errors. @unknownbrackets discovered this method.
Not sure if I want to merge this.. It does add yet another check
to a critical path.
2014-06-22 20:37:50 +02:00
Unknown W. Brackets
9b12a4893d
Track framebuffer memory dirty more carefully.
...
Fixes #6296 , Grand Knights History slowdown during battle transition. May
also more correctly identify block transfer downloads.
2014-06-11 22:21:08 -07:00
Unknown W. Brackets
7226aad903
Don't allow the buf name cache to get too full.
2014-06-07 16:28:24 -07:00
Unknown W. Brackets
5f521bcfb0
Reuse buffer objects when possible.
...
glBufferData() recreates anyway.
2014-06-07 16:20:12 -07:00
Unknown W. Brackets
4971206e92
Allocate vertexcache buffer names in chunks.
...
Partially implements #6045 .
2014-06-07 16:15:37 -07:00
Unknown W. Brackets
8d1b3ae7aa
Fix a vertexdec crash from the ge debugger.
2014-06-06 21:06:29 -07: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
ff8f1fa569
Avoid the GE debugger affecting vertexFullAlpha.
2014-05-04 09:54:54 -07:00
Unknown W. Brackets
d91ad87daa
Small perf improvements in DecodeVertsStep().
2014-04-05 12:32:10 -07: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
466a5418d2
Cut time in EstimatePerVertexCost().
...
From profling, this cuts 4% time while lighting is enabled, and 14% while
disabled (on ARM.) But maybe should just inline this...
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
Unknown W. Brackets
69c2500dc6
Make sure vai->flags are set while hashing.
...
Since we decode the verts in this case we have a fresh flag. Might
be #5718 ?
2014-03-25 08:19:38 -07:00
Henrik Rydgård
cf3d75975d
Merge pull request #5720 from unknownbrackets/texcache
...
Optimize xxHash for ARM/NEON devices
2014-03-25 09:32:15 +01:00
Unknown W. Brackets
b800762ceb
Add a NEON-optimized version of XXH32.
...
This takes at least 40% less time to hash on NEON/ARM devices.
2014-03-25 00:34:55 -07:00
Henrik Rydgard
dc07d3410a
More checks for alpha test elimination
2014-03-24 17:33:20 +01: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
f2f0355d94
Split up ApplyShader into ApplyVertexShader and ApplyFragmentShader.
...
Will allow the alphatest avoiding optimization later.
2014-03-24 10:55:07 +01:00
Henrik Rydgard
b174996c1c
Add a conservative check that prevents alpha testing in a few cases.
...
This will become really powerful if we add some code to the vertex decoder
to check for non-full alpha in the vertices, and set gstate_c.vertexFullAlpha if none
is found (probably want to do the reverse, set it to true and clear if any non-255 alpha is found).
Alpha testing is a performance killer on many mobile GPUs so big efforts to
avoid it can be worth it.
2014-03-23 16:32:38 +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
Henrik Rydgard
b4d99b1981
Revert "Avoid caching when HW T&L with morph enabled."
...
This reverts commit 557eae7ca9 .
2014-03-15 10:46:04 +01:00
raven02
557eae7ca9
Avoid caching when HW T&L with morph enabled.
2014-03-14 21:04:32 +08:00