Commit Graph

72 Commits

Author SHA1 Message Date
a949fd5f25 pica_types: Replace float24/20/16 with a template class. 2016-02-05 17:20:22 -05:00
d171822dce command_processor: Add an assertion to ensure LUTs are not written past their boundaries. 2016-02-05 17:20:20 -05:00
281bc90ad2 pica: Implement fragment lighting LUTs. 2016-02-05 17:17:27 -05:00
4966568076 command_processor: Get rid of variable shadowing 2016-01-17 02:22:51 -05:00
195fedccf0 VideoCore: Unify interface to OpenGL and SW rasterizers
This removes explicit checks sprinkled all over the codebase to instead
just have the SW rasterizer expose an implementation with no-ops for
most operations.
2015-12-07 20:20:38 -08:00
7a37dba75b GPU/Loaders: Log an error when a loader tries to load from a component beyond the available ones (12).
Related to #1170
2015-11-09 21:16:11 -05:00
aec28ed91e video_core: Reorganize headers 2015-09-11 07:31:15 -04:00
ba998b85a1 video_core: Fix format specifiers warnings 2015-09-02 08:20:00 +02:00
e77dc4e9d2 Merge pull request #1059 from Subv/vertex_offset
GPU: Implemented register 0x22A PICA_REG_DRAW_VERTEX_OFFSET
2015-08-30 17:12:33 -04:00
12a11472f1 GPU: Implemented register 0x22A.
This is the equivalent of the "first" parameter in glDrawArrays, it tells the GPU the vertex index at which to start rendering.

Register 0x22A doesn't affect indexed rendering.
2015-08-30 15:46:22 -05:00
0fcabd2b11 Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
2015-08-24 22:16:28 -03:00
f5144e6c10 Merge pull request #997 from Lectem/cmdlist_full_debug
citra-qt: Improve pica command list widget (add mask, fix some issues)
2015-08-16 13:34:45 +02:00
33ba604fd9 Introduce a shader tracer to allow inspection of input/output values for each processed instruction. 2015-08-16 14:12:11 +02:00
3f69c2039d Shader: Define a common interface for running vertex shader programs. 2015-08-15 17:33:44 -04:00
18527b9e21 Shader: Move shader code to its own subdirectory, "shader". 2015-08-15 17:33:42 -04:00
642b9b5030 GPU: Refactor "VertexShader" namespace to "Shader".
- Also renames "vertex_shader.*" to "shader_interpreter.*"
2015-08-15 17:33:41 -04:00
a96502edd3 Videocore: Implement simple vertex caching
This gives a ~2/3 reduction in the amount of vertices that need to be
processed through the vertex loaders and the vertex shader, yielding a
good speedup.
2015-08-04 23:41:47 -03:00
31c1bb901b Merge pull request #963 from yuriks/gpu-fixes
Misc. GPU vertex loading fixes
2015-07-29 16:45:17 -04:00
e663751f8b citra-qt/command list: Add mask column 2015-07-26 16:23:12 +02:00
13347997ba VideoCore: #ifdef out some debugging routines
Some disabled debugging functionality was being called from rendering
routines in VideoCore. Although disabled, many of them still allocated
memory or did some extra work that was enough to show up in a profiler.
Gives a slight (~2ms) speedup.
2015-07-26 06:55:47 -03:00
9a0f9f12cd Merge pull request #892 from zawata/another-warning-fixes
Yet More Warning Fixes
2015-07-25 12:50:32 -07:00
1fe9b0b82e VideoCore: Fix values of unset components in input attribute arrays
If an input attribute array had a field with less than 4 components, the
remaining components were left unset if not specified by a default
vertex attribute. If neither mechanism would set a component, it would
assume a garbage value.

It has been verified that the hardware behavior is to instead to set the
missing components from the fixed default of (0 0 0 1). The default
vertex attribute values aren't used at all if a vertex array is
specified for that attribute.

Fixes UI graphics on Fire Emblem: Awakening, a small texturing glitch
when selecting a character in Cubic Ninja, as well as eliminating the
unset-W hack which was required for Ocarina of Time to not have
garbled triangles.

This change has been tested against hardware.
2015-07-23 16:51:25 -03:00
6c0ea5f5e8 Qt/GPU Breakpoints: Added three more breakpoint types:
* IncomingDisplayTransfer: Triggered just before a display transfer is performed.
* GSPCommandProcessed: Triggered right after a GSP command is processed.
* BufferSwapped: Triggered when the frames flip
2015-07-23 11:47:34 -05:00
aa6dfdb827 Merge pull request #929 from neobrain/geoshader_definitions
Pica/Shader: Add geometry shader definitions.
2015-07-21 15:24:48 +02:00
04756bdaf6 Video_Core : Type fixes 2015-07-19 04:12:40 -07:00
716120da3d Video_Core : Fix Conversion Warnings 2015-07-19 03:59:49 -07:00
33568494af Pica/Shader: Add geometry shader definitions. 2015-07-15 17:31:57 +02:00
aeec12dc33 Pica/CommandProcessor: Move default attribute setup to the proper position. 2015-07-15 17:56:38 +02:00
0799b40caa Clean up command_processor.cpp. 2015-07-13 22:27:21 +02:00
902fa4da52 Add CiTrace recording support.
This is exposed in the GUI as a new "CiTrace Recording" widget.

Playback is implemented by a standalone 3DS homebrew application (which only runs reliably within Citra currently; on an actual 3DS it will often crash still).
2015-07-13 22:27:20 +02:00
45c4781544 CitraQt: Cleanup includes. 2015-06-28 00:36:54 +01:00
02c9fe202c Pica: Implement command buffer execution registers. 2015-05-31 01:52:39 -04:00
b1503b2020 Remove every trailing whitespace from the project (but externals). 2015-05-29 21:59:29 +01:00
1b42d55a9d Pica: Create 'State' structure and move state memory there. 2015-05-22 22:59:42 -04:00
05dc633a8c OpenGL renderer 2015-05-22 15:51:18 -07:00
24d9416930 GPU/DefaultAttributes: Clear up a comment in command_processor 2015-05-17 14:13:11 -05:00
658c44af5c GPU/DefaultAttributes: Let the attribute data from the loaders overwrite the default attributes, if set.
closes #735
2015-05-17 11:52:17 -05:00
17a8cae003 Memory: Add GetPhysicalPointer helper function 2015-05-09 04:02:32 -03:00
28a9e4c1d5 Memory: Support more regions in the VAddr-PAddr translation functions
Also adds better documentation and removes the one-off reimplementation
of the function in pica.h.
2015-05-09 03:08:11 -03:00
0e5ca080a8 GPU: Implemented default vertex shader attributes.
Fixes some games crashing.
2015-05-06 18:11:46 -05:00
cd1fbfcf1b Add profiling infrastructure and widget 2015-03-01 21:47:13 -03:00
6c26ec72a5 Pica/CommandProcessor: Properly implement shader load destination offset registers. 2015-02-18 14:02:59 +01:00
67120270f2 Pica/CommandProcessor: Work around initialized vertex attributes some more. 2015-02-18 14:02:59 +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
b7a48c422a Pica/CommandProcessor: Add support for integer uniforms. 2014-12-31 15:33:09 +01:00
3b9d181b8e GPU: Implement frameskip and remove forced framebuffer swap hack. 2014-12-28 22:14:05 -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
0199a7d9ef More warning cleanups 2014-12-21 10:58:55 -05:00