summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove references to PICA and rasterizers in video_coreJames Rowe2018-01-131-154/+0
|
* Improved performance of FromAttributeBufferHuw Pascoe2017-09-171-1/+2
| | | | | | | 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.
* correct constnesswwylele2017-08-191-1/+2
|
* pica/shader: extend UnitState for GSwwylele2017-08-191-0/+38
| | | | | 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
* Merge pull request #2550 from yuriks/pica-refactor2Yuri Kunde Schlesner2017-02-121-1/+2
|\ | | | | Small VideoCore cleanups
| * VideoCore: Split regs.h inclusionsYuri Kunde Schlesner2017-02-091-1/+2
| |
* | video_core: Fix benign out-of-bounds indexing of array (#2553)Yuri Kunde Schlesner2017-02-111-2/+1
|/ | | | | | 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
* 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-4/+4
|
* VideoCore: Extract swrast-specific data from OutputVertexYuri Kunde Schlesner2017-01-301-1/+1
|
* VideoCore/Shader: Clean up OutputVertex::FromAttributeBufferYuri Kunde Schlesner2017-01-301-9/+14
| | | | | | 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.
* VideoCore: Split shader output writing from semantic loadingYuri Kunde Schlesner2017-01-301-16/+13
|
* VideoCore: Consistently use shader configuration to load attributesYuri Kunde Schlesner2017-01-301-5/+6
|
* VideoCore: Rename some types to more accurate namesYuri Kunde Schlesner2017-01-301-1/+1
|
* Shader: Remove OutputRegisters structYuri Kunde Schlesner2017-01-261-5/+6
|
* Shader: Initialize conditional_code in interpreterYuri Kunde Schlesner2017-01-261-3/+0
| | | | | | | 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.
* VideoCore/Shader: Split interpreter and JIT into separate ShaderEnginesYuri Kunde Schlesner2017-01-261-79/+13
|
* VideoCore/Shader: Rename shader_jit_x64{ => _compiler}.{cpp,h}Yuri Kunde Schlesner2017-01-261-1/+1
|
* VideoCore/Shader: Split shader uniform state and shader engineYuri Kunde Schlesner2017-01-261-11/+33
| | | | | 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-7/+9
| | | | | 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-9/+7
|
* VideoCore/Shader: Extract input vertex loading code into functionYuri Kunde Schlesner2017-01-261-17/+13
|
* video_core: fix shader.cpp signed / unsigned warningKloen2017-01-231-2/+2
|
* VideoCore/Shader: Extract DebugData out from UnitStateYuri Kunde Schlesner2016-12-161-14/+12
|
* VideoCore: Eliminate an unnecessary copy in the drawcall loopYuri Kunde Schlesner2016-12-151-1/+1
|
* VideoCore: Fix out-of-bounds read in ShaderSetup::ProduceDebugInfoYuri Kunde Schlesner2016-09-301-3/+1
| | | | | | 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.
* 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-6/+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-191-2/+2
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-19/+20
|
* Retrieve shader result from new OutputRegisters-typeJannik Vogel2016-05-161-50/+53
|
* Use new shader-jit signature for interpreterJannik Vogel2016-05-131-3/+3
|
* Refactor access to state in shader-jitJannik Vogel2016-05-131-1/+2
|
* Move program_counter and call_stack from UnitState to interpreterJannik Vogel2016-05-121-2/+0
|
* Turn ShaderSetup into structJannik Vogel2016-05-111-11/+11
|
* Pica: Replace logic in shader.cpp with loopJannik Vogel2016-05-031-34/+4
|
* VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot2016-04-301-7/+11
|
* Common: Remove section measurement from profiler (#1731)Yuri Kunde Schlesner2016-04-291-3/+0
| | | | 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.
* shader_jit_x64.cpp: Rename JitCompiler to JitShader.bunnei2016-04-141-3/+3
|
* shader: Remove unused 'state' argument from 'Setup' function.bunnei2016-04-141-1/+1
|
* shader_jit_x64: Specify shader main offset at runtime.bunnei2016-04-141-3/+2
|
* shader_jit_x64: Allocate each program independently and persist for emu session.bunnei2016-04-141-20/+9
|
* Merge pull request #1643 from MerryMage/make_uniqueMathew Maidment2016-04-061-1/+0
|\ | | | | Common: Remove Common::make_unique, use std::make_unique
| * Common: Remove Common::make_unique, use std::make_uniqueMerryMage2016-04-051-1/+0
| |
* | Merge pull request #1508 from JayFoxRox/vs-output-mapbunnei2016-03-221-4/+14
|\ \ | |/ |/| Respect vs output map
| * Respect vs output mapJannik Vogel2016-03-141-4/+14
| |
* | shader_jit_x64: Clear cache after code space fills up.bunnei2016-03-121-1/+13
| |
* | shader: Update log message to use proper log class.bunnei2016-03-121-1/+1
|/
* Add immediate mode vertex submissionDwayne Slater2016-03-031-1/+2
|
* pica: Implement decoding of basic fragment lighting components.bunnei2016-02-051-2/+4
| | | | | | | - Diffuse - Distance attenuation - float16/float20 types - Vertex Shader 'view' output
* video_core: Remove unused variablesLioncash2015-09-101-1/+0
|
* Shader JIT: ifdef out reference to ifdef'd out shader_maparchshift2015-08-271-0/+2
| | | | | shader_map was only defined on x86 architectures, but was cleared on shutdown with no ifdef protection. Ifdef this out so non-x86 architectures can be built.
* Integrate the MicroProfile profiling libraryYuri Kunde Schlesner2015-08-251-0/+3
| | | | | This brings goodies such as a configurable user interface and multi-threaded timeline view.
* Introduce a shader tracer to allow inspection of input/output values for each processed instruction.Tony Wasserka2015-08-161-4/+45
|
* citra-qt: Improve shader debugger.Tony Wasserka2015-08-161-6/+0
| | | | Now supports dumping the current shader and recognizes a larger number of output semantics.
* Shader: Use a POD struct for registers.bunnei2015-08-161-18/+18
|
* Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64.bunnei2015-08-161-6/+5
|
* x64: Refactor to remove fake interfaces and general cleanups.bunnei2015-08-161-3/+6
|
* Shader: Initial implementation of x86_x64 JIT compiler for Pica vertex shaders.bunnei2015-08-161-2/+40
| | | | | - Config: Add an option for selecting to use shader JIT or interpreter. - Qt: Add a menu option for enabling/disabling the shader JIT.
* Common: Added MurmurHash3 hash function for general-purpose use.bunnei2015-08-151-1/+1
|
* Shader: Define a common interface for running vertex shader programs.bunnei2015-08-151-0/+105