aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader/shader.cpp
AgeCommit message (Collapse)Author
2018-01-12Remove references to PICA and rasterizers in video_coreJames Rowe
2017-09-17Improved performance of FromAttributeBufferHuw Pascoe
Ternary operator is optimized by the compiler whereas std::min() is meant to return a value. I've noticed a 5%-10% emulation speed increase.
2017-08-19correct constnesswwylele
2017-08-19pica/shader: extend UnitState for GSwwylele
Among four shader units in pica, a special unit can be configured to run both VS and GS program. GSUnitState represents this unit, which extends UnitState (which represents the other three normal units) with extra state for primitive emitting. It uses lots of raw pointers to represent internal structure in order to keep it standard layout type for JIT to access. This unit doesn't handle triangle winding (inverting) itself; instead, it calls a WindingSetter handler. This will be explained in the following commits
2017-02-12Merge pull request #2550 from yuriks/pica-refactor2Yuri Kunde Schlesner
Small VideoCore cleanups
2017-02-10video_core: Fix benign out-of-bounds indexing of array (#2553)Yuri Kunde Schlesner
The resulting pointer wasn't written to unless the index was verified as valid, but that's still UB and triggered debug checks in MSVC. Reported by garrettboast on IRC
2017-02-09VideoCore: Split regs.h inclusionsYuri Kunde Schlesner
2017-02-04VideoCore: Move Regs to its own fileYuri Kunde Schlesner
2017-02-04VideoCore: Split shader regs from Regs structYuri Kunde Schlesner
2017-02-04VideoCore: Split rasterizer regs from Regs structYuri Kunde Schlesner
2017-01-29VideoCore: Extract swrast-specific data from OutputVertexYuri Kunde Schlesner
2017-01-29VideoCore/Shader: Clean up OutputVertex::FromAttributeBufferYuri Kunde Schlesner
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.
2017-01-29VideoCore: Split shader output writing from semantic loadingYuri Kunde Schlesner
2017-01-29VideoCore: Consistently use shader configuration to load attributesYuri Kunde Schlesner
2017-01-29VideoCore: Rename some types to more accurate namesYuri Kunde Schlesner
2017-01-25Shader: Remove OutputRegisters structYuri Kunde Schlesner
2017-01-25Shader: Initialize conditional_code in interpreterYuri Kunde Schlesner
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.
2017-01-25VideoCore/Shader: Split interpreter and JIT into separate ShaderEnginesYuri Kunde Schlesner
2017-01-25VideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h}Yuri Kunde Schlesner
2017-01-25VideoCore/Shader: Split shader uniform state and shader engineYuri Kunde Schlesner
Currently there's only a single dummy implementation, which will be split in a following commit.
2017-01-25VideoCore/Shader: Add constness to methodsYuri Kunde Schlesner
2017-01-25VideoCore/Shader: Use only entry_point as ShaderSetup paramYuri Kunde Schlesner
This removes all implicit dependency of ShaderState on global PICA state.
2017-01-25VideoCore/Shader: Use self instead of g_state.vs in ShaderSetupYuri Kunde Schlesner
2017-01-25VideoCore/Shader: Extract input vertex loading code into functionYuri Kunde Schlesner
2017-01-23video_core: fix shader.cpp signed / unsigned warningKloen
2016-12-16VideoCore/Shader: Extract DebugData out from UnitStateYuri Kunde Schlesner
2016-12-14VideoCore: Eliminate an unnecessary copy in the drawcall loopYuri Kunde Schlesner
2016-09-29VideoCore: Fix out-of-bounds read in ShaderSetup::ProduceDebugInfoYuri Kunde Schlesner
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.
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-18Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot
2016-05-16Retrieve shader result from new OutputRegisters-typeJannik Vogel
2016-05-13Use new shader-jit signature for interpreterJannik Vogel
2016-05-13Refactor access to state in shader-jitJannik Vogel
2016-05-12Move program_counter and call_stack from UnitState to interpreterJannik Vogel
2016-05-11Turn ShaderSetup into structJannik Vogel
2016-05-03Pica: Replace logic in shader.cpp with loopJannik Vogel
2016-04-30VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot
2016-04-29Common: Remove section measurement from profiler (#1731)Yuri Kunde Schlesner
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-13shader_jit_x64.cpp: Rename JitCompiler to JitShader.bunnei
2016-04-13shader: Remove unused 'state' argument from 'Setup' function.bunnei
2016-04-13shader_jit_x64: Specify shader main offset at runtime.bunnei
2016-04-13shader_jit_x64: Allocate each program independently and persist for emu session.bunnei
2016-04-05Merge pull request #1643 from MerryMage/make_uniqueMathew Maidment
Common: Remove Common::make_unique, use std::make_unique
2016-04-05Common: Remove Common::make_unique, use std::make_uniqueMerryMage
2016-03-22Merge pull request #1508 from JayFoxRox/vs-output-mapbunnei
Respect vs output map
2016-03-14Respect vs output mapJannik Vogel
2016-03-12shader_jit_x64: Clear cache after code space fills up.bunnei
2016-03-12shader: Update log message to use proper log class.bunnei