aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader/shader.h
AgeCommit message (Collapse)Author
2018-01-12Remove references to PICA and rasterizers in video_coreJames Rowe
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-05-11Pica: Set program code / swizzle data limit to 4096Jannik Vogel
One of the later commits will enable writing to GS regs. It turns out that on startup, most games will write 4096 GS program words. The current limit of 1024 would hence result in 3072 (4096 - 1024) error messages: ``` HW.GPU <Error> video_core/shader/shader.cpp:WriteProgramCode:229: Invalid GS program offset 1024 ``` New constants have been introduced to represent these limits. The swizzle data size has also been raised. This matches the given field sizes of [GPUREG_SH_OPDESCS_INDEX](https://3dbrew.org/wiki/GPU/Internal_Registers#GPUREG_SH_OPDESCS_INDEX) and [GPUREG_SH_CODETRANSFER_INDEX](https://www.3dbrew.org/wiki/GPU/Internal_Registers#GPUREG_SH_CODETRANSFER_INDEX) (12 bit = [0; 4095]).
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: 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-25VideoCore/Shader: Move entry_point to SetupBatchYuri Kunde Schlesner
2017-01-25VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetupYuri Kunde Schlesner
2017-01-25Shader: Remove OutputRegisters structYuri Kunde Schlesner
2017-01-25VideoCore/Shader: Move ProduceDebugInfo to InterpreterEngineYuri Kunde Schlesner
2017-01-25VideoCore/Shader: Split interpreter and JIT into separate ShaderEnginesYuri 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
2016-12-16VideoCore/Shader: Extract DebugData out from UnitStateYuri Kunde Schlesner
2016-12-15VideoCore/Shader: Remove dynamic control flow in (Get)UniformOffsetYuri Kunde Schlesner
2016-12-15VideoCore/Shader: Move DebugData to a separate fileYuri Kunde Schlesner
2016-12-14VideoCore: Eliminate an unnecessary copy in the drawcall loopYuri 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-13Refactor access to state in shader-jitJannik Vogel
2016-05-12Move program_counter and call_stack from UnitState to interpreterJannik Vogel
2016-05-12Move default_attributes into Pica stateJannik Vogel
2016-05-11Merge pull request #1690 from JayFoxRox/tex-type-3bunnei
Pica: Implement texture type 3 (Projection2D)
2016-05-11Turn ShaderSetup into structJannik Vogel
2016-05-11Pica: Add tc0.w to OutputVertexJannik Vogel
2016-04-30VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot
2016-04-28Refactor: Extract VertexLoader from command_processor.cpp.Henrik Rydgard
Preparation for a similar concept to Dolphin or PPSSPP. These can be JIT-ed and cached.
2016-04-13shader: Remove unused 'state' argument from 'Setup' function.bunnei
2016-03-09Common: Get rid of alignment macrosLioncash
The gl rasterizer already uses alignas, so we may as well move everything over.
2016-03-02Add immediate mode vertex submissionDwayne Slater
2016-02-05pica: Implement decoding of basic fragment lighting components.bunnei
- Diffuse - Distance attenuation - float16/float20 types - Vertex Shader 'view' output
2015-09-07Shader: Fix size_t to int casts of register offsetsaroulin
2015-08-16Build fix for Debug configurations.Tony Wasserka
2015-08-16Introduce a shader tracer to allow inspection of input/output values for ↵Tony Wasserka
each processed instruction.
2015-08-15Shader: Use a POD struct for registers.bunnei
2015-08-15Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.bunnei
- Config: Add an option for selecting to use shader JIT or interpreter. - Qt: Add a menu option for enabling/disabling the shader JIT.
2015-08-15Shader: Define a common interface for running vertex shader programs.bunnei