summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove references to PICA and rasterizers in video_coreJames Rowe2018-01-131-233/+0
|
* correct constnesswwylele2017-08-191-1/+2
|
* pica/shader: extend UnitState for GSwwylele2017-08-191-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
* Pica: Set program code / swizzle data limit to 4096Jannik Vogel2017-05-111-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]).
* VideoCore: Split regs.h inclusionsYuri Kunde Schlesner2017-02-091-1/+2
|
* VideoCore: Move Regs to its own fileYuri Kunde Schlesner2017-02-041-1/+1
|
* VideoCore: Split shader regs from Regs structYuri Kunde Schlesner2017-02-041-2/+2
|
* VideoCore: Split rasterizer regs from Regs structYuri Kunde Schlesner2017-02-041-9/+9
|
* VideoCore: Extract swrast-specific data from OutputVertexYuri Kunde Schlesner2017-01-301-36/+13
|
* VideoCore: Split shader output writing from semantic loadingYuri Kunde Schlesner2017-01-301-2/+3
|
* VideoCore: Consistently use shader configuration to load attributesYuri Kunde Schlesner2017-01-301-3/+3
|
* VideoCore: Rename some types to more accurate namesYuri Kunde Schlesner2017-01-301-2/+2
|
* VideoCore/Shader: Move entry_point to SetupBatchYuri Kunde Schlesner2017-01-261-3/+3
|
* VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetupYuri Kunde Schlesner2017-01-261-4/+13
|
* Shader: Remove OutputRegisters structYuri Kunde Schlesner2017-01-261-12/+5
|
* VideoCore/Shader: Move ProduceDebugInfo to InterpreterEngineYuri Kunde Schlesner2017-01-261-11/+0
|
* VideoCore/Shader: Split interpreter and JIT into separate ShaderEnginesYuri Kunde Schlesner2017-01-261-4/+1
|
* VideoCore/Shader: Split shader uniform state and shader engineYuri Kunde Schlesner2017-01-261-5/+12
| | | | | Currently there's only a single dummy implementation, which will be split in a following commit.
* VideoCore/Shader: Add constness to methodsYuri Kunde Schlesner2017-01-261-2/+2
|
* VideoCore/Shader: Use only entry_point as ShaderSetup paramYuri Kunde Schlesner2017-01-261-2/+2
| | | | | This removes all implicit dependency of ShaderState on global PICA state.
* VideoCore/Shader: Use self instead of g_state.vs in ShaderSetupYuri Kunde Schlesner2017-01-261-2/+1
|
* VideoCore/Shader: Extract input vertex loading code into functionYuri Kunde Schlesner2017-01-261-3/+9
|
* VideoCore/Shader: Extract DebugData out from UnitStateYuri Kunde Schlesner2016-12-161-4/+1
|
* VideoCore/Shader: Remove dynamic control flow in (Get)UniformOffsetYuri Kunde Schlesner2016-12-161-13/+8
|
* VideoCore/Shader: Move DebugData to a separate fileYuri Kunde Schlesner2016-12-161-172/+1
|
* VideoCore: Eliminate an unnecessary copy in the drawcall loopYuri Kunde Schlesner2016-12-151-1/+1
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-4/+0
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner2016-09-191-2/+1
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-44/+48
|
* Retrieve shader result from new OutputRegisters-typeJannik Vogel2016-05-161-4/+13
|
* Refactor access to state in shader-jitJannik Vogel2016-05-131-4/+21
|
* Move program_counter and call_stack from UnitState to interpreterJannik Vogel2016-05-121-17/+0
|
* Move default_attributes into Pica stateJannik Vogel2016-05-121-2/+0
|
* Merge pull request #1690 from JayFoxRox/tex-type-3bunnei2016-05-121-1/+2
|\ | | | | Pica: Implement texture type 3 (Projection2D)
| * Pica: Add tc0.w to OutputVertexJannik Vogel2016-05-111-1/+2
| |
* | Turn ShaderSetup into structJannik Vogel2016-05-111-41/+42
|/
* VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot2016-04-301-1/+7
|
* Refactor: Extract VertexLoader from command_processor.cpp.Henrik Rydgard2016-04-281-1/+1
| | | | Preparation for a similar concept to Dolphin or PPSSPP. These can be JIT-ed and cached.
* shader: Remove unused 'state' argument from 'Setup' function.bunnei2016-04-141-2/+1
|
* Common: Get rid of alignment macrosLioncash2016-03-091-4/+4
| | | | | The gl rasterizer already uses alignas, so we may as well move everything over.
* Add immediate mode vertex submissionDwayne Slater2016-03-031-1/+17
|
* pica: Implement decoding of basic fragment lighting components.bunnei2016-02-051-3/+5
| | | | | | | - Diffuse - Distance attenuation - float16/float20 types - Vertex Shader 'view' output
* Shader: Fix size_t to int casts of register offsetsaroulin2015-09-071-6/+6
|
* Build fix for Debug configurations.Tony Wasserka2015-08-161-1/+1
|
* Introduce a shader tracer to allow inspection of input/output values for each processed instruction.Tony Wasserka2015-08-161-6/+189
|
* Shader: Use a POD struct for registers.bunnei2015-08-161-9/+12
|
* Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.bunnei2015-08-161-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.
* Shader: Define a common interface for running vertex shader programs.bunnei2015-08-151-0/+163