summaryrefslogtreecommitdiffstats
path: root/src/video_core/pica.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-01-13Remove references to PICA and rasterizers in video_coreJames Rowe1-16/+0
2017-02-04VideoCore: Move Regs to its own fileYuri Kunde Schlesner1-159/+0
2017-02-04VideoCore: Split shader regs from Regs structYuri Kunde Schlesner1-94/+3
2017-02-04VideoCore: Split geometry pipeline regs from Regs structYuri Kunde Schlesner1-215/+15
2017-02-04VideoCore: Split lighting regs from Regs structYuri Kunde Schlesner1-275/+3
2017-02-04VideoCore: Split framebuffer regs from Regs structYuri Kunde Schlesner1-264/+6
2017-02-04VideoCore: Split texturing regs from Regs structYuri Kunde Schlesner1-328/+24
2017-02-04VideoCore: Split rasterizer regs from Regs structYuri Kunde Schlesner1-122/+15
2017-02-04Pica/Texture: Simplify/cleanup texture tile addressingYuri Kunde Schlesner1-1/+4
2017-01-30VideoCore/Shader: Clean up OutputVertex::FromAttributeBufferYuri Kunde Schlesner1-1/+2
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.
2017-01-30VideoCore: Consistently use shader configuration to load attributesYuri Kunde Schlesner1-30/+9
2017-01-30VideoCore: Use correct register for immediate mode attribute countYuri Kunde Schlesner1-1/+6
2017-01-30VideoCore: Change misleading register namesYuri Kunde Schlesner1-4/+4
A few registers had names such as "count" or "number" when they actually contained the maximum (that is, count - 1). This can easily lead to hard to notice off by one errors.
2016-12-03clang-format: Fix coding styleYuri Kunde Schlesner1-1/+1
2016-11-19Minor formatting changeJames Rowe1-1/+1
2016-09-19Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner1-7/+18
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-325/+326
2016-06-28PICA: Scissor fixes and cleanupsYuri Kunde Schlesner1-12/+4
2016-06-28PICA: Implement scissor testSubv1-1/+31
2016-06-07Pica: Add fog stateJannik Vogel1-12/+41
2016-05-23Pica: Name LightSrc.config registerJannik Vogel1-15/+13
2016-05-23Pica: Name lighting.config0 and .config1 registersJannik Vogel1-6/+6
2016-05-11Pica: Add texture type to stateJannik Vogel1-0/+10
2016-05-10Pica: Implement W-Buffer in SW rasterizerJannik Vogel1-3/+17
2016-04-30VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot1-3/+4
2016-04-23pica: Handle default lighting caseSam Spilsbury1-1/+6
2016-04-21HWRasterizer: Texture forwardingtfarley1-1/+1
2016-04-08Rasterizer: Respect buffer-write allow registersJannik Vogel1-1/+11
2016-03-24Pica: Improve accuracy of immediate-mode supportYuri Kunde Schlesner1-1/+6
This partially fixes Etrian Odyssey IV.
2016-03-17core/video_core: Make NumIds functions constexprLioncash1-1/+1
2016-03-17core/video_core: Don't cast away const in subscript operatorsLioncash1-3/+3
Not to say these subscript operators aren't totally ugly as is.
2016-03-14PICA: Fix viewport offsetJannik Vogel1-2/+2
2016-03-14Respect vs output mapJannik Vogel1-3/+5
2016-03-03Add immediate mode vertex submissionDwayne Slater1-55/+11
2016-02-05pica: Cleanup lighting register definitions and documentation.bunnei1-33/+36
2016-02-05gl_rasterizer: Initial implementation of bump mapping.bunnei1-0/+9
2016-02-05gl_shader_gen: Implement lighting red, green, and blue reflection.bunnei1-3/+15
2016-02-05gl_shader_gen: Implement fragment lighting fresnel effect.bunnei1-0/+5
2016-02-05gl_shader_gen: Implement fragment lighting specular 1 component.bunnei1-8/+19
2016-02-05gl_shader_gen: Add support for D0 LUT scaling.bunnei1-1/+67
2016-02-05gl_shader_gen: Refactor lighting config to match Pica register naming.bunnei1-0/+2
- Also implement D0 LUT enable.
2016-02-05pica: Cleanup and add some comments to lighting registers.bunnei1-18/+18
2016-02-05gl_rasterizer: Minor naming refactor on Pica register naming.bunnei1-15/+18
2016-02-05renderer_opengl: Initial implementation of basic specular lighting.bunnei1-1/+7
2016-02-05renderer_opengl: Implement HW fragment lighting LUTs within our default UBO.bunnei1-1/+1
2016-02-05renderer_opengl: Implement diffuse component of HW fragment lighting.bunnei1-10/+11
2016-02-05pica: Implement decoding of basic fragment lighting components.bunnei1-10/+53
- Diffuse - Distance attenuation - float16/float20 types - Vertex Shader 'view' output
2016-02-05pica: Implement fragment lighting LUTs.bunnei1-0/+19
2016-02-05pica: Add decodings for distance attenuation and LUT registers.bunnei1-1/+104
2016-02-05pica: Add pica_types module and move float24 definition.bunnei1-112/+2
2015-10-22gl_rasterizer: Move logic for creating ShaderCacheKey to a static function.bunnei1-4/+4
2015-10-22Initial implementation of fragment shader generation with caching.Subv1-0/+4
2015-09-11video_core: Reorganize headersLioncash1-1/+1
2015-09-03OpenGL: Remove ugly and endian-unsafe color pointer castsYuri Kunde Schlesner1-0/+4
2015-08-31Pica: Added the primitive_restart register (0x25f) to the registers map.Subv1-1/+4
2015-08-31Pica: Add the vertex_offset register to the Pica registers map.Subv1-0/+1
2015-08-30GPU: Implemented register 0x22A.Subv1-1/+6
This is the equivalent of the "first" parameter in glDrawArrays, it tells the GPU the vertex index at which to start rendering. Register 0x22A doesn't affect indexed rendering.
2015-08-24fixup! Shaders: Fix multiplications between 0.0 and infYuri Kunde Schlesner1-4/+4
2015-08-24Shaders: Fix multiplications between 0.0 and infYuri Kunde Schlesner1-1/+13
The PICA200 semantics for multiplication are so that when multiplying inf by exactly 0.0, the result is 0.0, instead of NaN, as defined by IEEE. This is relied upon by games. Fixes #1024 (missing OoT interface items)
2015-08-21SWRasterizer: Implemented stencil ops 6 and 7.Subv1-6/+8
IncrementWrap and DecrementWrap, verified with hwtests.
2015-08-21SWRasterizer: Implemented stencil action 1 (GL_ZERO).Subv1-1/+1
Verified with hwtests.
2015-08-20GPU/Rasterizer: Corrected the stencil implementation.Subv1-5/+15
Verified the behavior with hardware tests.
2015-08-16citra-qt: Improve shader debugger.Tony Wasserka1-0/+11
Now supports dumping the current shader and recognizes a larger number of output semantics.
2015-08-16videocore: Added RG8 texture supportPatrick Martin1-1/+2
2015-08-15Shader: Define a common interface for running vertex shader programs.bunnei1-1/+5
2015-07-26Videocore: Don't reinitialize register name map on every queryYuri Kunde Schlesner1-64/+1
This greatly speeds up the command list debug widget.
2015-07-21GPU: Added registers for min and mag texture filters and implemented them in the hw renderer.Subv1-0/+7
2015-07-20Pica: Correct switched S/T texture wrapping registersYuri Kunde Schlesner1-2/+2
This was found and hwtested by Lectem
2015-07-19Rasterizer/Textures: Fixed a bug where the I4 format would get twice the real stride.Subv1-0/+1
Also added its name to the texture viewer widget
2015-07-19Video_Core: Finally fix pesky warningzawata1-1/+1
2015-07-15Pica/Shader: Add geometry shader definitions.Tony Wasserka1-99/+113
2015-07-14VideoCore: Implement the DOT3_RGB combinerLectem1-0/+1
2015-07-13Pica: Implement stencil testing.Tony Wasserka1-9/+34
2015-07-09Added GL_CLAMP_TO_BORDER supportLectem1-1/+7
2015-06-28Common: Cleanup emu_window includes.Emmanuel Gil Peyrot1-3/+3
2015-06-14video_core: add extra braces around initializerYuri Kunde Schlesner1-3/+3
Trivial change and fixes several warnings in the clang build.
2015-05-31Pica: Use zero for the SecondaryFragmentColor source.bunnei1-0/+1
- This is a workaround until we support fragment lighting.
2015-05-31Pica: Implement LogicOp function.bunnei1-6/+21
2015-05-31Pica: Implement command buffer execution registers.bunnei1-12/+38
2015-05-30Move video_core/math.h to common/vector_math.harchshift1-2/+1
The file only contained vector manipulation code, and such widely-useable code doesn't belong in video_core.
2015-05-29Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot1-4/+4
2015-05-23Pica: Create 'State' structure and move state memory there.bunnei1-81/+105
2015-05-23OpenGL renderertfarley1-10/+27
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner1-2/+0
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-14pica: Add the ULL specifier in IsDefaultAttributeLioncash1-1/+1
This is necessary otherwise there are warnings about a 32-bit result being casted to a 64-bit value.
2015-05-11Implement I4 texture formatarchshift1-1/+1
@neobrain, could you confirm that this is correct? It's been tested with various different games and fixes different textures, including in Animal Crossing, Kirby Triple Deluxe, and SMB3D.
2015-05-10rasterizer: Implemented combiner output scaling.bunnei1-1/+12
2015-05-10rasterizer: Fixed a depth testing bug.bunnei1-3/+15
2015-05-10rasterizer: Implement combiner buffer input.bunnei1-3/+33
2015-05-09Memory: Support more regions in the VAddr-PAddr translation functionsYuri Kunde Schlesner1-11/+0
Also adds better documentation and removes the one-off reimplementation of the function in pica.h.
2015-05-09Memory: Re-organize and rename memory area address constantsYuri Kunde Schlesner1-1/+1
2015-05-07Common: Remove common.hYuri Kunde Schlesner1-0/+3
2015-05-07GPU: Implemented default vertex shader attributes.Subv1-25/+42
Fixes some games crashing.
2015-03-10GPU: Added the stencil test structure to the Pica Regs struct.Subv1-9/+34
2015-03-10GPU: Implemented more depth buffer formats.Subv1-0/+7
This fixes the horizontal lines in Picross E, Cubic Ninja, Cave Story 3D and possibly others
2015-03-04GPU: Added RGB565/RGB8 framebuffer support and various cleanups.bunnei1-3/+3
- Centralizes color format encode/decode functions. - Fixes endianness issues. - Implements remaining framebuffer formats in the debugger.
2015-02-28Added RGBA5551 compatibility in the rasterizerarchshift1-0/+1
This allows Virtual Console games to display properly.
2015-02-20Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.harchshift1-11/+0
2015-02-18Pica/BlendUnit: Implement separate color/alpha blend equations.Tony Wasserka1-1/+1
2015-02-18Pica/TextureEnvironment: Treat texture combiner source 1 as the PrimaryColor.Tony Wasserka1-0/+2
Not really sure where the difference is, but some applications seem to use this 1:1 the same way...
2015-02-18Pica/TextureEnvironment: Add support for the MAD-like texture combiners and clean up texture environment logic.Tony Wasserka1-0/+3
2015-02-18Pica/TextureUnit: Implement mirrored repeating texture wrapping.Tony Wasserka1-2/+3
2015-02-18Pica: Fix a bug in the register definitions, relating to texture wrapping.Tony Wasserka1-1/+1
2015-02-18Pica/OutputMerger: Implement color format checking.Tony Wasserka1-1/+1
2015-02-18Pica/CommandProcessor: Properly implement shader load destination offset registers.Tony Wasserka1-2/+6
2015-02-10Add more blend equations from 3dbrewDarius Goad1-1/+5
2015-02-05Rasterizer: Implement the other color and alpha modifiers.bunnei1-10/+20
2015-01-31Pica: Implement blend factors.bunnei1-6/+21
2015-01-28Pica: Implement color/alpha channel enable.bunnei1-0/+4
2015-01-27Rasterizer: Implemented alpha testing.bunnei1-3/+11
2015-01-26GPU: Implement the remaining depth testing functions.bunnei1-3/+8
2015-01-13Pica/Rasterizer: Add ETC1 texture decompression support.Tony Wasserka1-2/+2
2014-12-31Pica/Rasterizer: Implement backface culling.Tony Wasserka1-1/+15
2014-12-31Pica/Rasterizer: Implement depth testing.Tony Wasserka1-0/+1
2014-12-31Pica: Add output merger definitions.Tony Wasserka1-1/+56
2014-12-31Pica/CommandProcessor: Add support for integer uniforms.Tony Wasserka1-1/+9
2014-12-29Rasterizer: Pre-divide vertex attributes by WYuri Kunde Schlesner1-0/+20
Execute the division-by-W for perspective-correct interpolation of values in the clipper, moving them out of the rasterization inner loop.
2014-12-21More warning cleanupsChin1-5/+5
2014-12-21License changepurpasmart961-1/+1
2014-12-20Pica: Add support for boolean uniforms.Tony Wasserka1-1/+7
2014-12-20Pica/VertexShader: Add support for MOVA, CMP and IFC.Tony Wasserka1-0/+8
2014-12-20Add support for a ridiculous number of texture formats.Tony Wasserka1-6/+16
2014-12-20Pica: Unify ugly address translation hacks.Tony Wasserka1-8/+17
2014-12-20Pica: Further improve Tev emulation.Tony Wasserka1-0/+1
2014-12-20Pica: Implement texture wrapping.Tony Wasserka1-1/+11
2014-12-20Pica/DebugUtils: Add support for RGBA8, RGBA5551, RGBA4 and A8 texture formats.Tony Wasserka1-0/+2
2014-12-20Pica: Initial support for multitexturing.Tony Wasserka1-5/+35
2014-12-12MemMap: Renamed "GSP" heap to "linear", as this is not specific to GSP.bunnei1-2/+2
- Linear simply indicates that the mapped physical address is always MappedVAddr+0x0C000000, thus this memory can be used for hardware devices' DMA (such as the GPU).
2014-12-10GSP: Trigger GPU interrupts at more accurate locations.bunnei1-1/+9
2014-12-09Pica: Re-enable command names on MSVC.Tony Wasserka1-5/+0
The affected code is no longer limited by compiler support on that platform.
2014-12-09More coding style fixes.Tony Wasserka1-6/+12
2014-12-09citra_qt: Add enhanced texture debugging widgets.Tony Wasserka1-1/+14
Double-clicking a texture parameter command in the pica command lists will spawn these as a new tab in the pica command list dock area.
2014-12-09Build fix for something which shouldn't have compiled successfully to begin with.Tony Wasserka1-1/+1
2014-10-08Fix warnings in video_coreLioncash1-1/+1
2014-09-14Core: Fix warnings in gpu.cppLioncash1-1/+1
2014-08-25Pica/Rasterizer: Add texturing support.Tony Wasserka1-1/+4
2014-08-25Pica/Rasterizer: Add initial implementation of texture combiners.Tony Wasserka1-1/+104
2014-08-25Pica: Add support for dumping textures.Tony Wasserka1-1/+44
2014-08-25Pica: Add debug utilities for dumping shaders.Tony Wasserka1-1/+1
2014-08-13float24: Remove private default constructorarchshift1-2/+0
Fixes building with clang.
2014-08-12Pica: Add basic rasterizer.Tony Wasserka1-1/+51
2014-08-12Pica: Add triangle clipper.Tony Wasserka1-2/+20
2014-08-12Pica: Add primitive assembly stage.Tony Wasserka1-1/+14
2014-08-12Pica: Add vertex shader implementation.Tony Wasserka1-5/+132
2014-08-12Pica: Implement vertex loading.Tony Wasserka1-7/+22
2014-08-12Pica: Add register definition for vertex loading and rendering.Tony Wasserka1-33/+128
2014-08-12Pica: Add command processor.Tony Wasserka1-0/+2
2014-08-12Pica: Add float24 structure.Tony Wasserka1-0/+75
24-bit floating points are used internally for calculations on the GPU, however the current code will still emulate that with 32-bit floating points. In the future we might want to accurately perform the calculations with correct bitness in the future, but for now we just wrap the calculations around this class.
2014-08-12Pica/GPU: Change hardware registers to use physical addresses rather than virtual ones.Tony Wasserka1-1/+1
This cleans up the mess that address reading/writing had become and makes the code a *lot* more sensible. This adds a physical<->virtual address converter to mem_map.h. For further accuracy, we will want to properly extend this to support a wider range of address regions. For now, this makes simply homebrew applications work in a good manner though.
2014-08-12Remove the fancy RegisterSet class introduced in 4c2bff61e.Tony Wasserka1-98/+144
While it was some nice and fancy template usage, it ultimately had many practical issues regarding length of involved expressions under regular usage as well as common code completion tools not being able to handle the structures. Instead, we now use a more conventional approach which is a lot more clean to use.
2014-06-12Pica: Use some template magic to define register structures efficiently.Tony Wasserka1-25/+102
2014-06-12Further refine GPU command list debugging.Tony Wasserka1-0/+16
2014-06-12Refine command list debugging functionality and its qt interface.Tony Wasserka1-0/+2
2014-06-12video core: added PICA definitions file.Tony Wasserka1-0/+35