Jannik Vogel
0d7d513c54
Pica: Add fog state
2016-06-07 00:06:28 +02:00
bunnei
e88a0206f1
Merge pull request #1812 from JayFoxRox/refactor-shader
...
Retrieve shader result from new OutputRegisters-type
2016-05-31 18:12:56 -04:00
bunnei
cf069f5234
Merge pull request #1733 from lioncash/vert_loader
...
VertexLoader: Minor changes
2016-05-23 21:13:34 -04:00
Jannik Vogel
df3eeea302
Retrieve shader result from new OutputRegisters-type
2016-05-16 18:55:51 +02:00
Jannik Vogel
101eb11369
Move default_attributes into Pica state
2016-05-12 19:05:41 +02:00
Jannik Vogel
acfb5257dd
Turn ShaderSetup into struct
2016-05-11 23:48:24 +02:00
Lioncash
561157d259
vertex_loader: Add constructors to facilitate immediate and two-step initialization
2016-05-08 23:03:32 -04:00
Jannik Vogel
db061e0568
Pica: Rename VertexLoaded breakpoint to VertexShaderInvocation
2016-05-04 10:21:51 +02:00
Emmanuel Gil Peyrot
c39a267974
VideoCore: Run include-what-you-use and fix most includes.
2016-04-30 17:02:41 +01:00
bunnei
df1d6ff8a1
Merge pull request #1730 from hrydgard/vertex-loader
...
* Remove late accesses to attribute_config
* Refactor: Extract VertexLoader from command_processor.cpp.
Preparation for a similar concept to Dolphin or PPSSPP. These can be JIT-ed and cached.
* Move "&" to their proper place, add missing includes and make some properly relative.
* Don't keep base_address in the loader, it doesn't belong there (with it, the loader can't be cached).
* Optimize the vertex loader, nearly doubling its speed.
* Debugger fix
* Move and rename the MemoryAccesses class to MemoryAccessTracker.
2016-04-29 09:42:47 -04:00
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.
2016-04-29 00:07:10 -07:00
Henrik Rydgard
9f1cffa3e9
Move and rename the MemoryAccesses class to MemoryAccessTracker.
2016-04-29 08:50:21 +02:00
Henrik Rydgard
b57bcfd528
Don't keep base_address in the loader, it doesn't belong there (with it, the loader can't be cached).
2016-04-28 20:17:35 +02:00
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.
2016-04-28 19:05:55 +02:00
Henrik Rydgard
03f90e7dfd
Remove late accesses to attribute_config
2016-04-28 18:07:34 +02:00
bunnei
110725828a
shader: Remove unused 'state' argument from 'Setup' function.
2016-04-13 23:04:48 -04:00
Jannik Vogel
4e717ff177
Pica: Remove geometry dumper (PICA_DUMP_GEOMETRY)
2016-04-10 22:07:06 +02:00
Yuri Kunde Schlesner
8c337f1d29
Pica: Improve accuracy of immediate-mode support
...
This partially fixes Etrian Odyssey IV.
2016-03-23 20:18:40 -07:00
bunnei
a52226f4fc
Merge pull request #1535 from JayFoxRox/fix-align
...
PICA: Alignment happens locally in vertex
2016-03-17 20:00:00 -04:00
Lioncash
7b2af63608
video_core: Don't cast away const
2016-03-17 02:01:38 -04:00
Jannik Vogel
67d9455c24
PICA: Alignment happens locally in vertex
2016-03-17 02:24:20 +01:00
Jannik Vogel
5cf2de5ecf
PICA: Align vertex attributes
2016-03-13 04:54:23 +01:00
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.
2016-03-08 21:31:44 -05:00
Dwayne Slater
141fe87a0f
Add immediate mode vertex submission
2016-03-02 22:16:38 -05:00
bunnei
87ffba7a6f
Merge pull request #1395 from ds84182/padding-attributes
...
Add support for padding vertex attributes
2016-02-24 18:15:16 -08:00
Dwayne Slater
77879fcf08
Fix out of bounds array access when loading a component >= 12
2016-02-20 19:03:14 -05:00
Dwayne Slater
ad2c86d416
Add support for padding vertex attributes
2016-02-20 19:00:31 -05:00
MerryMage
867c111e99
BitField: Make trivially copyable and remove assignment operator
2016-02-12 19:51:16 +00:00
bunnei
cc283bfedd
pica_types: Replace float24/20/16 with a template class.
2016-02-05 17:20:22 -05:00
bunnei
27523be7a4
command_processor: Add an assertion to ensure LUTs are not written past their boundaries.
2016-02-05 17:20:20 -05:00
bunnei
8a9194f06e
pica: Implement fragment lighting LUTs.
2016-02-05 17:17:27 -05:00
Lioncash
3b682a824e
command_processor: Get rid of variable shadowing
2016-01-17 02:22:51 -05:00
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.
2015-12-07 20:20:38 -08:00
Subv
b797ef4d9a
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
Lioncash
2cd98a45cb
video_core: Reorganize headers
2015-09-11 07:31:15 -04:00
aroulin
7019a4eaeb
video_core: Fix format specifiers warnings
2015-09-02 08:20:00 +02:00
bunnei
70363eec82
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
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.
2015-08-30 15:46:22 -05:00
Yuri Kunde Schlesner
424b0fa646
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
Tony Wasserka
d6b1591b01
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
Tony Wasserka
1c1a9ab09b
Introduce a shader tracer to allow inspection of input/output values for each processed instruction.
2015-08-16 14:12:11 +02:00
bunnei
5794310781
Shader: Define a common interface for running vertex shader programs.
2015-08-15 17:33:44 -04:00
bunnei
2d100ebae3
Shader: Move shader code to its own subdirectory, "shader".
2015-08-15 17:33:42 -04:00
bunnei
f622a78544
GPU: Refactor "VertexShader" namespace to "Shader".
...
- Also renames "vertex_shader.*" to "shader_interpreter.*"
2015-08-15 17:33:41 -04:00
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.
2015-08-04 23:41:47 -03:00
bunnei
31c1bb901b
Merge pull request #963 from yuriks/gpu-fixes
...
Misc. GPU vertex loading fixes
2015-07-29 16:45:17 -04:00
Lectem
e663751f8b
citra-qt/command list: Add mask column
2015-07-26 16:23:12 +02:00
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.
2015-07-26 06:55:47 -03:00
Yuri Kunde Schlesner
9a0f9f12cd
Merge pull request #892 from zawata/another-warning-fixes
...
Yet More Warning Fixes
2015-07-25 12:50:32 -07:00
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.
2015-07-23 16:51:25 -03:00