Yuri Kunde Schlesner
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.
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
bunnei
3b9d181b8e
GPU: Implement frameskip and remove forced framebuffer swap hack.
11 years ago
Apology11
8d81e23d6e
Fix visual studio ambiguous symbol error
11 years ago
Chin
0199a7d9ef
More warning cleanups
11 years ago
purpasmart96
ebfd831ccb
License change
11 years ago
Tony Wasserka
08f42c2b8c
Pica/VertexShader: Promote a log message to critical status.
11 years ago
Tony Wasserka
17f31de364
Pica/VertexShader: Small optimization.
11 years ago
Tony Wasserka
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.
11 years ago
Tony Wasserka
ad5db467d7
Pica/VertexShader: Clarify a comment.
11 years ago
Tony Wasserka
871418e62b
Pica/DebugUtils: Further cleanups to LookupTexture.
11 years ago
Tony Wasserka
88e9efe4b8
Pica/DebugUtils: Fix two warnings.
11 years ago
Tony Wasserka
6e275778c9
Pica/DebugUtils: Better document LookupTexture.
11 years ago
Tony Wasserka
e4e9710d18
Pica/Rasterizer: Get rid of C-style casts.
11 years ago
Tony Wasserka
d81370682f
Pica/DebugUtils: Make a number of variables static.
Makes for cleaner and faster code.
11 years ago
Tony Wasserka
6bd41de276
Pica/VertexShader: Cleanup flow control logic and implement CMP/IFU instructions.
11 years ago
Tony Wasserka
22afb9d830
Pica/VertexShader: Run instruction handlers according to the effective opcode.
This allows for proper emulation of the different CMP/LRP/MAD instructions.
11 years ago
Tony Wasserka
cd163fb59a
Pica/VertexShader: Implement MAX instructions.
11 years ago
Tony Wasserka
aff808b2fd
Pica: Add support for boolean uniforms.
11 years ago
Tony Wasserka
67618a2c55
Pica/VertexShader: Add support for MOVA, CMP and IFC.
11 years ago
Tony Wasserka
cb1804e0ab
Pica/VertexShader: Move code around a bit.
11 years ago
Tony Wasserka
b85524c760
Pica/VertexShader: Some cleanups using std::array.
11 years ago
Tony Wasserka
ce36ad454e
Pica/VertexShader: Support negating src2.
11 years ago
Tony Wasserka
cc5746abfe
Pica/DebugUtils: Replace duplicated SHBIN structures in favor of nihstro's ones.
11 years ago
Tony Wasserka
8ce1d32460
Pica/VertexShader: Remove (now) duplicated shader bytecode definitions in favor of nihstro's ones.
11 years ago
Tony Wasserka
79c29243ed
Pica/DebugUtils: Add an event triggered after loading a vertex.
11 years ago
Tony Wasserka
cd322e328e
Pica/PrimitiveAssembly: Implement triangle strips.
11 years ago
Tony Wasserka
346012f29e
Pica/CommandProcessor: Add a safety check for invalid (?) GPU configurations.
11 years ago
Tony Wasserka
1e960e9ee2
Pica/CommandProcessor: Fix vertex decoding if multiple memory areas are accessed for different attributes.
11 years ago
Tony Wasserka
1c972ef3b9
Add support for a ridiculous number of texture formats.
11 years ago
Tony Wasserka
40f123b7c0
Pica: Unify ugly address translation hacks.
11 years ago
Tony Wasserka
7e210e0229
Pica: Further improve Tev emulation.
11 years ago
Tony Wasserka
3df88d59b0
Pica: Merge texture lookup logic for DebugUtils and Rasterizer.
This effectively adds support for a lot texture formats in the rasterizer.
11 years ago
Tony Wasserka
0fba1d48a6
Pica: Implement texture wrapping.
11 years ago
Tony Wasserka
c81f1a9ebc
Pica/DebugUtils: Add support for RGBA8, RGBA5551, RGBA4 and A8 texture formats.
11 years ago
Tony Wasserka
fd2539121c
Pica: Initial support for multitexturing.
11 years ago
Chin
e795692614
Clean up some warnings
11 years ago
chinhodado
d31c23e958
Properly erase/remove an observer
11 years ago
Yuri Kunde Schlesner
0600e2d8b5
Convert old logging calls to new logging macros
11 years ago
bunnei
4cb7a44d4e
MemMap: Renamed "GSP" heap to "linear", as this is not specific to GSP.
- Linear simply indicates that the mapped physical address is always MappedVAddr+0x0C000000, thus this memory can be used for hardware devices' DMA (such as the GPU).
11 years ago
bunnei
f94d8f9603
GSP: Trigger GPU interrupts at more accurate locations.
11 years ago
bunnei
170123982d
GPU: Fixed bug in command list size decoding.
11 years ago
Tony Wasserka
0305435edd
Pica: Re-enable command names on MSVC.
The affected code is no longer limited by compiler support on that platform.
11 years ago
Tony Wasserka
79bb403089
More coding style fixes.
11 years ago
Tony Wasserka
0cd27a511e
Some code cleanup.
11 years ago
Tony Wasserka
2793619dce
citra_qt: Add enhanced texture debugging widgets.
Double-clicking a texture parameter command in the pica command lists will spawn these as a new tab in the pica command list dock area.
12 years ago