Commit Graph

53 Commits (97e06b0a0daccd3347ae1bcaf294093b5af32e85)

Author SHA1 Message Date
Yuri Kunde Schlesner dcdffabfe6 VideoCore: Extract swrast-specific data from OutputVertex
Yuri Kunde Schlesner 8ed9f9d49f VideoCore/Shader: Clean up OutputVertex::FromAttributeBuffer
This also fixes a long-standing but neverthless harmless memory
corruption bug, whech the padding of the OutputVertex struct would get
corrupted by unused attributes.
Yuri Kunde Schlesner 92bf5c88e6 VideoCore: Split shader output writing from semantic loading
Yuri Kunde Schlesner 335df895b9 VideoCore: Consistently use shader configuration to load attributes
Yuri Kunde Schlesner ab6954e942 VideoCore: Rename some types to more accurate names
Yuri Kunde Schlesner 6fa3687afc Shader: Remove OutputRegisters struct
Yuri Kunde Schlesner 9ea5eacf91 Shader: Initialize conditional_code in interpreter
This doesn't belong in LoadInputVertex because it also happens for
non-VS invocations. Since it's not used by the JIT it seems adequate to
initialize it in the interpreter which is the only thing that cares
about them.
Yuri Kunde Schlesner 114d6b2f97 VideoCore/Shader: Split interpreter and JIT into separate ShaderEngines
Yuri Kunde Schlesner 8eefc62833 VideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h}
Yuri Kunde Schlesner dd4a1672a7 VideoCore/Shader: Split shader uniform state and shader engine
Currently there's only a single dummy implementation, which will be
split in a following commit.
Yuri Kunde Schlesner bd82cffd0b VideoCore/Shader: Add constness to methods
Yuri Kunde Schlesner 1e1f939817 VideoCore/Shader: Use only entry_point as ShaderSetup param
This removes all implicit dependency of ShaderState on global PICA
state.
Yuri Kunde Schlesner e3caf669b0 VideoCore/Shader: Use self instead of g_state.vs in ShaderSetup
Yuri Kunde Schlesner 34d581f2dc VideoCore/Shader: Extract input vertex loading code into function
Kloen 5cc94c17f6 video_core: fix shader.cpp signed / unsigned warning
Yuri Kunde Schlesner c135317de1 VideoCore/Shader: Extract DebugData out from UnitState
Yuri Kunde Schlesner f00ada3363 VideoCore: Eliminate an unnecessary copy in the drawcall loop
Yuri Kunde Schlesner 26b68313b9 VideoCore: Fix out-of-bounds read in ShaderSetup::ProduceDebugInfo
As far as I can tell, memset was replaced by a fill without correcting
the parameter type, causing an out-of-bounds array read in the Vec4
constructor.
Yuri Kunde Schlesner 84fbbe2629 Use negative priorities to avoid special-casing the self-include
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.
Yuri Kunde Schlesner 396a8d91a4 Manually tweak source formatting and then re-run clang-format
Emmanuel Gil Peyrot dc8479928c Sources: Run clang-format on everything.
Jannik Vogel ff0fa86b17 Retrieve shader result from new OutputRegisters-type
Jannik Vogel 1308afe2c2 Use new shader-jit signature for interpreter
Jannik Vogel 4e01e9ffc5 Refactor access to state in shader-jit
Jannik Vogel 7e756faaba Move program_counter and call_stack from UnitState to interpreter
Jannik Vogel ae7a82fa1c Turn ShaderSetup into struct
Jannik Vogel 696cb197a5 Pica: Replace logic in shader.cpp with loop
Emmanuel Gil Peyrot 691a42fe98 VideoCore: Run include-what-you-use and fix most includes.
Yuri Kunde Schlesner e3a8292495 Common: Remove section measurement from profiler ()
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.
bunnei 3f623b2561 shader_jit_x64.cpp: Rename JitCompiler to JitShader.
bunnei ffcf7ecee9 shader: Remove unused 'state' argument from 'Setup' function.
bunnei a5a74eb121 shader_jit_x64: Specify shader main offset at runtime.
bunnei c9d10de644 shader_jit_x64: Allocate each program independently and persist for emu session.
Mathew Maidment aa6380e5bc Merge pull request from MerryMage/make_unique
Common: Remove Common::make_unique, use std::make_unique
MerryMage a06dcfeb61 Common: Remove Common::make_unique, use std::make_unique
bunnei ebbba0d381 Merge pull request from JayFoxRox/vs-output-map
Respect vs output map
Jannik Vogel f746a00964 Respect vs output map
bunnei 6efb710b28 shader_jit_x64: Clear cache after code space fills up.
bunnei 46f78b7f19 shader: Update log message to use proper log class.
Dwayne Slater 6b775034dd Add immediate mode vertex submission
bunnei b003075570 pica: Implement decoding of basic fragment lighting components.
- Diffuse
- Distance attenuation
- float16/float20 types
- Vertex Shader 'view' output
Lioncash 526eb33d1e video_core: Remove unused variables
archshift dd0e1061ef Shader JIT: ifdef out reference to ifdef'd out shader_map
shader_map was only defined on x86 architectures, but was cleared on shutdown
with no ifdef protection. Ifdef this out so non-x86 architectures can be built.
Yuri Kunde Schlesner 0fcabd2b11 Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
Tony Wasserka 33ba604fd9 Introduce a shader tracer to allow inspection of input/output values for each processed instruction.
Tony Wasserka 4cb302c8ae citra-qt: Improve shader debugger.
Now supports dumping the current shader and recognizes a larger number of output semantics.
bunnei db97090cad Shader: Use a POD struct for registers.
bunnei b39c053785 Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64.
bunnei bd7e691f78 x64: Refactor to remove fake interfaces and general cleanups.