9675d19b47
Pica/Rasterizer: Make orient2d a free function and rename it to SignedArea.
2014-12-31 16:32:56 +01:00
47543d62cf
Pica: Cleanup color conversion.
2014-12-31 16:32:55 +01:00
614baa39d1
VideoCore: Remove some unused functions.
2014-12-31 16:32:55 +01:00
d13bd327ba
Pica/Rasterizer: Fix a bug related to multitexturing and texture wrapping.
2014-12-31 16:32:55 +01:00
195d73a385
Pica/Rasterizer: Clean up long code lines.
2014-12-31 16:32:55 +01:00
40c7200841
Pica/VertexShader: Coding style fixes.
2014-12-31 16:32:55 +01:00
323a56f898
Pica/CommandProcessor: Cleanups.
2014-12-31 16:32:55 +01:00
b2d461020d
Pica/CommandProcessor: Workaround games not setting the input position's w component.
2014-12-31 16:32:55 +01:00
0f49424022
Pica/Rasterizer: Implement backface culling.
2014-12-31 16:32:55 +01:00
3b78af904e
Pica/Rasterizer: Textures seem to be laid out flipped vertically.
...
Not sure if this is a correct fix. Probably should instead change the decoding logic itself.
2014-12-31 16:32:55 +01:00
3da52ead9b
Pica/DebugUtils: Fix a bug in RGBA4 texture decoding.
2014-12-31 16:32:55 +01:00
a7ae0330b1
Pica/Rasterizer: Implement alpha blending.
2014-12-31 16:32:55 +01:00
e229ff8c83
Pica/Rasterizer: Implement depth testing.
2014-12-31 16:32:55 +01:00
77bb58afeb
Pica/Rasterizer: Further enhance Tev support.
2014-12-31 15:35:54 +01:00
36291bc3f6
Pica: Add output merger definitions.
2014-12-31 15:35:54 +01:00
632655e292
Pica: Fix A4, IA4 and IA8 texture formats.
...
Both IA4 and IA8 had their component order mixed up. Additionally, IA4 used the wrong number of nibbles per texel. A4 skipped every second texel.
2014-12-31 15:35:24 +01:00
b7a48c422a
Pica/CommandProcessor: Add support for integer uniforms.
2014-12-31 15:33:09 +01:00
8369ee5803
Rasterizer: Pre-divide vertex attributes by W
...
Execute the division-by-W for perspective-correct interpolation of
values in the clipper, moving them out of the rasterization inner loop.
2014-12-29 02:08:11 -02:00
fe186d3a59
GPU: Bitwise texture swizzling
...
Replace the loop-based texture address swizzling code by a bit-twiddling
implementation, providing a very small speed up. Also simplify
addressing code.
2014-12-29 02:08:11 -02:00
2012e1420f
Rasterizer: Common sub-expression elimination
...
Move the computation of some values out of loops so that they're not
constantly recalculated even when they don't change.
2014-12-29 02:08:10 -02:00
7e9bc85cc8
Clipper: Compact buffers on each clipping pass
...
Use a new buffer management scheme in the clipper that allows using a
bounded minimal amount of buffer space. Even though it copies more data
it is still slightly faster likely due to using less cache.
2014-12-29 02:08:10 -02:00
a320d1a5b4
Clipper: Avoid dynamic allocations
...
The triangle clipper was allocating its temporary input, output and work
buffers using a std::vector. Since this is a hot path, it's desirable to
use stack allocation instead.
2014-12-29 02:08:09 -02:00
d151d797b1
Vertex Shader: Zero OutputVertex to avoid denormals
...
Unused OutputVertex attributes were being left un-initialized. The
leftover garbage sometimes decoded as floating-point denormalized
values, causing fallbacks to microcode and massive slowdowns in the rest
of the rasterization pipeline even though the results were unused. By
zeroing the structure we ensure these attributes only contain harmless
zeros.
2014-12-29 02:08:09 -02:00
3b9d181b8e
GPU: Implement frameskip and remove forced framebuffer swap hack.
2014-12-28 22:14:05 -05:00
01c675685e
Merge pull request #327 from Apology11/master
...
Fix visual studio ambiguous symbol error
2014-12-26 21:43:59 -05:00
2188af4a65
Merge pull request #322 from chinhodado/master
...
More warning cleanups
2014-12-22 00:12:43 -05:00
0de6a08d75
Merge pull request #291 from purpasmart96/license
...
License change
2014-12-21 16:05:44 -05:00
8d81e23d6e
Fix visual studio ambiguous symbol error
2014-12-21 18:34:20 +01:00
0199a7d9ef
More warning cleanups
2014-12-21 10:58:55 -05:00
ebfd831ccb
License change
2014-12-20 21:20:24 -08:00
08f42c2b8c
Pica/VertexShader: Promote a log message to critical status.
2014-12-20 18:06:56 +01:00
17f31de364
Pica/VertexShader: Small optimization.
2014-12-20 18:06:56 +01:00
a664574ecb
Pica/VertexShader: Be robust against invalid inputs.
...
More specifically, this also fixes crashes by Citra trying to load a src2 register even if the current instruction does not use that.
2014-12-20 18:06:56 +01:00
ad5db467d7
Pica/VertexShader: Clarify a comment.
2014-12-20 18:06:56 +01:00
871418e62b
Pica/DebugUtils: Further cleanups to LookupTexture.
2014-12-20 18:06:56 +01:00
88e9efe4b8
Pica/DebugUtils: Fix two warnings.
2014-12-20 18:06:56 +01:00
6e275778c9
Pica/DebugUtils: Better document LookupTexture.
2014-12-20 18:06:55 +01:00
e4e9710d18
Pica/Rasterizer: Get rid of C-style casts.
2014-12-20 18:06:55 +01:00
d81370682f
Pica/DebugUtils: Make a number of variables static.
...
Makes for cleaner and faster code.
2014-12-20 18:06:55 +01:00
6bd41de276
Pica/VertexShader: Cleanup flow control logic and implement CMP/IFU instructions.
2014-12-20 18:06:55 +01:00
22afb9d830
Pica/VertexShader: Run instruction handlers according to the effective opcode.
...
This allows for proper emulation of the different CMP/LRP/MAD instructions.
2014-12-20 18:06:55 +01:00
cd163fb59a
Pica/VertexShader: Implement MAX instructions.
2014-12-20 18:06:55 +01:00
aff808b2fd
Pica: Add support for boolean uniforms.
2014-12-20 18:06:55 +01:00
67618a2c55
Pica/VertexShader: Add support for MOVA, CMP and IFC.
2014-12-20 18:06:55 +01:00
cb1804e0ab
Pica/VertexShader: Move code around a bit.
2014-12-20 18:06:55 +01:00
b85524c760
Pica/VertexShader: Some cleanups using std::array.
2014-12-20 18:06:55 +01:00
ce36ad454e
Pica/VertexShader: Support negating src2.
2014-12-20 18:06:55 +01:00
cc5746abfe
Pica/DebugUtils: Replace duplicated SHBIN structures in favor of nihstro's ones.
2014-12-20 18:06:55 +01:00
8ce1d32460
Pica/VertexShader: Remove (now) duplicated shader bytecode definitions in favor of nihstro's ones.
2014-12-20 18:06:55 +01:00
79c29243ed
Pica/DebugUtils: Add an event triggered after loading a vertex.
2014-12-20 18:06:55 +01:00