summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-01-13Remove references to PICA and rasterizers in video_coreJames Rowe1-233/+0
2017-08-19correct constnesswwylele1-1/+2
2017-08-19pica/shader: extend UnitState for GSwwylele1-0/+46
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 Vogel1-2/+5
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 Schlesner1-1/+2
2017-02-04VideoCore: Move Regs to its own fileYuri Kunde Schlesner1-1/+1
2017-02-04VideoCore: Split shader regs from Regs structYuri Kunde Schlesner1-2/+2
2017-02-04VideoCore: Split rasterizer regs from Regs structYuri Kunde Schlesner1-9/+9
2017-01-30VideoCore: Extract swrast-specific data from OutputVertexYuri Kunde Schlesner1-36/+13
2017-01-30VideoCore: Split shader output writing from semantic loadingYuri Kunde Schlesner1-2/+3
2017-01-30VideoCore: Consistently use shader configuration to load attributesYuri Kunde Schlesner1-3/+3
2017-01-30VideoCore: Rename some types to more accurate namesYuri Kunde Schlesner1-2/+2
2017-01-26VideoCore/Shader: Move entry_point to SetupBatchYuri Kunde Schlesner1-3/+3
2017-01-26VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetupYuri Kunde Schlesner1-4/+13
2017-01-26Shader: Remove OutputRegisters structYuri Kunde Schlesner1-12/+5
2017-01-26VideoCore/Shader: Move ProduceDebugInfo to InterpreterEngineYuri Kunde Schlesner1-11/+0
2017-01-26VideoCore/Shader: Split interpreter and JIT into separate ShaderEnginesYuri Kunde Schlesner1-4/+1
2017-01-26VideoCore/Shader: Split shader uniform state and shader engineYuri Kunde Schlesner1-5/+12
Currently there's only a single dummy implementation, which will be split in a following commit.
2017-01-26VideoCore/Shader: Add constness to methodsYuri Kunde Schlesner1-2/+2
2017-01-26VideoCore/Shader: Use only entry_point as ShaderSetup paramYuri Kunde Schlesner1-2/+2
This removes all implicit dependency of ShaderState on global PICA state.
2017-01-26VideoCore/Shader: Use self instead of g_state.vs in ShaderSetupYuri Kunde Schlesner1-2/+1
2017-01-26VideoCore/Shader: Extract input vertex loading code into functionYuri Kunde Schlesner1-3/+9
2016-12-16VideoCore/Shader: Extract DebugData out from UnitStateYuri Kunde Schlesner1-4/+1
2016-12-16VideoCore/Shader: Remove dynamic control flow in (Get)UniformOffsetYuri Kunde Schlesner1-13/+8
2016-12-16VideoCore/Shader: Move DebugData to a separate fileYuri Kunde Schlesner1-172/+1
2016-12-15VideoCore: Eliminate an unnecessary copy in the drawcall loopYuri Kunde Schlesner1-1/+1
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-4/+0
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-19Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner1-2/+1
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-44/+48
2016-05-16Retrieve shader result from new OutputRegisters-typeJannik Vogel1-4/+13
2016-05-13Refactor access to state in shader-jitJannik Vogel1-4/+21
2016-05-12Move program_counter and call_stack from UnitState to interpreterJannik Vogel1-17/+0
2016-05-12Move default_attributes into Pica stateJannik Vogel1-2/+0
2016-05-11Turn ShaderSetup into structJannik Vogel1-41/+42
2016-05-11Pica: Add tc0.w to OutputVertexJannik Vogel1-1/+2
2016-04-30VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot1-1/+7
2016-04-28Refactor: Extract VertexLoader from command_processor.cpp.Henrik Rydgard1-1/+1
Preparation for a similar concept to Dolphin or PPSSPP. These can be JIT-ed and cached.
2016-04-14shader: Remove unused 'state' argument from 'Setup' function.bunnei1-2/+1
2016-03-09Common: Get rid of alignment macrosLioncash1-4/+4
The gl rasterizer already uses alignas, so we may as well move everything over.
2016-03-03Add immediate mode vertex submissionDwayne Slater1-1/+17
2016-02-05pica: Implement decoding of basic fragment lighting components.bunnei1-3/+5
- Diffuse - Distance attenuation - float16/float20 types - Vertex Shader 'view' output
2015-09-07Shader: Fix size_t to int casts of register offsetsaroulin1-6/+6
2015-08-16Build fix for Debug configurations.Tony Wasserka1-1/+1
2015-08-16Introduce a shader tracer to allow inspection of input/output values for each processed instruction.Tony Wasserka1-6/+189
2015-08-16Shader: Use a POD struct for registers.bunnei1-9/+12
2015-08-16Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.bunnei1-0/+3
- 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.bunnei1-0/+163