Emmanuel Gil Peyrot
0820c99462
GPU: Remove the broken frame_skip option.
Fixes #1960 .
9 years ago
jphalimi
82210ab480
Cache Vertices instead of Output registers ( #2165 )
This patch brings +3% performance improvement on average. It removes
ToVertex() as an important hotspot of the emulator.
9 years ago
wwylele
75affa13f7
Fix format error from #2195
9 years ago
Subv
050e9be15b
GPU/CiTrace: Avoid calling GetTextures() when not necessary.
9 years ago
Ricardo de Almeida Gonzaga
13d46f6820
Fix typos
9 years ago
Yuri Kunde Schlesner
84fbbe2629
Use negative priorities to avoid special-casing the self-include
9 years ago
Emmanuel Gil Peyrot
ebdae19fd2
Remove empty newlines in #include blocks.
This makes clang-format useful on those.
Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
9 years ago
Yuri Kunde Schlesner
396a8d91a4
Manually tweak source formatting and then re-run clang-format
9 years ago
Emmanuel Gil Peyrot
dc8479928c
Sources: Run clang-format on everything.
9 years ago
Jannik Vogel
57855a1701
Pica: Add fog state
10 years ago
Jannik Vogel
ff0fa86b17
Retrieve shader result from new OutputRegisters-type
10 years ago
Jannik Vogel
6c6d99ca51
Move default_attributes into Pica state
10 years ago
Jannik Vogel
ae7a82fa1c
Turn ShaderSetup into struct
10 years ago
Lioncash
1357724cd9
vertex_loader: Add constructors to facilitate immediate and two-step initialization
10 years ago
Jannik Vogel
7a77b8356c
Pica: Rename VertexLoaded breakpoint to VertexShaderInvocation
10 years ago
Emmanuel Gil Peyrot
691a42fe98
VideoCore: Run include-what-you-use and fix most includes.
10 years ago
Yuri Kunde Schlesner
e3a8292495
Common: Remove section measurement from profiler ( #1731 )
This has been entirely superseded by MicroProfile. The rest of the code
can go when a simpler frametime/FPS meter is added to the GUI.
10 years ago
Henrik Rydgard
a86d7cacc1
Move and rename the MemoryAccesses class to MemoryAccessTracker.
10 years ago
Henrik Rydgard
2403e86cbb
Don't keep base_address in the loader, it doesn't belong there (with it, the loader can't be cached).
10 years ago
Henrik Rydgard
47ff008817
Refactor: Extract VertexLoader from command_processor.cpp.
Preparation for a similar concept to Dolphin or PPSSPP. These can be JIT-ed and cached.
10 years ago
Henrik Rydgard
0cf15f64ef
Remove late accesses to attribute_config
10 years ago
bunnei
ffcf7ecee9
shader: Remove unused 'state' argument from 'Setup' function.
10 years ago
Jannik Vogel
ff7c798d86
Pica: Remove geometry dumper (PICA_DUMP_GEOMETRY)
10 years ago
Yuri Kunde Schlesner
81004211dd
Pica: Improve accuracy of immediate-mode support
This partially fixes Etrian Odyssey IV.
10 years ago
Lioncash
63e956cc7a
video_core: Don't cast away const
10 years ago
Jannik Vogel
7eef9ebc3b
PICA: Alignment happens locally in vertex
10 years ago
Jannik Vogel
a66c186e81
PICA: Align vertex attributes
10 years ago
Lioncash
bf76afc68d
renderer_base: Don't directly expose the rasterizer unique_ptr
There's no reason to allow direct access to the unique_ptr instance. Only
its contained pointer.
10 years ago
Dwayne Slater
6b775034dd
Add immediate mode vertex submission
10 years ago
Dwayne Slater
ed8072b48b
Fix out of bounds array access when loading a component >= 12
10 years ago
Dwayne Slater
82fc075ff6
Add support for padding vertex attributes
10 years ago
MerryMage
6c71858c5c
BitField: Make trivially copyable and remove assignment operator
10 years ago
bunnei
a949fd5f25
pica_types: Replace float24/20/16 with a template class.
10 years ago
bunnei
d171822dce
command_processor: Add an assertion to ensure LUTs are not written past their boundaries.
10 years ago
bunnei
281bc90ad2
pica: Implement fragment lighting LUTs.
10 years ago
Lioncash
4966568076
command_processor: Get rid of variable shadowing
10 years ago
Yuri Kunde Schlesner
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.
10 years ago
Subv
7a37dba75b
GPU/Loaders: Log an error when a loader tries to load from a component beyond the available ones (12).
Related to #1170
10 years ago
Lioncash
aec28ed91e
video_core: Reorganize headers
10 years ago
aroulin
ba998b85a1
video_core: Fix format specifiers warnings
10 years ago
Subv
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.
10 years ago
Yuri Kunde Schlesner
0fcabd2b11
Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
11 years ago
Tony Wasserka
33ba604fd9
Introduce a shader tracer to allow inspection of input/output values for each processed instruction.
11 years ago
bunnei
3f69c2039d
Shader: Define a common interface for running vertex shader programs.
11 years ago
bunnei
18527b9e21
Shader: Move shader code to its own subdirectory, "shader".
11 years ago
bunnei
642b9b5030
GPU: Refactor "VertexShader" namespace to "Shader".
- Also renames "vertex_shader.*" to "shader_interpreter.*"
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
Lectem
e663751f8b
citra-qt/command list: Add mask column
11 years ago
Yuri Kunde Schlesner
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.
11 years ago
Yuri Kunde Schlesner
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.
11 years ago