Commit Graph
9567 Commits
Author SHA1 Message Date
Unknown W. Brackets 58fe022ecd vertexjit: Avoid switching to VFP from NEON. 2014-03-23 16:26:17 -07:00
Unknown W. Brackets a1301f5c4d Log if any games are actually using s8 through.
Not sure about z sign.
2014-03-23 16:26:16 -07:00
Unknown W. Brackets 154b0d14a5 vertexjit: Combine a few loads and stores on ARM. 2014-03-23 16:26:16 -07:00
Unknown W. Brackets b55ad0d9c6 vertexjit: Improve NEON align on color morph ARM. 2014-03-23 16:26:15 -07:00
Unknown W. Brackets 9698a565b7 vertexjit: Implement NEON color morphs on ARM. 2014-03-23 16:26:15 -07:00
Unknown W. Brackets a478436de9 vertexjit: Attempt 16-bit color morphs on ARM. 2014-03-23 16:26:15 -07:00
Unknown W. Brackets 29f9ea5df6 vertexjit: support 8888 morph on ARM. 2014-03-23 16:26:14 -07:00
Unknown W. Brackets 34747b7aa4 vertexjit: Support morph pos/norm on ARM as well. 2014-03-23 16:26:14 -07:00
Unknown W. Brackets 009c3ee3f7 vertexjit: Save S16-S31 registers in ARM. 2014-03-23 16:26:13 -07:00
Unknown W. Brackets b04553b983 vertexjit: Fix non-morph 5551 decoding.
Oops, it was just wrong before.
2014-03-23 16:26:13 -07:00
Unknown W. Brackets 56b83af1f0 Don't use aligned loads in non-inlined funcs.
I'm wanting things to stay in registers, but that's not realistic for
arguments.  Force inline the others.  May help #5699.
2014-03-23 12:09:17 -07:00
Unknown W. Brackets a26e6ce4b6 Minor improvements to QuickTexHashNEON().
Cuts a VFP switch, oops.
2014-03-23 11:56:25 -07:00
Unknown W. Brackets 970dd4f2f8 Use vldmia not vld1 for QuickTexHashNEON().
It turns out this is ~20% slower usually, so aligned is not worth the
pipeline hit.
2014-03-23 11:56:24 -07: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
Unknown W. Brackets 2482b2a1e0 Use aligned NEON loads in texhash. 2014-03-22 21:58:50 -07:00
Unknown W. Brackets b44d10a91e Move texture unswizzling to decoder, use NEON. 2014-03-22 21:35:16 -07: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 8bf015fe16 texcache: SSE optimized version of the most common case of Unswizzle
(didn't put this in fast_math because it's pretty specific to PSP)
2014-03-23 01:50:50 +01:00
Henrik Rydgård dac51b9c1b Merge pull request #5693 from unknownbrackets/jit-minor
x86 jit and vertex jit changes, ARM emitter changes
2014-03-23 00:22:04 +01:00
Henrik Rydgård 5d44b09cb2 Merge pull request #5692 from hrydgard/fast_math
Use the new fast-math from native for 4x4 matrix mul
2014-03-23 00:17:19 +01:00
Unknown W. Brackets 632eec38e8 vertexjit: Use SSE4.1 where available on x86.
Just because we can.
2014-03-22 16:11:16 -07:00
Unknown W. Brackets 5d04f123b9 vertexjit: A couple more tweaks to morph on x86. 2014-03-22 15:56:30 -07:00
Unknown W. Brackets 12c2683fb8 vertexjit: Cut a few more instrs from x86 morph. 2014-03-22 15:56:30 -07:00
Unknown W. Brackets 0da5caf11a vertexjit: Cut a few instrs from morph on x86. 2014-03-22 15:56:30 -07:00
Unknown W. Brackets 162f229294 vertexjit: Support the color morphs on x86. 2014-03-22 15:56:29 -07:00
Henrik Rydgard 63aeb31e07 Attempt workaround for fog issue #5384 2014-03-22 23:49:14 +01:00
Henrik Rydgård 8dfadf7b8e ArmEmitter: Add VMOV_neon and a Size parameter to VFMA for consistency. 2014-03-22 16:31:16 +01:00
Henrik Rydgard bc121242b3 Use fast_math matrix multiplication for culling and sw transform 2014-03-22 14:40:09 +01:00
Henrik Rydgård 98da5144ef Merge pull request #5612 from raven02/patch-27
Shade mapping fix
2014-03-22 14:37:22 +01:00
Unknown W. BracketsandHenrik Rydgard 66f501b981 Avoid an invalid enum on GLES2 texture creation.
My device logs an error, which I'm guessing has perf impact.
2014-03-22 09:34:22 +01:00
Henrik Rydgard f4db725400 Remove redundant call to ReplaceAlphaWithStencil 2014-03-22 09:28:45 +01:00
Henrik Rydgard ba5d88e9d6 Fix bug in FastLoadBoneMatrix where the wrong uniform could be dirtied 2014-03-22 09:27:43 +01:00
Henrik Rydgard 0b673719c2 Crashfix for software renderer in 32-bit (SSE misalignment) 2014-03-22 00:12:21 +01:00
Unknown W. Brackets a8a299c2e3 Fix ToRGB/ToRGBA possible accuracy loss.
It was always like this, but not used as much before.  Shifts are fast and
it eneds to sum anyway, there should not be any benefit to multiplying as
floats, and it will probably lose accuracy.
2014-03-18 22:56:27 -07:00
Unknown W. Brackets 678237aa6c Improve SSE usage in software transform.
It's actually already pretty decent (unlike the softgpu), but there were a
few places it could use a bit of help.  Speeds up things with hardware
transform off, or areas that need to use software transform.
2014-03-17 23:05:48 -07:00
Unknown W. Brackets 416df17088 Inline From/ToRGB(A) to avoid losing SSE.
Otherwise it has to store it, which I'd like to avoid.
2014-03-17 23:03:04 -07:00
Unknown W. Brackets 1ce6bf399a Buildfix for 32-bit x86, arg. 2014-03-17 21:52:45 -07:00
Unknown W. Brackets 833c93bd98 Dumb mistake, forgot the divide.
Probably caused the blending issues.
2014-03-17 12:53:49 -07:00
Unknown W. Brackets 6630e45eff Just add a packed version of Vec3f.
This way we can have it aligned to memory where needed.  I think it'd be
better to avoid this if possible so that we can actually vectorize
spline/etc. code.

