Commit graph

101 commits

Author SHA1 Message Date
Henrik Rydgård
821a2f10f8 Delete obsolete code 2013-11-13 18:10:58 +01:00
Henrik Rydgard
6221dbaf5d Optimize software skinning for x86.
Can't seem to get a win on Windows vs hardware skinning though, even though
draw calls drop by 2/3rd...
2013-11-13 18:10:58 +01:00
Henrik Rydgard
9333d3ea76 Vtx dec jit: Combine the scale and offset registers to save 1 more xmm register. 2013-11-13 18:10:58 +01:00
Henrik Rydgard
4f78eda23b Save a couple of registers in the x86 vertex decoder jit by SIMD-ing prescale UV 2013-11-13 18:10:57 +01:00
Henrik Rydgard
7e67476b00 Simple unoptimized software skinning.
Does not take advantage of the possible reduction in state changes yet.
2013-11-13 18:10:57 +01:00
Henrik Rydgård
ab3fe9ba86 Extract the software transform code into its own file. 2013-11-13 14:56:34 +01:00
Henrik Rydgard
63334698e1 Add temporary setting to disable the vertex decoder jit while we debug it 2013-11-09 18:16:26 +01:00
Henrik Rydgard
0e542b6ecc vtxdec: small omission 2013-11-08 20:38:49 +01:00
Henrik Rydgard
22d6b36005 Vertexdecoder "double": fix for x86 and very minor optimization for arm. 2013-11-08 20:03:28 +01:00
Henrik Rydgard
6b45c321b6 vtxdecjit: turn off excessive logging 2013-11-08 18:49:17 +01:00
Henrik Rydgard
381b6d0f05 VertexDecoder JIT: Add the last missing ones except morph, I think. 2013-11-08 12:43:46 +01:00
Henrik Rydgard
c4e3dd14fd Add commented-out code to save XMM4/XMM5.
According to all calling convention manuals I can find, we don't really
need to preserve them. If they become problematic as mentioned, we can
activate this.
2013-11-07 09:54:58 +01:00
Henrik Rydgard
b203da05e9 Prescale UV in vtx-dec-jit: Fix bugs, add ARM support 2013-11-07 01:24:53 +01:00
Henrik Rydgård
367bcf6d4f Prescale in the vertex dec jit. Needs debugging. 2013-11-07 01:24:53 +01:00
Unknown W. Brackets
34398b7d0c Avoid literal loads in the arm vertexjit. 2013-11-06 08:45:00 -08:00
Henrik Rydgård
51995a3d43 Vtx dec: After generating ARM, remember to flush the icache.
Will hopefully fix the random crashes in #4461.
2013-11-06 16:14:40 +01:00
Henrik Rydgård
e3f6f25390 Buildfix for non-Windows non-ARM 2013-11-06 13:54:26 +01:00
Henrik Rydgård
ea9da85bdb Missed one possible unaligned access 2013-11-06 13:14:49 +01:00
Henrik Rydgård
b3fdfc01c8 ARM vtx dec: Avoid all unaligned accesses entirely.
Seeing so much contradictory information on the support and performance
of these.
2013-11-06 12:17:41 +01:00
Henrik Rydgård
1e158fa652 ARM vtx dec: Preserving our FP scratch register appears to improve
stability.

Also added some logging.
2013-11-06 11:47:26 +01:00
Henrik Rydgård
b19d41f9a8 Now that LDRH works, use it where appropriate 2013-11-06 10:51:21 +01:00
Henrik Rydgard
0eb3d79de9 x86 VertexDecoder jit: Fix typo in 16-bit weight decoder. May fix crashes. 2013-11-05 21:06:43 +01:00
Henrik Rydgård
7bf8a4dc5e We need to use a signed VCVT to float in PosS*Through 2013-11-05 12:17:18 +01:00
Unknown W. Brackets
c7edf73cdb Small optimizations to the vertexjit. 2013-11-05 00:32:08 -08:00
Unknown W. Brackets
f6662054bd Fix arm emitter bug in LDRH and friends. 2013-11-05 00:32:08 -08:00
Henrik Rydgård
5886ccffdc Merge pull request #4441 from unknownbrackets/vertex-decoder-jit
Force 5 byte jumps to avoid jump target issues (vertex jit, x86)
2013-11-04 01:25:40 -08:00
Unknown W. Brackets
06194ac261 Add 5551 conversion to the arm vertexjit. 2013-11-04 00:47:05 -08:00
Unknown W. Brackets
16dcf807a8 Add 565 conversion to arm vertexjit. 2013-11-03 21:58:26 -08:00
Unknown W. Brackets
ab17d659cf Implement 4444 conversion in arm vertexjit.
Seems to help Dissidia a bit.
2013-11-03 21:58:26 -08:00
Unknown W. Brackets
bfda36efff Don't subtract nrmoff in arm vertexjit. 2013-11-03 21:57:55 -08:00
Unknown W. Brackets
a1fa65f631 Stupid typos, broke 4444 and 565. 2013-11-03 18:43:24 -08:00
Unknown W. Brackets
d5337edf1f Force 5 byte jumps to avoid jump target issues.
Some with 16-bit colors were too far.
2013-11-03 17:17:04 -08:00
Unknown W. Brackets
aece4fd580 16-bit colors in vertex jit for x86. 2013-11-03 15:04:47 -08:00
Henrik Rydgard
f0fd7679ce Preliminary ARM vertex decoder JIT. Has a weird issue in PosS16.
Other minor changes and fixes.
2013-11-03 20:15:42 +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
Henrik Rydgård
4d3e57d6eb Move normal reversion into the vertex shader instead of the decoder. 2013-11-02 11:05:31 +01:00
Henrik Rydgard
c733f7a7ab Curious about what games use morph, so let's report. 2013-09-21 21:22:13 +02:00
Ced2911
b7aa10efc7 [gpu] move GetIndexBounds to common 2013-09-16 17:04:06 +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
raven02
b2a033b7e0 Add RROR_LOG_REPORT for vertices without position 2013-08-26 22:09:43 +08:00
raven02
c0eaa665d5 Uncomment out //if (pos) 2013-08-26 21:24:37 +08:00
Unknown W. Brackets
cd70250d8c Use more accessors, simplify softgpu colortest. 2013-08-24 11:34:38 -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
raven02
cd28c846eb VertexDecoder: Fix a typo #1 2013-07-29 16:40:57 +08:00
Henrik Rydgard
50a2d1b87f More work on prescaled UV 2013-07-28 00:33:51 +02:00
Henrik Rydgard
2eaf581bbe Add experimental UV prescaling hack, hidden as it's not finished yet.
Most people should ignore this for now, it's a step towards faster skinning in the future.
2013-07-27 23:23:17 +02:00
Henrik Rydgard
8602c276ca Remove that silly factor 2 for floating point texcoords and weights.
No longer needed since we treat the various vertex formats separately.
2013-07-27 22:14:34 +02:00
Henrik Rydgard
e36e976877 Collapse skinning shaders with #bones < 4 to a single one.
Significant perf win for skinned characters in FF:CC and maybe other games.
2013-07-27 20:09:22 +02:00
Henrik Rydgard
9add78722d Fix size calculation for weights. Old one would waste space for small weights. 2013-07-27 19:35:55 +02:00
Henrik Rydgard
5d91518e63 Don't know what I was thinking, sigh. Fixes #2889 2013-07-23 01:05:09 +02:00