summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gl_rasterizer: Use a shared helper to upload from CPU memory.Markus Wick2018-08-121-0/+4
|
* gl_rasterizer: Use the stream buffer for constant buffers.Markus Wick2018-08-121-6/+5
|
* gl_rasterizer: Use the streaming buffer itself for the constant buffer.Markus Wick2018-08-121-2/+1
| | | | Don't emut copies, especially not for data, which is used once. They just end in a huge GPU overhead.
* gl_rasterizer: Use a helper for aligning the buffer.Markus Wick2018-08-121-1/+3
|
* Update the stream_buffer helper from Citra.Markus Wick2018-08-121-2/+1
| | | | Please see https://github.com/citra-emu/citra/pull/3666 for more details.
* core: Namespace EmuWindowLioncash2018-08-121-3/+6
| | | | Gets the class out of the global namespace.
* video_core: Make global EmuWindow instance part of the base renderer classLioncash2018-08-021-1/+4
| | | | | | | | | | | Makes the global a member of the RendererBase class. We also change this to be a reference. Passing any form of null pointer to these functions is incorrect entirely, especially given the code itself assumes that the pointer would always be in a valid state. This also makes it easier to follow the lifecycle of instances being used, as we explicitly interact the renderer with the rasterizer, rather than it just operating on a global pointer.
* gl_rasterizer: Use in-class member initializers where applicableLioncash2018-07-241-5/+5
| | | | We can just assign to the members directly in these cases.
* gl_rasterizer: Implement texture border color.bunnei2018-07-241-4/+1
|
* GPU: Only configure the used framebuffers during clear.Subv2018-07-041-1/+1
| | | | Don't try to configure the color buffer if it is not being cleared, it may not be completely valid at this point.
* GPU: Factor out the framebuffer configuration code for both Clear and Draw commands.Subv2018-07-031-0/+5
|
* GPU: Bind and clear the render target when the CLEAR_BUFFERS register is written to.Subv2018-07-031-0/+1
|
* GPU: Set up the depth test state on every draw.Subv2018-07-021-0/+3
|
* gl_rasterizer_cache: Remove Citra's rasterizer cache, always load/flush surfaces.bunnei2018-06-271-1/+1
|
* gl_rasterizer: Workaround for when exceeding max UBO size.bunnei2018-06-271-1/+1
|
* Rasterizer: Use UBOs instead of SSBOs for uploading const buffers.Subv2018-06-101-0/+5
| | | | This should help a bit with GPU performance once we're GPU-bound.
* GPU: Synchronize the blend state on every draw call.Subv2018-06-091-8/+2
| | | | | | Only independent blending on render target 0 is implemented for now. This fixes the elongated squids in Splatoon 2's boot screen.
* GPU: Implement sampling multiple textures in the generated glsl shaders.Subv2018-06-061-3/+11
| | | | | | All tested games that use a single texture show no regression. Only Texture2D textures are supported right now, each shader gets its own "tex_fs/vs/gs" sampler array to maintain independent textures between shader stages, the textures themselves are reused if possible.
* GLRenderer: Remove unused hw_vao_enabled_attributes variable.Subv2018-05-191-1/+0
|
* GLRenderer: Remove unused vertex buffer and increase the size of the stream buffer to 128 MB.Subv2018-05-191-5/+2
| | | | The stream buffer is where all the vertex data is copied, some games require this to be much bigger than the 4 MB we used to have.
* gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses.bunnei2018-04-251-3/+4
|
* GPU: Support multiple enabled vertex arrays.Subv2018-04-231-3/+3
| | | | | | The vertex arrays will be copied to the stream buffer one after the other, and the attributes will be set using the ARB_vertex_attrib_binding extension. yuzu now thus requires OpenGL 4.3 or the ARB_vertex_attrib_binding extension.
* opengl: Remove unnecessary header inclusionsLioncash2018-04-211-5/+0
|
* renderer_opengl: Implement BlendEquation and BlendFunc.bunnei2018-04-181-1/+1
|
* gl_rasterizer: Implement indexed vertex mode.bunnei2018-04-171-1/+0
|
* GPU: Use the same buffer names in the generated GLSL and the buffer uploading code.Subv2018-04-151-3/+2
|
* GPU: Don't use explicit binding points when uploading the constbuffers to opengl.Subv2018-04-151-2/+11
| | | | The bindpoints will now be dynamically calculated based on the number of buffers used by the previous shader stage.
* GPU: Use the buffer hints from the shader decompiler to upload only the necessary const buffers for each shader stage.Subv2018-04-151-1/+2
|
* GPU: Upload the entirety of each constbuffer for each shader stage as SSBOs.Subv2018-04-151-1/+6
| | | | We're going to need the shader generator to give us a mapping of the actual used const buffers to properly bind them to the shader.
* GPU: Allow configuring ssbos in the opengl state manager.Subv2018-04-151-0/+2
|
* shaders: Add NumTextureSamplers const, remove unused #pragma.bunnei2018-04-151-1/+1
|
* gl_rasterizer: Generate shaders and upload uniforms.bunnei2018-04-141-4/+3
|
* gl_rasterizer: Use shader program manager, remove test shader.bunnei2018-04-141-53/+4
|
* renderer_opengl: Use OGLProgram instead of OGLShader.bunnei2018-04-141-1/+1
|
* GL: Set up the textures used for each draw call.Subv2018-04-071-0/+3
| | | | | Each Maxwell shader stage can have an arbitrary number of textures, but we're limited to a certain number in OpenGL. We try to only use the minimum amount of host textures by not keeping a 1:1 relation between guest texture ids and host texture ids, ie, guest texture id 8 can be host texture id 0 if it's the only texture used in the guest shader program. This mapping will have to be passed to the shader decompiler so it can rewrite the texture accesses.
* GL: Ported the SamplerInfo struct from citra.Subv2018-04-071-1/+20
|
* gl_rasterizer: Move code to bind framebuffer surfaces before draw to its own function.bunnei2018-03-271-0/+4
|
* gl_rasterizer: Add a SyncViewport method.bunnei2018-03-271-0/+3
|
* rasterizer: Rename DrawTriangles to DrawArrays.bunnei2018-03-271-1/+1
|
* gl_rasterizer: Use 32 texture units instead of 3.bunnei2018-03-271-1/+1
|
* rasterizer: Flush and invalidate regions should be 64-bit.bunnei2018-03-231-3/+3
|
* video_core: Remove usage of PAddr and replace with VAddr.bunnei2018-03-231-4/+4
|
* video_core: Move FramebufferInfo to FramebufferConfig in GPU.bunnei2018-03-231-2/+2
|
* gl_rasterizer: Add a simple passthrough shader in lieu of shader generation.bunnei2018-03-231-2/+12
|
* renderer_gl: Port boilerplate rasterizer code over from Citra.bunnei2018-03-201-0/+162
|
* Remove references to PICA and rasterizers in video_coreJames Rowe2018-01-131-316/+0
|
* core/video_core: Fix a bunch of u64 -> u32 warnings.bunnei2018-01-011-2/+2
|
* gl_rasterizer: implement custom clip planewwylele2017-08-251-1/+8
|
* gl_rasterizer: use texture buffer for proctex LUTwwylele2017-07-011-0/+5
|
* gl_rasterizer: use texture buffer for fog LUTwwylele2017-06-221-1/+2
|
* gl_rasterizer/lighting: fix LUT interpolationwwylele2017-06-211-3/+4
|
* gl_rasterizer: sync spot light statuswwylele2017-05-301-1/+5
|
* gl_rasterizer: implement procedural texturewwylele2017-05-201-1/+34
|
* OpenGL: Move PicaShaderConfig to gl_shader_gen.hYuri Kunde Schlesner2017-04-171-199/+2
| | | | Also move the implementation of CurrentConfig to the cpp file.
* VideoCore: Split regs.h inclusionsYuri Kunde Schlesner2017-02-091-1/+4
|
* VideoCore: Move Regs to its own fileYuri Kunde Schlesner2017-02-041-1/+1
|
* VideoCore: Split lighting regs from Regs structYuri Kunde Schlesner2017-02-041-4/+4
|
* VideoCore: Split framebuffer regs from Regs structYuri Kunde Schlesner2017-02-041-4/+4
|
* VideoCore: Split texturing regs from Regs structYuri Kunde Schlesner2017-02-041-12/+13
|
* VideoCore: Split rasterizer regs from Regs structYuri Kunde Schlesner2017-02-041-4/+4
|
* VideoCore: Change misleading register namesYuri Kunde Schlesner2017-01-301-1/+1
| | | | | | 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.
* video_core: fix gl_rasterizer warning on MSVCKloen2017-01-231-1/+1
|
* Merge pull request #2103 from wwylele/gpu-reg-cleanupbunnei2016-10-041-0/+1
|\ | | | | GPU: DisplayTransfer & MemoryFill cleanup and param check
| * rasterizer: separate TextureCopy from DisplayTransferwwylele2016-09-291-0/+1
| |
* | OpenGL: Take cached viewport sub-rect into account for scissorYuri Kunde Schlesner2016-09-301-3/+0
|/ | | | Fixes #1938
* 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-6/+3
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-21/+29
|
* OpenGL: Add scaled resolution support to scissorYuri Kunde Schlesner2016-06-281-1/+2
|
* PICA: Scissor fixes and cleanupsYuri Kunde Schlesner2016-06-281-4/+4
|
* PICA: Implement scissor testSubv2016-06-281-1/+11
|
* OpenGL: Implement fogJannik Vogel2016-06-071-2/+15
|
* OpenGL: Avoid undefined behaviour for UNIFORM_BLOCK_DATA_SIZEJannik Vogel2016-06-071-4/+6
|
* Pica: Name LightSrc.config registerJannik Vogel2016-05-231-2/+2
|
* Pica: Name lighting.config0 and .config1 registersJannik Vogel2016-05-231-12/+12
|
* OpenGL: Use uniforms for dist_atten_bias and dist_atten_scaleJannik Vogel2016-05-231-5/+9
|
* OpenGL: Only update depth uniforms if the depth changedJannik Vogel2016-05-141-2/+5
|
* OpenGL: value-initialize variables which cause uninitialised access otherwiseJannik Vogel2016-05-141-2/+2
|
* OpenGL: Implement texture type 3Jannik Vogel2016-05-111-0/+5
|
* Merge pull request #1621 from JayFoxRox/w-bufferbunnei2016-05-111-0/+5
|\ | | | | Implement W-buffer and fix depth-mapping
| * OpenGL: Implement W-Buffers and fix depth-mappingJannik Vogel2016-05-101-0/+5
| |
* | gl_rasterizer: Fix compilation for debug buildsLioncash2016-05-101-1/+1
|/
* Pica: Use a union for PicaShaderConfigJannik Vogel2016-05-031-87/+97
|
* Pica: Add TevStageConfigRaw to PicaShaderConfig (MSVC workaround)Jannik Vogel2016-05-031-1/+22
|
* Pica: Make PicaShaderConfig trivially_copyable and clear it before useJannik Vogel2016-05-031-21/+28
|
* OpenGL: Don't copy const_color (Reverts #1745)Jannik Vogel2016-05-031-2/+3
|
* Merge pull request #1741 from linkmauve/iwyu-video_corebunnei2016-05-011-2/+12
|\ | | | | Fix video_core includes (and dependencies) using include-what-you-use
| * VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot2016-04-301-2/+12
| |
* | OpenGL: Copy TevStageConfig using a loop. Fixes bug: const_color not copiedJannik Vogel2016-05-011-30/+11
|/
* HWRasterizer: reorder declarations to match defstfarley2016-04-221-9/+9
|
* HWRasterizer: Texture forwardingtfarley2016-04-211-66/+10
|
* OpenGL: Split buffer-write mask sync into seperate functionsJannik Vogel2016-04-081-0/+9
|
* Add immediate mode vertex submissionDwayne Slater2016-03-031-0/+1
|
* pica: Cleanup lighting register definitions and documentation.bunnei2016-02-051-15/+15
|
* gl_rasterizer: Use alignas(16) instead of explicit padding.bunnei2016-02-051-13/+6
|
* renderer_opengl: Use GLvec3/GLvec4 aliases for commonly used types.bunnei2016-02-051-9/+10
|
* gl_rasterizer: Fix issue with interpolation of opposite quaternions.bunnei2016-02-051-1/+7
|
* pica_types: Replace float24/20/16 with a template class.bunnei2016-02-051-2/+2
|
* gl_rasterizer: Remove unnecessary casts.bunnei2016-02-051-6/+6
|
* gl_rasterizer: Fix PicaShaderConfig on GCC.bunnei2016-02-051-29/+27
|
* gl_rasterizer: Initial implementation of bump mapping.bunnei2016-02-051-0/+6
|
* gl_shader_gen: Implement lighting red, green, and blue reflection.bunnei2016-02-051-1/+17
|
* gl_shader_gen: Implement fragment lighting fresnel effect.bunnei2016-02-051-0/+7
|
* gl_shader_gen: Implement fragment lighting specular 1 component.bunnei2016-02-051-0/+8
|
* gl_shader_gen: Add support for D0 LUT scaling.bunnei2016-02-051-1/+3
|
* gl_shader_gen: Refactor lighting config to match Pica register naming.bunnei2016-02-051-28/+32
| | | | - Also implement D0 LUT enable.
* pica: Cleanup and add some comments to lighting registers.bunnei2016-02-051-1/+1
|
* gl_rasterizer: Minor naming refactor on Pica register naming.bunnei2016-02-051-5/+5
|
* renderer_opengl: Use textures for fragment shader LUTs instead of UBOs.bunnei2016-02-051-4/+6
| | | | | - Gets us LUT interpolation for free. - Some older Intel GPU drivers did not support the big UBOs needed to store the LUTs.
* renderer_opengl: Initial implementation of basic specular lighting.bunnei2016-02-051-0/+20
|
* renderer_opengl: Implement HW fragment lighting distance attenuation.bunnei2016-02-051-14/+22
|
* renderer_opengl: Implement HW fragment lighting LUTs within our default UBO.bunnei2016-02-051-2/+7
|
* renderer_opengl: Implement diffuse component of HW fragment lighting.bunnei2016-02-051-3/+58
|
* hwrasterizer: Use proper cached fb addr/sizetfarley2016-02-031-2/+2
|
* hwrasterizer: Use depth offsettfarley2016-01-211-1/+5
|
* VideoCore: Unify interface to OpenGL and SW rasterizersYuri Kunde Schlesner2015-12-081-17/+2
| | | | | | This removes explicit checks sprinkled all over the codebase to instead just have the SW rasterizer expose an implementation with no-ops for most operations.
* VideoCore: Rename HWRasterizer methods to be less confusingYuri Kunde Schlesner2015-12-071-3/+3
|
* Use regular uniform locationPierre de La Morinerie2015-11-251-7/+0
| | | | | | The support for GL_ARB_explicit_uniform_location is not that good (53% according to http://feedback.wildfiregames.com/report/opengl/feature/GL_ARB_explicit_uniform_location). This fix the shader compilation on Intel HD 4000 (#1222).
* FragShader: Use an UBO instead of several individual uniformsSubv2015-11-191-6/+21
|
* gl_shader_gen: Various cleanups to shader generation.bunnei2015-10-221-1/+1
|
* gl_rasterizer: Use MMH3 hash for shader cache hey.bunnei2015-10-221-76/+57
| | | | - Includes a check to confirm no hash collisions.
* gl_shader_gen: Require explicit uniform locations.bunnei2015-10-221-26/+14
| | | | - Fixes uniform issue on AMD.
* gl_rasterizer: Add documentation to ShaderCacheKey.bunnei2015-10-221-0/+16
|
* renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups.bunnei2015-10-221-23/+18
|
* gl_rasterizer: Move logic for creating ShaderCacheKey to a static function.bunnei2015-10-221-1/+44
|
* Initial implementation of fragment shader generation with caching.Subv2015-10-221-31/+79
|
* video_core: Reorganize headersLioncash2015-09-111-3/+2
|
* OpenGL: Use Sampler Objects to decouple sampler config from texturesYuri Kunde Schlesner2015-09-031-0/+19
| | | | Fixes #978
* Shader: Move shader code to its own subdirectory, "shader".bunnei2015-08-151-1/+1
|
* GPU: Refactor "VertexShader" namespace to "Shader".bunnei2015-08-151-5/+5
| | | | - Also renames "vertex_shader.*" to "shader_interpreter.*"
* Core: Cleanup hw includes.Emmanuel Gil Peyrot2015-06-281-0/+1
|
* Common: Cleanup key_map includes.Emmanuel Gil Peyrot2015-06-281-0/+4
|
* Pica: Implement LogicOp function.bunnei2015-05-311-0/+3
|
* OpenGL renderertfarley2015-05-231-0/+207