Emmanuel Gil Peyrot
87d3afe635
GPU: Remove the broken frame_skip option.
Fixes #1960 .
9 years ago
jphalimi
5a580171b6
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
1db648c247
Fix format error from #2195
9 years ago
Subv
9ee95ffbec
GPU/CiTrace: Avoid calling GetTextures() when not necessary.
9 years ago
Ricardo de Almeida Gonzaga
07fdcf150d
Fix typos
9 years ago
Yuri Kunde Schlesner
fa5d9d8266
Use negative priorities to avoid special-casing the self-include
10 years ago
Emmanuel Gil Peyrot
1138ec0d49
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.
10 years ago
Yuri Kunde Schlesner
1e4a5da9f4
Manually tweak source formatting and then re-run clang-format
10 years ago
Emmanuel Gil Peyrot
628ed4376a
Sources: Run clang-format on everything.
10 years ago
Jannik Vogel
0d7d513c54
Pica: Add fog state
10 years ago
Jannik Vogel
df3eeea302
Retrieve shader result from new OutputRegisters-type
10 years ago
Jannik Vogel
101eb11369
Move default_attributes into Pica state
10 years ago
Jannik Vogel
acfb5257dd
Turn ShaderSetup into struct
10 years ago
Lioncash
561157d259
vertex_loader: Add constructors to facilitate immediate and two-step initialization
10 years ago
Jannik Vogel
db061e0568
Pica: Rename VertexLoaded breakpoint to VertexShaderInvocation
10 years ago
Emmanuel Gil Peyrot
c39a267974
VideoCore: Run include-what-you-use and fix most includes.
10 years ago
Yuri Kunde Schlesner
2396b01d5d
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
9f1cffa3e9
Move and rename the MemoryAccesses class to MemoryAccessTracker.
10 years ago
Henrik Rydgard
b57bcfd528
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
c1ee661492
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
03f90e7dfd
Remove late accesses to attribute_config
10 years ago
bunnei
110725828a
shader: Remove unused 'state' argument from 'Setup' function.
10 years ago
Jannik Vogel
4e717ff177
Pica: Remove geometry dumper (PICA_DUMP_GEOMETRY)
10 years ago
Yuri Kunde Schlesner
8c337f1d29
Pica: Improve accuracy of immediate-mode support
This partially fixes Etrian Odyssey IV.
10 years ago
Lioncash
7b2af63608
video_core: Don't cast away const
10 years ago
Jannik Vogel
67d9455c24
PICA: Alignment happens locally in vertex
10 years ago
Jannik Vogel
5cf2de5ecf
PICA: Align vertex attributes
10 years ago
Lioncash
c9f47a9b3c
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
141fe87a0f
Add immediate mode vertex submission
10 years ago
Dwayne Slater
77879fcf08
Fix out of bounds array access when loading a component >= 12
10 years ago
Dwayne Slater
ad2c86d416
Add support for padding vertex attributes
10 years ago
MerryMage
867c111e99
BitField: Make trivially copyable and remove assignment operator
10 years ago
bunnei
cc283bfedd
pica_types: Replace float24/20/16 with a template class.
10 years ago
bunnei
27523be7a4
command_processor: Add an assertion to ensure LUTs are not written past their boundaries.
10 years ago
bunnei
8a9194f06e
pica: Implement fragment lighting LUTs.
11 years ago
Lioncash
3b682a824e
command_processor: Get rid of variable shadowing
10 years ago
Yuri Kunde Schlesner
102d39fe20
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
b797ef4d9a
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
2cd98a45cb
video_core: Reorganize headers
11 years ago
aroulin
7019a4eaeb
video_core: Fix format specifiers warnings
11 years ago
Subv
ad61138359
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.
11 years ago
Yuri Kunde Schlesner
424b0fa646
Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
11 years ago
Tony Wasserka
1c1a9ab09b
Introduce a shader tracer to allow inspection of input/output values for each processed instruction.
11 years ago
bunnei
5794310781
Shader: Define a common interface for running vertex shader programs.
11 years ago
bunnei
2d100ebae3
Shader: Move shader code to its own subdirectory, "shader".
11 years ago
bunnei
f622a78544
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