summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* GPU: Flush commands on every dma pusher step.Fernando Sahmkow2019-07-261-0/+1
| | | | | | This commit ensures that the host gpu is constantly fed with commands to work with, while the guest gpu keeps producing the rest of the commands. This reduces syncing time between host and guest gpu.
* Merge pull request #2734 from ReinUsesLisp/compute-shadersbunnei2019-07-221-2/+13
|\ | | | | gl_rasterizer: Implement compute shaders
| * gl_rasterizer: Implement compute shadersReinUsesLisp2019-07-151-2/+13
| |
* | GL_Rasterizer: Rework RenderTarget/DepthBuffer clearingFernando Sahmkow2019-07-171-0/+5
| |
* | Maxwell3D: Rework the dirty system to be more consistant and scaleableFernando Sahmkow2019-07-171-0/+1
|/
* Merge pull request #2675 from ReinUsesLisp/opengl-buffer-cachebunnei2019-07-151-8/+5
|\ | | | | buffer_cache: Implement a generic buffer cache and its OpenGL backend
| * gl_rasterizer: Minor style changesReinUsesLisp2019-07-061-5/+0
| |
| * gl_rasterizer: Fix vertex and index data invalidationsReinUsesLisp2019-07-061-1/+2
| |
| * gl_buffer_cache: Implement with generic buffer cacheReinUsesLisp2019-07-061-0/+1
| |
| * gl_rasterizer: Drop gl_global_cache in favor of gl_buffer_cacheReinUsesLisp2019-07-061-2/+0
| |
| * gl_buffer_cache: Return used buffer from Upload functionReinUsesLisp2019-07-061-1/+1
| |
| * gl_rasterizer: Move index buffer uploading to its own methodReinUsesLisp2019-07-061-1/+3
| |
* | gl_rasterizer: Amend documentation comment for ConfigureFramebuffers()Lioncash2019-07-091-7/+9
|/ | | | | | | | must_reconfigure isn't a parameter for this function any more, so it can be replaced with current_state. While we're at it, we can make the parameters of the declaration match the same name as the ones in the definition.
* texture_cache: Query MemoryManager from the systemFernando Sahmkow2019-06-251-2/+0
|
* texture_cache: Fermi2D reform and implement View MirageFernando Sahmkow2019-06-211-2/+1
| | | | | This also does some fixes on compressed textures reinterpret and on the Fermi2D engine in general.
* gl_rasterizer: Track texture buffer usageReinUsesLisp2019-06-211-3/+4
|
* gl_framebuffer_cache: Use a hashed struct to cache framebuffersReinUsesLisp2019-06-211-4/+2
|
* Remove Framebuffer reconfiguration and restrict rendertarget protectionFernando Sahmkow2019-06-211-3/+2
|
* texture_cache: Correct premature texceptionsFernando Sahmkow2019-06-211-2/+5
| | | | | | | | | | | | Due to our current infrastructure, it is possible for a mipmap to be set on as a render target before a texception of that mipmap's superset be set afterwards. This is problematic as we rely on texture views to set up texceptions and protecting render targets targets for 3D texture rendering. One simple solution is to configure framebuffers after texture setup but this brings other problems. This solution, forces a reconfiguration of the framebuffers after such event happens.
* Texture Cache: Implement Blitting and Fermi CopiesFernando Sahmkow2019-06-211-1/+0
|
* Change texture_cache chaching from GPUAddr to CacheAddrFernando Sahmkow2019-06-211-2/+0
| | | | | This also reverses the changes to make invalidation and flushing through the GPU address.
* Deglobalize Memory Manager on texture cahe and Implement Invalidation and Flushing using GPUVAddrFernando Sahmkow2019-06-211-0/+8
|
* gl_texture_cache: Implement fermi copiesReinUsesLisp2019-06-211-0/+1
|
* gl_texture_cache: Initial implementationReinUsesLisp2019-06-211-2/+2
|
* gl_rasterizer: Remove unused parameters in descriptor uploadsReinUsesLisp2019-06-081-3/+2
|
* video_core/engines: Move ConstBufferInfo out of Maxwell3DReinUsesLisp2019-06-081-2/+8
|
* gl_rasterizer: Move alpha testing to the OpenGL pipelineReinUsesLisp2019-05-301-2/+2
| | | | Removes the alpha testing code from each fragment shader invocation.
* gl_rasterizer: Use GL_QUADS to emulate quads renderingReinUsesLisp2019-05-301-2/+0
|
* gl_shader_cache: Use shared contexts to build shaders in parallelReinUsesLisp2019-05-211-1/+2
|
* Merge pull request #2383 from ReinUsesLisp/aoffi-testbunnei2019-04-231-2/+2
|\ | | | | gl_shader_decompiler: Disable variable AOFFI on unsupported devices
| * gl_shader_decompiler: Use variable AOFFI on supported hardwareReinUsesLisp2019-04-141-3/+1
| |
| * gl_device: Implement interface and add uniform offset alignmentReinUsesLisp2019-04-101-1/+3
| |
* | Merge pull request #2318 from ReinUsesLisp/sampler-cachebunnei2019-04-181-30/+2
|\ \ | | | | | | gl_sampler_cache: Port sampler cache to OpenGL
| * | gl_sampler_cache: Port sampler cache to OpenGLReinUsesLisp2019-04-021-30/+2
| | |
* | | shader_ir: Implement STG, keep track of global memory usage and flushReinUsesLisp2019-04-141-4/+0
| |/ |/|
* | gl_rasterizer: Use ARB_multi_bind to update SSBOsReinUsesLisp2019-04-061-0/+1
| |
* | gl_rasterizer: Use ARB_multi_bind to update UBOs across stagesReinUsesLisp2019-04-061-0/+3
| |
* | video_core/renderer_opengl: Remove unnecessary includesLioncash2019-04-041-5/+0
|/ | | | | | | Quite a few unused includes have built up over time, particularly on core/memory.h. Removing these includes means the source files including those files will no longer need to be rebuilt if they're changed, making compilation slightly faster in this scenario.
* gl_rasterizer: Remove unused reference member variable from RasterizerOpenGLLioncash2019-03-271-3/+1
| | | | | This member variable is no longer being used, so it can be removed, removing a dependency on EmuWindow from the rasterizer's interface"
* gpu: Use host address for caching instead of guest address.bunnei2019-03-151-4/+4
|
* Merge pull request #2216 from ReinUsesLisp/rasterizer-systembunnei2019-03-141-0/+1
|\ | | | | gl_rasterizer: Use system instance passed from argument
| * gl_rasterizer: Use system instance passed from argumentReinUsesLisp2019-03-111-0/+1
| |
* | gl_rasterizer: Encapsulate sampler queries into methodsReinUsesLisp2019-03-091-2/+3
|/
* common/math_util: Move contents into the Common namespaceLioncash2019-02-271-2/+2
| | | | | These types are within the common library, so they should be within the Common namespace.
* gl_rasterizer: Implement a more accurate fermi 2D copy.bunnei2019-02-071-1/+3
| | | | - This is a blit, use the blit registers.
* gl_shader_cache: Link loading screen with disk shader cache loadReinUsesLisp2019-02-071-1/+3
|
* gl_shader_disk_cache: Pass core system as argument and guard against games without title idsReinUsesLisp2019-02-071-1/+6
|
* rasterizer_interface: Add disk cache entry for the rasterizerReinUsesLisp2019-02-071-0/+1
|
* Merge pull request #2067 from ReinUsesLisp/workaround-fbbunnei2019-02-011-3/+6
|\ | | | | gl_rasterizer: Workaround invalid zeta clears
| * gl_rasterizer: Workaround invalid zeta clearsReinUsesLisp2019-01-301-3/+6
| | | | | | | | | | | | | | | | | | Some games (like Xenoblade Chronicles 2) clear both depth and stencil buffers while there's a depth-only texture attached (e.g. D16 Unorm). This commit reads the zeta format of the bound surface on ConfigureFramebuffers and returns if depth and/or stencil attachments were set. This is ignored on DrawArrays but on Clear it's used to just clear those attachments, bypassing an OpenGL error.
* | rasterizer_interface: Remove unused AccelerateFill operationReinUsesLisp2019-02-011-1/+0
| |
* | gl_shader_cache: Use explicit bindingsReinUsesLisp2019-01-301-29/+12
| |
* | gl_rasterizer: Implement global memory managementReinUsesLisp2019-01-301-0/+10
|/
* Merge pull request #2008 from ReinUsesLisp/dirty-framebuffersbunnei2019-01-201-0/+18
|\ | | | | gl_rasterizer_cache: Use dirty flags for framebuffers
| * gl_rasterizer: Skip framebuffer configuration if rendertargets have not been changedReinUsesLisp2019-01-071-0/+18
| |
* | Merge pull request #2002 from ReinUsesLisp/dsa-vao-bufferbunnei2019-01-201-2/+4
|\ \ | | | | | | gl_rasterizer: Use DSA for VAOs and buffers
| * | gl_rasterizer: Use DSA for vertex array objectsReinUsesLisp2019-01-061-2/+4
| |/
* / gl_global_cache: Add dummy global cache managerReinUsesLisp2019-01-081-2/+8
|/
* Merge pull request #1824 from ReinUsesLisp/fbcachebunnei2018-12-061-1/+5
|\ | | | | gl_rasterizer: Implement a framebuffer cache
| * gl_rasterizer: Implement a framebuffer cacheReinUsesLisp2018-11-291-1/+5
| |
* | Merge pull request #1827 from ReinUsesLisp/clip-and-shaderbunnei2018-12-021-1/+2
|\ \ | | | | | | gl_rasterizer: Enable clip distances when set in register and in shader
| * | gl_rasterizer: Enable clip distances when set in register and in shaderReinUsesLisp2018-11-291-1/+2
| |/
* | gl_rasterizer: Remove unused struct declarationsReinUsesLisp2018-11-291-14/+0
| |
* | gl_rasterizer: Remove extension booleansReinUsesLisp2018-11-291-3/+0
|/
* Implement depth clampRodolfo Bogado2018-11-271-0/+4
|
* GPU States: Implement Polygon Offset. This is used in SMO all the time. (#1784)Marcos2018-11-271-0/+3
| | | | | | | | * GPU States: Implement Polygon Offset. This is used in SMO all the time. * Clang Format fixes. * Initialize polygon_offset in the constructor.
* Merge pull request #1725 from FernandoS27/gl43bunnei2018-11-241-2/+0
|\ | | | | Update OpenGL's backend version from 3.3 to 4.3
| * Removed pre 4.3 ARB extensionsFernandoS272018-11-211-2/+0
| |
* | Add support for clear_flags registerRodolfo Bogado2018-11-241-14/+15
|/
* fix sampler configuration, thanks to Marcos for his investigationRodolfo Bogado2018-11-171-1/+5
|
* add AlphaToCoverage and AlphaToOneRodolfo Bogado2018-11-171-0/+3
|
* add support for fragment_color_clampRodolfo Bogado2018-11-171-0/+3
|
* Improve state management by splitting some of the states id separated function to avoid a full apply overheadRodolfo Bogado2018-11-111-3/+3
|
* set sampler max lod, min lod, lod bias and max anisotropyRodolfo Bogado2018-11-111-1/+1
|
* Merge pull request #1654 from degasus/dirty_flagsbunnei2018-11-111-1/+2
|\ | | | | gl_rasterizer: Skip VAO binding if the state is clean.
| * gl_rasterizer: Split VAO and VB setup functions.Markus Wick2018-11-061-1/+2
| |
* | Add support to color mask to avoid issues in blending caused by wrong values in the alpha channel in some render targets.Rodolfo Bogado2018-11-051-0/+3
| |
* | Implement multi-target viewports and blendingRodolfo Bogado2018-11-051-4/+1
|/
* global: Use std::optional instead of boost::optional (#1578)Frederic L2018-10-301-2/+2
| | | | | | | | | | | | | | | | * get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build
* Implement Mip FilterFernandoS272018-10-291-0/+1
|
* gl_rasterizer: Implement primitive restart.bunnei2018-10-261-0/+3
|
* gl_rasterizer: Implement depth range.bunnei2018-10-261-5/+2
|
* Assert that multiple render targets are not set while alpha testingFernandoS272018-10-221-0/+3
|
* Use standard UBO and fix/stylize the codeFernandoS272018-10-221-3/+0
|
* Remove SyncAlphaTest and clang formatFernandoS272018-10-221-3/+1
|
* Implemented Alpha TestingFernandoS272018-10-221-0/+2
|
* Merge pull request #1460 from FernandoS27/scissor_testbunnei2018-10-101-0/+3
|\ | | | | Implemented Scissor Testing
| * Assert Scissor testsFernandoS272018-10-091-0/+3
| |
* | gl_shader_decompiler: Implement geometry shadersReinUsesLisp2018-10-071-3/+3
|/
* Merge pull request #1446 from bunnei/fast_fermi_copybunnei2018-10-071-2/+2
|\ | | | | gl_rasterizer: Implement accelerated Fermi2D copies.
| * gl_rasterizer: Add rasterizer cache code to handle accerated fermi copies.bunnei2018-10-061-2/+2
| |
* | Merge pull request #1437 from FernandoS27/tex-mode2bunnei2018-10-071-0/+2
|\ \ | |/ |/| Implemented Depth Compare, Shadow Samplers and Texture Processing Modes for TEXS and TLDS
| * Implemented Depth Compare and Shadow SamplersFernandoS272018-10-061-0/+2
| |
* | gl_rasterizer: Implement quads topologyReinUsesLisp2018-10-041-0/+7
|/
* Merge pull request #1411 from ReinUsesLisp/point-sizebunnei2018-09-291-0/+3
|\ | | | | video_core: Implement point_size and add point state sync
| * video_core: Implement point_size and add point state syncReinUsesLisp2018-09-281-0/+3
| |
* | gl_state: Pack sampler bindings into a single ARB_multi_bindReinUsesLisp2018-09-281-1/+1
|/
* video_core: Add asserts for CS, TFB and alpha testingReinUsesLisp2018-09-261-0/+6
| | | | | | Add asserts for compute shader dispatching, transform feedback being enabled and alpha testing. These have in common that they'll probably break rendering without logging.
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-4/+4
|
* Use ARB_multi_bind for uniform buffers (#1287)ReinUsesLisp2018-09-131-0/+1
| | | | | | * gl_rasterizer: use ARB_multi_bind for uniform buffers * address feedback
* Merge pull request #1286 from bunnei/multi-clearbunnei2018-09-111-2/+11
|\ | | | | gl_rasterizer: Implement clear for non-zero render targets.
| * gl_rasterizer: Implement clear for non-zero render targets.bunnei2018-09-101-2/+11
| | | | | | | | - Several misc. changes to ConfigureFramebuffers in support of this.
* | rasterizer: Drop unused handler.Markus Wick2018-09-101-1/+0
|/ | | | | | | | This virtual function is called in a very hot spot, and it does nothing. If this kind of feature is required, please be more specific and add callbacks in the switch statement within Maxwell3D::WriteReg. There is no point in having another switch statement within the rasterizer.
* gl_rasterizer: Implement multiple color attachments.bunnei2018-09-101-9/+3
|
* gl_rasterizer: Implement texture wrap mode p.bunnei2018-09-081-0/+1
|
* gl_rasterizer: Implement a VAO cache.Markus Wick2018-09-051-3/+5
| | | | | | This patch caches VAO objects instead of re-emiting all pointers per draw call. Configuring this pointers is known as a fast task, but it yields too many GL calls. So for better performance, just bind the VAO instead of 16 pointers.
* renderer_opengl: Implement a buffer cache.Markus Wick2018-09-051-12/+7
| | | | | | | | | The idea of this cache is to avoid redundant uploads. So we are going to cache the uploaded buffers within the stream_buffer and just reuse the old pointers. The next step is to implement a VBO cache on GPU memory, but for now, I want to check the overhead of the cache management. Fetching the buffer over PCI-E should be quite fast.
* gl_renderer: Cache textures, framebuffers, and shaders based on CPU address.bunnei2018-08-311-3/+3
|
* gl_rasterizer: Fix issues with the rasterizer cache.bunnei2018-08-311-0/+8
| | | | | - Use a single cached page map. - Fix calculation of ending page.
* renderer_opengl: Implement a new shader cache.bunnei2018-08-281-8/+7
|
* gl_rasterizer: Implement stencil test.bunnei2018-08-231-0/+3
| | | | - Used by Splatoon 2.
* renderer_opengl: Namespace OpenGL codeLioncash2018-08-221-2/+6
| | | | | | | Namespaces all OpenGL code under the OpenGL namespace. Prevents polluting the global namespace and allows clear distinction between other renderers' code in the future.
* Merge pull request #1124 from Subv/logic_opsbunnei2018-08-221-0/+3
|\ | | | | GPU: Implemented logic ops.
| * GPU: Implemented the logic op functionality of the GPU.Subv2018-08-211-0/+3
| | | | | | | | This will ASSERT if blending is enabled at the same time as logic ops.
* | Merge pull request #1123 from lioncash/screenbunnei2018-08-211-3/+5
|\ \ | | | | | | rasterizer_interface: Remove renderer-specific ScreenInfo type from AccelerateDraw() in RasterizerInterface
| * | rasterizer_interface: Remove ScreenInfo from AccelerateDraw()'s signatureLioncash2018-08-211-3/+5
| |/ | | | | | | | | | | This is an OpenGL renderer-specific data type. Given that, this type shouldn't be used within the base interface for the rasterizer. Instead, we can pass this information to the rasterizer via reference.
* / Rasterizer: Don't attempt to copy over the old texture's data when doing a format reinterpretation if we're only going to clear the framebuffer.Subv2018-08-201-1/+2
|/
* 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