aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/vertex_shader.cpp
AgeCommit message (Collapse)Author
2015-08-15GPU: Refactor "VertexShader" namespace to "Shader".bunnei
- Also renames "vertex_shader.*" to "shader_interpreter.*"
2015-07-29Merge pull request #963 from yuriks/gpu-fixesbunnei
Misc. GPU vertex loading fixes
2015-07-26Merge pull request #992 from yuriks/hot-path-debugbunnei
VideoCore: #ifdef out some debugging routines
2015-07-26Videocore: Simplify variables in vertex shader interpreterYuri Kunde Schlesner
Simplifies the code and gives a tiny speed-up.
2015-07-26Videocore: Replace std::stack in shader interpreter with static_vectorYuri Kunde Schlesner
Shaves off 1/3rd of the vertex shader time in Fire Emblem
2015-07-26VideoCore: #ifdef out some debugging routinesYuri Kunde Schlesner
Some disabled debugging functionality was being called from rendering routines in VideoCore. Although disabled, many of them still allocated memory or did some extra work that was enough to show up in a profiler. Gives a slight (~2ms) speedup.
2015-07-23VideoCore: Saturate vertex colors before interpolatingYuri Kunde Schlesner
During testing, it was discovered that hardware does not interpolate colors output by the vertex shader as-is. Rather, it drops the sign and saturates the value to 1.0. This is done before interpolation, such that (e.g.) interpolating outputs 1.5 and -0.5 is equivalent to as if the shader had output the values 1.0 and 0.5 instead, with the interpolated value never crossing 0.0. This change has been tested against hardware.
2015-07-21Merge pull request #929 from neobrain/geoshader_definitionsTony Wasserka
Pica/Shader: Add geometry shader definitions.
2015-07-19Pica: Fix DP3 instruction, which wasn't assigning to the w componentYuri Kunde Schlesner
2015-07-15Pica/Shader: Add geometry shader definitions.Tony Wasserka
2015-05-31vertex_shader: Use address offset on src2 in inverted mode.bunnei
2015-05-31vertex_shader: Implement SLT/SLTI instructions.bunnei
2015-05-31vertex_shader: Implement MIN instruction.bunnei
2015-05-29Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot
2015-05-22Pica: Create 'State' structure and move state memory there.bunnei
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner
memory.cpp/h contains definitions related to acessing memory and configuring the address space mem_map.cpp/h contains higher-level definitions related to configuring the address space accoording to the kernel and allocating memory.
2015-05-12GPU: Add more fine grained profiling for vertex shader and rasterizationYuri Kunde Schlesner
2015-05-09vertex_shader: Implement FLR instruction.bunnei
2015-05-09vertex_shader: Implement MADI instruction.bunnei
nihstro: Update submodule to latest upstream/master to support MADI instruction decoding.
2015-05-06GPU: Implemented default vertex shader attributes.Subv
Fixes some games crashing.
2015-03-12Pica/VertexShader: Fix a bug caused due to incorrect assumptions of ↵Tony Wasserka
consecutive output register tables. We now write create a temporary buffer for output registers and copy all of them to the actual output vertex structure after the shader has run. This is technically not necessary, but it's easier to vectorize in the future.
2015-03-08Update nihstro submodule to the initial release version.archshift
Includes more opcodes to implement in the future.
2015-02-21Pica/VertexShader: Fixed LOOP with more than one iteration.Subv
Previously it wouldn't jump back to the start of the loop code once it reached the end of the block. Fixes the texture problems in a lot of games.
2015-02-18Pica/VertexShader: Implement the LOOP instruction.Tony Wasserka
2015-02-12Build: Fixed some warningsSubv
2015-02-10Asserts: break/crash program, fit to style guide; log.h->assert.harchshift
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time) As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing) Also removed some GEKKO cruft.
2015-01-12Merge pull request #478 from archshift/pp3ports4bunnei
Pica/VertexShader: Implement the MAD instruction.
2015-01-12Pica/VertexShader: Implement JMPC/JMPU/CALLC/CALLU.Tony Wasserka
2015-01-12Pica/VertexShader: Implement the MAD instruction.Tony Wasserka
2014-12-31Pica/VertexShader: Coding style fixes.Tony Wasserka
2014-12-31Pica/CommandProcessor: Add support for integer uniforms.Tony Wasserka
2014-12-29Vertex Shader: Zero OutputVertex to avoid denormalsYuri Kunde Schlesner
Unused OutputVertex attributes were being left un-initialized. The leftover garbage sometimes decoded as floating-point denormalized values, causing fallbacks to microcode and massive slowdowns in the rest of the rasterization pipeline even though the results were unused. By zeroing the structure we ensure these attributes only contain harmless zeros.
2014-12-26Merge pull request #327 from Apology11/masterbunnei
Fix visual studio ambiguous symbol error
2014-12-21Merge pull request #291 from purpasmart96/licensebunnei
License change
2014-12-21Fix visual studio ambiguous symbol errorApology11
2014-12-20License changepurpasmart96
2014-12-20Pica/VertexShader: Promote a log message to critical status.Tony Wasserka
2014-12-20Pica/VertexShader: Small optimization.Tony Wasserka
2014-12-20Pica/VertexShader: Be robust against invalid inputs.Tony Wasserka
More specifically, this also fixes crashes by Citra trying to load a src2 register even if the current instruction does not use that.
2014-12-20Pica/VertexShader: Clarify a comment.Tony Wasserka
2014-12-20Pica/VertexShader: Cleanup flow control logic and implement CMP/IFU ↵Tony Wasserka
instructions.
2014-12-20Pica/VertexShader: Run instruction handlers according to the effective opcode.Tony Wasserka
This allows for proper emulation of the different CMP/LRP/MAD instructions.
2014-12-20Pica/VertexShader: Implement MAX instructions.Tony Wasserka
2014-12-20Pica: Add support for boolean uniforms.Tony Wasserka
2014-12-20Pica/VertexShader: Add support for MOVA, CMP and IFC.Tony Wasserka
2014-12-20Pica/VertexShader: Move code around a bit.Tony Wasserka
2014-12-20Pica/VertexShader: Some cleanups using std::array.Tony Wasserka
2014-12-20Pica/VertexShader: Support negating src2.Tony Wasserka
2014-12-20Pica/VertexShader: Remove (now) duplicated shader bytecode definitions in ↵Tony Wasserka
favor of nihstro's ones.
2014-12-13Convert old logging calls to new logging macrosYuri Kunde Schlesner