- Sep 23, 2017
-
-
James Rowe authored
-
- Sep 11, 2017
-
-
James Rowe authored
PR #1461 introduced a regression where some games would change configuration even while in the poorly named "drawing" mode, which broke the heuristic citra was using to determine when to draw the batch. This change adds back in a draw call for batching, and also adds in a draw call in immediate mode each time it adds a triangle.
-
- Aug 19, 2017
-
-
wwylele authored
The geometry pipeline manages data transfer between VS, GS and primitive assembler. It has known four modes: - no GS mode: sends VS output directly to the primitive assembler (what citra currently does) - GS mode 0: sends VS output to GS input registers, and sends GS output to primitive assembler - GS mode 1: sends VS output to GS uniform registers, and sends GS output to primitive assembler. It also takes an index from the index buffer at the beginning of each primitive for determine the primitive size. - GS mode 2: similar to mode 1, but doesn't take the index and uses a fixed primitive size. hwtest shows that immediate mode also supports GS (at least for mode 0), so the geometry pipeline gets refactored into its own class for supporting both drawing mode. In the immediate mode, some games don't set the pipeline registers to a valid value until the first attribute input, so a geometry pipeline reset flag is set in `pipeline.vs_default_attributes_setup.index` trigger, and the actual pipeline reconfigure is triggered in the first attribute input. In the normal drawing mode with index buffer, the vertex cache is a little bit modified to support the geometry pipeline. Instead of OutputVertex, it now holds AttributeBuffer, which is the input to the geometry pipeline. The AttributeBuffer->OutputVertex conversion is done inside the pipeline vertex handler. The actual hardware vertex cache is believed to be implemented in a similar way (because this is the only way that makes sense). Both geometry pipeline and GS unit rely on states preservation across drawing call, so they are put into the global state. In the future, the other three vertex shader units should be also placed in the global state, and a scheduler should be implemented on top of the four units. Note that the current gs_unit already allows running VS on it in the future.
-
- Aug 07, 2017
-
-
wwylele authored
-
- May 20, 2017
-
-
wwylele authored
-
- May 17, 2017
-
-
wwylele authored
variable value is not masked. the masked and combined register value should be used instead
-
- May 12, 2017
-
-
Jannik Vogel authored
This adds the handlers for the geometry shader register writes which will call the functions from the previous commit to update registers for the GS.
-
Jannik Vogel authored
The commit after this one adds GS register writes, so this moves the VS handlers into functions so they can be re-used and extended more easily.
-
- Feb 09, 2017
-
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
Also remove some unused members.
-
- Feb 04, 2017
-
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
- Jan 30, 2017
-
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
A few registers had names such as "count" or "number" when they actually contained the maximum (that is, count - 1). This can easily lead to hard to notice off by one errors.
-
- Jan 26, 2017
-
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
Currently there's only a single dummy implementation, which will be split in a following commit.
-
Yuri Kunde Schlesner authored
This removes all implicit dependency of ShaderState on global PICA state.
-
Yuri Kunde Schlesner authored
-
- Dec 16, 2016
-
-
Yuri Kunde Schlesner authored
-
- Dec 15, 2016
-
-
Yuri Kunde Schlesner authored
-
Yuri Kunde Schlesner authored
Speeds up ALBW main menu slightly (~3%)
-
Yuri Kunde Schlesner authored
-
- Dec 11, 2016
-
-
Lioncash authored
Previously there was a split where some of the services were in the Service namespace and others were not.
-
- Nov 27, 2016
-
-
Emmanuel Gil Peyrot authored
Fixes #1960.
-
- Nov 24, 2016
-
-
jphalimi authored
This patch brings +3% performance improvement on average. It removes ToVertex() as an important hotspot of the emulator.
-
- Nov 22, 2016
-
-
wwylele authored
-
- Nov 20, 2016
-
-
Subv authored
-
- Oct 20, 2016
-
-
Ricardo de Almeida Gonzaga authored
-
- Sep 21, 2016
-
-
Yuri Kunde Schlesner authored
-
Emmanuel Gil Peyrot authored
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
-
- Sep 19, 2016
-
-
Yuri Kunde Schlesner authored
-
- Sep 18, 2016
-
-
Emmanuel Gil Peyrot authored
-
- Jun 06, 2016
-
-
Jannik Vogel authored
-