aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader/shader_interpreter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove references to PICA and rasterizers in video_coreJames Rowe2018-01-121-701/+0
|
* pica/shader/interpreter: implement SETEMIT and EMITwwylele2017-08-191-0/+16
|
* pica/shader_interpreter: fix off-by-one in LOOPwwylele2017-07-271-1/+1
|
* Pica: Set program code / swizzle data limit to 4096Jannik Vogel2017-05-111-1/+1
| | | | | | | | | | | | | 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 shader regs from Regs structYuri Kunde Schlesner2017-02-041-1/+1
|
* VideoCore: Consistently use shader configuration to load attributesYuri Kunde Schlesner2017-01-291-2/+2
|
* VideoCore: Rename some types to more accurate namesYuri Kunde Schlesner2017-01-291-2/+2
|
* VideoCore/Shader: Move entry_point to SetupBatchYuri Kunde Schlesner2017-01-251-10/+9
|
* VideoCore/Shader: Move per-batch ShaderEngine state into ShaderSetupYuri Kunde Schlesner2017-01-251-9/+7
|
* Shader: Remove OutputRegisters structYuri Kunde Schlesner2017-01-251-2/+2
|
* Shader: Initialize conditional_code in interpreterYuri Kunde Schlesner2017-01-251-0/+3
| | | | | | | 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.
* Shader: Don't read ShaderSetup from global stateYuri Kunde Schlesner2017-01-251-3/+3
|
* VideoCore/Shader: Split interpreter and JIT into separate ShaderEnginesYuri Kunde Schlesner2017-01-251-5/+34
|
* Fix some warnings (#2399)Jonathan Hao2017-01-041-2/+0
|
* VideoCore/Shader: Extract DebugData out from UnitStateYuri Kunde Schlesner2016-12-161-74/+72
|
* VideoCore/Shader: Extract evaluate_condition lambda to function scopeYuri Kunde Schlesner2016-12-161-26/+24
|
* VideoCore/Shader: Extract call lambda up a scope and remove unused paramYuri Kunde Schlesner2016-12-151-21/+17
|
* VideoCore/Shader: Move DebugData to a separate fileYuri Kunde Schlesner2016-12-151-0/+1
|
* VideoCore: Shader interpreter cleanupsYuri Kunde Schlesner2016-09-291-32/+42
|
* Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner2016-09-211-1/+1
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-4/+1
| | | | | | | 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-181-3/+2
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-143/+147
|
* VideoCore: Fix dangling lambda context in shader interpreterYuri Kunde Schlesner2016-09-151-1/+1
| | | | | | The static meant that after the first execution, these lambda context would be pointing to a random location on the stack. Fixes a random crash when using the interpreter.
* Retrieve shader result from new OutputRegisters-typeJannik Vogel2016-05-161-2/+2
|
* Use new shader-jit signature for interpreterJannik Vogel2016-05-131-4/+4
|
* Move program_counter and call_stack from UnitState to interpreterJannik Vogel2016-05-121-26/+42
|
* VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot2016-04-301-2/+10
|
* Merge pull request #1538 from lioncash/dotbunnei2016-03-201-5/+3
|\ | | | | shader_interpreter: use std::inner_product for the dot product
| * shader_interpreter: use std::inner_product for the dot productLioncash2016-03-171-5/+3
| | | | | | | | Same thing, less code.
* | video_core: Don't cast away constLioncash2016-03-171-1/+1
|/
* PICA: Fix MAD/MADI encodingJannik Vogel2016-03-151-2/+5
|
* Add immediate mode vertex submissionDwayne Slater2016-03-021-0/+1
|
* Shader: Implement "invert condition" feature of IFU instructionYuri Kunde Schlesner2016-01-241-1/+2
| | | | | | If the bit 0 of the JMPU instruction is set, then the jump condition will be inverted. That is, a jump will happen when the boolean is false instead of when it is true.
* video_core: Reorganize headersLioncash2015-09-111-3/+2
|
* Shaders: Explicitly conform to PICA semantics in MAX/MINYuri Kunde Schlesner2015-08-241-2/+8
|
* Merge pull request #1062 from aroulin/shader-rcp-rsqbunnei2015-08-231-6/+4
|\ | | | | Shader: RCP and RSQ computes only the 1st component
| * Shader: Use std::sqrt for float instead of sqrtaroulin2015-08-231-1/+1
| |
| * Shader: RCP and RSQ computes only the 1st componentaroulin2015-08-231-6/+4
| |
* | Shader: implement DPH/DPHI in interpreteraroulin2015-08-221-1/+8
|/ | | | | Tests revealed that the component with w=1 is SRC1 and not SRC2, it is now fixed on 3dbrew.
* Shader: implement SGE, SGEI in interpreteraroulin2015-08-191-0/+14
|
* Shader: implement EX2 and LG2 in interpreteraroulin2015-08-161-0/+36
|
* Introduce a shader tracer to allow inspection of input/output values for ↵Tony Wasserka2015-08-161-22/+82
| | | | each processed instruction.
* Shader: Use a POD struct for registers.bunnei2015-08-151-6/+6
|
* Shader: Define a common interface for running vertex shader programs.bunnei2015-08-151-128/+7
|
* Shader: Move shader code to its own subdirectory, "shader".bunnei2015-08-151-0/+629