Tony Wasserka
2b9a9a45b7
Pica/VertexShader: Implement JMPC/JMPU/CALLC/CALLU.
2015-01-12 15:47:21 -08:00
Tony Wasserka
e02db3904b
Pica/VertexShader: Implement the MAD instruction.
2015-01-12 15:34:36 -08:00
bunnei
f7a3f45f1e
GSP: Toggle active framebuffer each frame
2015-01-07 18:06:00 -05:00
Tony Wasserka
bc187be0c1
Pica/Rasterizer: Remove some redundant casts.
2014-12-31 16:32:56 +01:00
Tony Wasserka
9675d19b47
Pica/Rasterizer: Make orient2d a free function and rename it to SignedArea.
2014-12-31 16:32:56 +01:00
Tony Wasserka
47543d62cf
Pica: Cleanup color conversion.
2014-12-31 16:32:55 +01:00
Tony Wasserka
614baa39d1
VideoCore: Remove some unused functions.
2014-12-31 16:32:55 +01:00
Tony Wasserka
d13bd327ba
Pica/Rasterizer: Fix a bug related to multitexturing and texture wrapping.
2014-12-31 16:32:55 +01:00
Tony Wasserka
195d73a385
Pica/Rasterizer: Clean up long code lines.
2014-12-31 16:32:55 +01:00
Tony Wasserka
40c7200841
Pica/VertexShader: Coding style fixes.
2014-12-31 16:32:55 +01:00
Tony Wasserka
323a56f898
Pica/CommandProcessor: Cleanups.
2014-12-31 16:32:55 +01:00
Tony Wasserka
b2d461020d
Pica/CommandProcessor: Workaround games not setting the input position's w component.
2014-12-31 16:32:55 +01:00
Tony Wasserka
0f49424022
Pica/Rasterizer: Implement backface culling.
2014-12-31 16:32:55 +01:00
Tony Wasserka
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
Tony Wasserka
3da52ead9b
Pica/DebugUtils: Fix a bug in RGBA4 texture decoding.
2014-12-31 16:32:55 +01:00
Tony Wasserka
a7ae0330b1
Pica/Rasterizer: Implement alpha blending.
2014-12-31 16:32:55 +01:00
Tony Wasserka
e229ff8c83
Pica/Rasterizer: Implement depth testing.
2014-12-31 16:32:55 +01:00
Tony Wasserka
77bb58afeb
Pica/Rasterizer: Further enhance Tev support.
2014-12-31 15:35:54 +01:00
Tony Wasserka
36291bc3f6
Pica: Add output merger definitions.
2014-12-31 15:35:54 +01:00
Tony Wasserka
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
Tony Wasserka
b7a48c422a
Pica/CommandProcessor: Add support for integer uniforms.
2014-12-31 15:33:09 +01:00
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.
2014-12-29 02:08:11 -02:00
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.
2014-12-29 02:08:11 -02:00
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.
2014-12-29 02:08:10 -02:00
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.
2014-12-29 02:08:10 -02:00
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.
2014-12-29 02:08:09 -02:00
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.
2014-12-29 02:08:09 -02:00
bunnei
3b9d181b8e
GPU: Implement frameskip and remove forced framebuffer swap hack.
2014-12-28 22:14:05 -05:00
bunnei
01c675685e
Merge pull request #327 from Apology11/master
...
Fix visual studio ambiguous symbol error
2014-12-26 21:43:59 -05:00
bunnei
2188af4a65
Merge pull request #322 from chinhodado/master
...
More warning cleanups
2014-12-22 00:12:43 -05:00
bunnei
0de6a08d75
Merge pull request #291 from purpasmart96/license
...
License change
2014-12-21 16:05:44 -05:00
Apology11
8d81e23d6e
Fix visual studio ambiguous symbol error
2014-12-21 18:34:20 +01:00
Chin
0199a7d9ef
More warning cleanups
2014-12-21 10:58:55 -05:00
purpasmart96
ebfd831ccb
License change
2014-12-20 21:20:24 -08:00
Tony Wasserka
08f42c2b8c
Pica/VertexShader: Promote a log message to critical status.
2014-12-20 18:06:56 +01:00
Tony Wasserka
17f31de364
Pica/VertexShader: Small optimization.
2014-12-20 18:06:56 +01:00
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.
2014-12-20 18:06:56 +01:00
Tony Wasserka
ad5db467d7
Pica/VertexShader: Clarify a comment.
2014-12-20 18:06:56 +01:00
Tony Wasserka
871418e62b
Pica/DebugUtils: Further cleanups to LookupTexture.
2014-12-20 18:06:56 +01:00
Tony Wasserka
88e9efe4b8
Pica/DebugUtils: Fix two warnings.
2014-12-20 18:06:56 +01:00
Tony Wasserka
6e275778c9
Pica/DebugUtils: Better document LookupTexture.
2014-12-20 18:06:55 +01:00
Tony Wasserka
e4e9710d18
Pica/Rasterizer: Get rid of C-style casts.
2014-12-20 18:06:55 +01:00
Tony Wasserka
d81370682f
Pica/DebugUtils: Make a number of variables static.
...
Makes for cleaner and faster code.
2014-12-20 18:06:55 +01:00
Tony Wasserka
6bd41de276
Pica/VertexShader: Cleanup flow control logic and implement CMP/IFU instructions.
2014-12-20 18:06:55 +01:00
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.
2014-12-20 18:06:55 +01:00
Tony Wasserka
cd163fb59a
Pica/VertexShader: Implement MAX instructions.
2014-12-20 18:06:55 +01:00
Tony Wasserka
aff808b2fd
Pica: Add support for boolean uniforms.
2014-12-20 18:06:55 +01:00
Tony Wasserka
67618a2c55
Pica/VertexShader: Add support for MOVA, CMP and IFC.
2014-12-20 18:06:55 +01:00
Tony Wasserka
cb1804e0ab
Pica/VertexShader: Move code around a bit.
2014-12-20 18:06:55 +01:00
Tony Wasserka
b85524c760
Pica/VertexShader: Some cleanups using std::array.
2014-12-20 18:06:55 +01:00
Tony Wasserka
ce36ad454e
Pica/VertexShader: Support negating src2.
2014-12-20 18:06:55 +01:00
Tony Wasserka
cc5746abfe
Pica/DebugUtils: Replace duplicated SHBIN structures in favor of nihstro's ones.
2014-12-20 18:06:55 +01:00
Tony Wasserka
8ce1d32460
Pica/VertexShader: Remove (now) duplicated shader bytecode definitions in favor of nihstro's ones.
2014-12-20 18:06:55 +01:00
Tony Wasserka
79c29243ed
Pica/DebugUtils: Add an event triggered after loading a vertex.
2014-12-20 18:06:55 +01:00
Tony Wasserka
cd322e328e
Pica/PrimitiveAssembly: Implement triangle strips.
2014-12-20 18:06:54 +01:00
Tony Wasserka
346012f29e
Pica/CommandProcessor: Add a safety check for invalid (?) GPU configurations.
2014-12-20 18:06:54 +01:00
Tony Wasserka
1e960e9ee2
Pica/CommandProcessor: Fix vertex decoding if multiple memory areas are accessed for different attributes.
2014-12-20 18:06:54 +01:00
Tony Wasserka
1c972ef3b9
Add support for a ridiculous number of texture formats.
2014-12-20 18:06:54 +01:00
Tony Wasserka
40f123b7c0
Pica: Unify ugly address translation hacks.
2014-12-20 18:06:53 +01:00
Tony Wasserka
7e210e0229
Pica: Further improve Tev emulation.
2014-12-20 18:05:53 +01:00
Tony Wasserka
3df88d59b0
Pica: Merge texture lookup logic for DebugUtils and Rasterizer.
...
This effectively adds support for a lot texture formats in the rasterizer.
2014-12-20 18:05:53 +01:00
Tony Wasserka
0fba1d48a6
Pica: Implement texture wrapping.
2014-12-20 18:05:53 +01:00
Tony Wasserka
c81f1a9ebc
Pica/DebugUtils: Add support for RGBA8, RGBA5551, RGBA4 and A8 texture formats.
2014-12-20 18:05:53 +01:00
Tony Wasserka
fd2539121c
Pica: Initial support for multitexturing.
2014-12-20 18:05:53 +01:00
Chin
e795692614
Clean up some warnings
2014-12-20 10:03:36 -05:00
chinhodado
d31c23e958
Properly erase/remove an observer
2014-12-19 14:24:44 -05:00
Yuri Kunde Schlesner
0600e2d8b5
Convert old logging calls to new logging macros
2014-12-13 02:08:02 -02:00
bunnei
a6791e4fc7
Merge pull request #267 from bunnei/apt-shared-font
...
APT shared font loading
2014-12-12 22:12:12 -05:00
Tony Wasserka
33e61ef514
Merge pull request #261 from neobrain/boost
...
Add Boost as a submodule and add some minor cleanups using Boost.Range
2014-12-12 17:32:57 +01:00
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).
2014-12-12 00:15:47 -05:00
bunnei
f94d8f9603
GSP: Trigger GPU interrupts at more accurate locations.
2014-12-09 19:07:14 -05:00
bunnei
170123982d
GPU: Fixed bug in command list size decoding.
2014-12-09 19:07:13 -05:00
Tony Wasserka
0305435edd
Pica: Re-enable command names on MSVC.
...
The affected code is no longer limited by compiler support on that platform.
2014-12-09 16:37:34 +01:00
Tony Wasserka
79bb403089
More coding style fixes.
2014-12-09 16:37:34 +01:00
Tony Wasserka
0cd27a511e
Some code cleanup.
2014-12-09 16:37:34 +01:00
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.
2014-12-09 16:37:34 +01:00
Tony Wasserka
fd194d95b0
citra-qt: Add texture viewer to Pica command list.
...
The texture viewer is enabled when selecting a write command to one of the texture config registers.
2014-12-09 16:37:34 +01:00
Tony Wasserka
2c71ec7052
Pica/DebugUtils: Add breakpoint functionality.
2014-12-09 16:37:34 +01:00
Tony Wasserka
8db65723d2
Build fix for something which shouldn't have compiled successfully to begin with.
2014-12-09 16:37:34 +01:00
Tony Wasserka
4d4572c697
Integrate Boost into build system and perform a trivial cleanup in vertex_shader.cpp.
2014-12-07 23:52:17 +01:00
Rohit Nirmal
8a62423970
Change NULLs to nullptrs.
2014-12-03 12:57:57 -06:00
bunnei
63b1453dd8
Merge pull request #236 from rohit-n/sign-compare
...
Silence a few -Wsign-compare warnings.
2014-12-03 10:04:47 -05:00
Rohit Nirmal
f9b53c3e94
Silence a few -Wsign-compare warnings.
2014-11-30 22:29:23 -06:00
vaguilar
95b33ee0a7
Fixed viewport error caused by rounding
2014-11-30 09:53:50 -08:00
Emmanuel Gil Peyrot
739bb58c3a
Remove tabs in all files except in skyeye imports and in generated GL code
2014-11-19 09:04:03 +00:00
Emmanuel Gil Peyrot
f5d38649c7
Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated
2014-11-19 09:03:07 +00:00
Tony Wasserka
c5c6e095f0
OpenGL Renderer: Cleanup viewport extent calculation.
2014-11-18 13:09:01 +01:00
Tony Wasserka
bd8f491e4c
Fixup EmuWindow interface and implementations thereof.
2014-11-18 13:09:01 +01:00
Kevin Hartman
221a9b023d
Viewport scaling and display density independence
...
The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window.
On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly.
2014-11-18 13:06:05 +01:00
Tony Wasserka
8717c79fe4
Merge pull request #195 from lioncash/control
...
vertex_shader: Fix control reaches end of function warning
2014-11-16 22:50:00 +01:00
Lioncash
bd76783d91
vertex_shader: Fix control reaches end of function warning
2014-11-16 16:44:14 -05:00
Lioncash
ac58b76e71
Fix two format strings.
2014-11-14 12:08:26 -05:00
bunnei
01e37962e7
Merge pull request #162 from SeannyM/warning-fixes
...
Fix some warnings
2014-10-29 21:07:27 -04:00
Sean
9a012ff007
Fix some warnings
2014-10-29 20:26:15 -04:00
Gareth Poole
38df9e96dd
Renamed souce files of services to match port names
2014-10-29 15:55:51 -04:00
Yuri Kunde Schlesner
d72708c1f5
Add override
keyword through the code.
...
This was automated using `clang-modernize`.
2014-10-26 16:18:05 -02:00
Yuri Kunde Schlesner
15c59f3974
Only check OpenGL shader log if size is >1.
...
This prevents a crash when the buffer size returned by the driver is 0,
in which case no space is allocated to store even the NULL byte and
glGetShaderInfoLog errors out.
Thanks to @Relys for the bug report.
2014-10-21 16:07:39 -02:00
Yuri Kunde Schlesner
11642fd3a2
Rework OpenGL renderer.
...
The OpenGL renderer has been revised, with the following changes:
- Initialization and rendering have been refactored to reduce the number of
redundant objects used.
- Framebuffer rotation is now done directly, using texture mapping.
- Vertex coordinates are now given in pixels, and the projection matrix
isn't hardcoded anymore.
2014-10-12 14:38:53 +02:00
Yuri Kunde Schlesner
5f598a5e2c
OpenGL renderer: Shuffle initialization code around and rename functions.
2014-10-12 14:37:24 +02:00
Yuri Kunde Schlesner
787a1b047c
Remove virtual inheritance from RendererOpenGL
...
Also make destructor virtual so that instances are properly destructed.
2014-10-12 14:37:24 +02:00