Fixes #5673.
2014-03-17 06:59:40 -07:00
Unknown W. Brackets 38d0bac1df Optimize some 4444/8888 color conversions.
Small performance boost in softgpu.
2014-03-17 01:21:52 -07:00
Unknown W. Brackets 6de2129f98 softgpu: Don't re-pack 8888 colors.
It's like a bad joke, but MSVC was not optimizing this out.
2014-03-16 23:03:07 -07:00
Unknown W. Brackets 10456a09ac Oops, forgot to multiply in float ToRGBA().
Not actually used...
2014-03-16 21:12:23 -07:00
Unknown W. Brackets 627027307c softgpu: Use SSE in ToRGB()/FromRGB() etc. 2014-03-16 19:21:35 -07:00
Unknown W. Brackets 07ca96e226 softgpu: Use SSE in alpha blending. 2014-03-16 18:57:11 -07:00
Unknown W. Brackets 601ff10f1e softgpu: Use SSE in tex modulation.
Could do others, this seems the most common.  Gives a few more percent.
2014-03-16 18:28:06 -07:00
Unknown W. Brackets 47728528d7 softgpu: Use SSE in Vec?::Length().
Minor perf boost but if I do everything in Vec things get slower.
2014-03-16 17:56:34 -07:00
Unknown W. Brackets 6ef0aa123f softgpu: Use SSE for the secondary color.
It's easy to speed up this code since it's so hot.
2014-03-16 16:21:12 -07:00
Unknown W. Brackets 7f3e158a0f softgpu: Get all tex samples at the same time.
Kills a bunch of overhead, improving speed more.
2014-03-16 15:51:47 -07:00
Unknown W. Brackets d9e29a2edf softgpu: Optimize alpha blending handling.
This alone makes it a good bit faster.
2014-03-16 15:22:31 -07:00