Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #2734 from ReinUsesLisp/compute-shaders | bunnei | 2019-07-22 | 1 | -2/+13 |
|\ | | | | | gl_rasterizer: Implement compute shaders | ||||
| * | gl_rasterizer: Implement compute shaders | ReinUsesLisp | 2019-07-15 | 1 | -2/+13 |
| | | |||||
* | | GL_Rasterizer: Rework RenderTarget/DepthBuffer clearing | Fernando Sahmkow | 2019-07-17 | 1 | -0/+5 |
| | | |||||
* | | Maxwell3D: Rework the dirty system to be more consistant and scaleable | Fernando Sahmkow | 2019-07-17 | 1 | -0/+1 |
|/ | |||||
* | Merge pull request #2675 from ReinUsesLisp/opengl-buffer-cache | bunnei | 2019-07-15 | 1 | -8/+5 |
|\ | | | | | buffer_cache: Implement a generic buffer cache and its OpenGL backend | ||||
| * | gl_rasterizer: Minor style changes | ReinUsesLisp | 2019-07-06 | 1 | -5/+0 |
| | | |||||
| * | gl_rasterizer: Fix vertex and index data invalidations | ReinUsesLisp | 2019-07-06 | 1 | -1/+2 |
| | | |||||
| * | gl_buffer_cache: Implement with generic buffer cache | ReinUsesLisp | 2019-07-06 | 1 | -0/+1 |
| | | |||||
| * | gl_rasterizer: Drop gl_global_cache in favor of gl_buffer_cache | ReinUsesLisp | 2019-07-06 | 1 | -2/+0 |
| | | |||||
| * | gl_buffer_cache: Return used buffer from Upload function | ReinUsesLisp | 2019-07-06 | 1 | -1/+1 |
| | | |||||
| * | gl_rasterizer: Move index buffer uploading to its own method | ReinUsesLisp | 2019-07-06 | 1 | -1/+3 |
| | | |||||
* | | gl_rasterizer: Amend documentation comment for ConfigureFramebuffers() | Lioncash | 2019-07-09 | 1 | -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 system | Fernando Sahmkow | 2019-06-25 | 1 | -2/+0 |
| | |||||
* | texture_cache: Fermi2D reform and implement View Mirage | Fernando Sahmkow | 2019-06-21 | 1 | -2/+1 |
| | | | | | This also does some fixes on compressed textures reinterpret and on the Fermi2D engine in general. | ||||
* | gl_rasterizer: Track texture buffer usage | ReinUsesLisp | 2019-06-21 | 1 | -3/+4 |
| | |||||
* | gl_framebuffer_cache: Use a hashed struct to cache framebuffers | ReinUsesLisp | 2019-06-21 | 1 | -4/+2 |
| | |||||
* | Remove Framebuffer reconfiguration and restrict rendertarget protection | Fernando Sahmkow | 2019-06-21 | 1 | -3/+2 |
| | |||||
* | texture_cache: Correct premature texceptions | Fernando Sahmkow | 2019-06-21 | 1 | -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 Copies | Fernando Sahmkow | 2019-06-21 | 1 | -1/+0 |
| | |||||
* | Change texture_cache chaching from GPUAddr to CacheAddr | Fernando Sahmkow | 2019-06-21 | 1 | -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 GPUVAddr | Fernando Sahmkow | 2019-06-21 | 1 | -0/+8 |
| | |||||
* | gl_texture_cache: Implement fermi copies | ReinUsesLisp | 2019-06-21 | 1 | -0/+1 |
| | |||||
* | gl_texture_cache: Initial implementation | ReinUsesLisp | 2019-06-21 | 1 | -2/+2 |
| | |||||
* | gl_rasterizer: Remove unused parameters in descriptor uploads | ReinUsesLisp | 2019-06-08 | 1 | -3/+2 |
| | |||||
* | video_core/engines: Move ConstBufferInfo out of Maxwell3D | ReinUsesLisp | 2019-06-08 | 1 | -2/+8 |
| | |||||
* | gl_rasterizer: Move alpha testing to the OpenGL pipeline | ReinUsesLisp | 2019-05-30 | 1 | -2/+2 |
| | | | | Removes the alpha testing code from each fragment shader invocation. | ||||
* | gl_rasterizer: Use GL_QUADS to emulate quads rendering | ReinUsesLisp | 2019-05-30 | 1 | -2/+0 |
| | |||||
* | gl_shader_cache: Use shared contexts to build shaders in parallel | ReinUsesLisp | 2019-05-21 | 1 | -1/+2 |
| | |||||
* | Merge pull request #2383 from ReinUsesLisp/aoffi-test | bunnei | 2019-04-23 | 1 | -2/+2 |
|\ | | | | | gl_shader_decompiler: Disable variable AOFFI on unsupported devices | ||||
| * | gl_shader_decompiler: Use variable AOFFI on supported hardware | ReinUsesLisp | 2019-04-14 | 1 | -3/+1 |
| | | |||||
| * | gl_device: Implement interface and add uniform offset alignment | ReinUsesLisp | 2019-04-10 | 1 | -1/+3 |
| | | |||||
* | | Merge pull request #2318 from ReinUsesLisp/sampler-cache | bunnei | 2019-04-18 | 1 | -30/+2 |
|\ \ | | | | | | | gl_sampler_cache: Port sampler cache to OpenGL | ||||
| * | | gl_sampler_cache: Port sampler cache to OpenGL | ReinUsesLisp | 2019-04-02 | 1 | -30/+2 |
| | | | |||||
* | | | shader_ir: Implement STG, keep track of global memory usage and flush | ReinUsesLisp | 2019-04-14 | 1 | -4/+0 |
| |/ |/| | |||||
* | | gl_rasterizer: Use ARB_multi_bind to update SSBOs | ReinUsesLisp | 2019-04-06 | 1 | -0/+1 |
| | | |||||
* | | gl_rasterizer: Use ARB_multi_bind to update UBOs across stages | ReinUsesLisp | 2019-04-06 | 1 | -0/+3 |
| | | |||||
* | | video_core/renderer_opengl: Remove unnecessary includes | Lioncash | 2019-04-04 | 1 | -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 RasterizerOpenGL | Lioncash | 2019-03-27 | 1 | -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. | bunnei | 2019-03-15 | 1 | -4/+4 |
| | |||||
* | Merge pull request #2216 from ReinUsesLisp/rasterizer-system | bunnei | 2019-03-14 | 1 | -0/+1 |
|\ | | | | | gl_rasterizer: Use system instance passed from argument | ||||
| * | gl_rasterizer: Use system instance passed from argument | ReinUsesLisp | 2019-03-11 | 1 | -0/+1 |
| | | |||||
* | | gl_rasterizer: Encapsulate sampler queries into methods | ReinUsesLisp | 2019-03-09 | 1 | -2/+3 |
|/ | |||||
* | common/math_util: Move contents into the Common namespace | Lioncash | 2019-02-27 | 1 | -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. | bunnei | 2019-02-07 | 1 | -1/+3 |
| | | | | - This is a blit, use the blit registers. | ||||
* | gl_shader_cache: Link loading screen with disk shader cache load | ReinUsesLisp | 2019-02-07 | 1 | -1/+3 |
| | |||||
* | gl_shader_disk_cache: Pass core system as argument and guard against games without title ids | ReinUsesLisp | 2019-02-07 | 1 | -1/+6 |
| | |||||
* | rasterizer_interface: Add disk cache entry for the rasterizer | ReinUsesLisp | 2019-02-07 | 1 | -0/+1 |
| | |||||
* | Merge pull request #2067 from ReinUsesLisp/workaround-fb | bunnei | 2019-02-01 | 1 | -3/+6 |
|\ | | | | | gl_rasterizer: Workaround invalid zeta clears | ||||
| * | gl_rasterizer: Workaround invalid zeta clears | ReinUsesLisp | 2019-01-30 | 1 | -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 operation | ReinUsesLisp | 2019-02-01 | 1 | -1/+0 |
| | | |||||
* | | gl_shader_cache: Use explicit bindings | ReinUsesLisp | 2019-01-30 | 1 | -29/+12 |
| | | |||||
* | | gl_rasterizer: Implement global memory management | ReinUsesLisp | 2019-01-30 | 1 | -0/+10 |
|/ | |||||
* | Merge pull request #2008 from ReinUsesLisp/dirty-framebuffers | bunnei | 2019-01-20 | 1 | -0/+18 |
|\ | | | | | gl_rasterizer_cache: Use dirty flags for framebuffers | ||||
| * | gl_rasterizer: Skip framebuffer configuration if rendertargets have not been changed | ReinUsesLisp | 2019-01-07 | 1 | -0/+18 |
| | | |||||
* | | Merge pull request #2002 from ReinUsesLisp/dsa-vao-buffer | bunnei | 2019-01-20 | 1 | -2/+4 |
|\ \ | | | | | | | gl_rasterizer: Use DSA for VAOs and buffers | ||||
| * | | gl_rasterizer: Use DSA for vertex array objects | ReinUsesLisp | 2019-01-06 | 1 | -2/+4 |
| |/ | |||||
* / | gl_global_cache: Add dummy global cache manager | ReinUsesLisp | 2019-01-08 | 1 | -2/+8 |
|/ | |||||
* | Merge pull request #1824 from ReinUsesLisp/fbcache | bunnei | 2018-12-06 | 1 | -1/+5 |
|\ | | | | | gl_rasterizer: Implement a framebuffer cache | ||||
| * | gl_rasterizer: Implement a framebuffer cache | ReinUsesLisp | 2018-11-29 | 1 | -1/+5 |
| | | |||||
* | | Merge pull request #1827 from ReinUsesLisp/clip-and-shader | bunnei | 2018-12-02 | 1 | -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 shader | ReinUsesLisp | 2018-11-29 | 1 | -1/+2 |
| |/ | |||||
* | | gl_rasterizer: Remove unused struct declarations | ReinUsesLisp | 2018-11-29 | 1 | -14/+0 |
| | | |||||
* | | gl_rasterizer: Remove extension booleans | ReinUsesLisp | 2018-11-29 | 1 | -3/+0 |
|/ | |||||
* | Implement depth clamp | Rodolfo Bogado | 2018-11-27 | 1 | -0/+4 |
| | |||||
* | GPU States: Implement Polygon Offset. This is used in SMO all the time. (#1784) | Marcos | 2018-11-27 | 1 | -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/gl43 | bunnei | 2018-11-24 | 1 | -2/+0 |
|\ | | | | | Update OpenGL's backend version from 3.3 to 4.3 | ||||
| * | Removed pre 4.3 ARB extensions | FernandoS27 | 2018-11-21 | 1 | -2/+0 |
| | | |||||
* | | Add support for clear_flags register | Rodolfo Bogado | 2018-11-24 | 1 | -14/+15 |
|/ | |||||
* | fix sampler configuration, thanks to Marcos for his investigation | Rodolfo Bogado | 2018-11-17 | 1 | -1/+5 |
| | |||||
* | add AlphaToCoverage and AlphaToOne | Rodolfo Bogado | 2018-11-17 | 1 | -0/+3 |
| | |||||
* | add support for fragment_color_clamp | Rodolfo Bogado | 2018-11-17 | 1 | -0/+3 |
| | |||||
* | Improve state management by splitting some of the states id separated function to avoid a full apply overhead | Rodolfo Bogado | 2018-11-11 | 1 | -3/+3 |
| | |||||
* | set sampler max lod, min lod, lod bias and max anisotropy | Rodolfo Bogado | 2018-11-11 | 1 | -1/+1 |
| | |||||
* | Merge pull request #1654 from degasus/dirty_flags | bunnei | 2018-11-11 | 1 | -1/+2 |
|\ | | | | | gl_rasterizer: Skip VAO binding if the state is clean. | ||||
| * | gl_rasterizer: Split VAO and VB setup functions. | Markus Wick | 2018-11-06 | 1 | -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 Bogado | 2018-11-05 | 1 | -0/+3 |
| | | |||||
* | | Implement multi-target viewports and blending | Rodolfo Bogado | 2018-11-05 | 1 | -4/+1 |
|/ | |||||
* | global: Use std::optional instead of boost::optional (#1578) | Frederic L | 2018-10-30 | 1 | -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 Filter | FernandoS27 | 2018-10-29 | 1 | -0/+1 |
| | |||||
* | gl_rasterizer: Implement primitive restart. | bunnei | 2018-10-26 | 1 | -0/+3 |
| | |||||
* | gl_rasterizer: Implement depth range. | bunnei | 2018-10-26 | 1 | -5/+2 |
| | |||||
* | Assert that multiple render targets are not set while alpha testing | FernandoS27 | 2018-10-22 | 1 | -0/+3 |
| | |||||
* | Use standard UBO and fix/stylize the code | FernandoS27 | 2018-10-22 | 1 | -3/+0 |
| | |||||
* | Remove SyncAlphaTest and clang format | FernandoS27 | 2018-10-22 | 1 | -3/+1 |
| | |||||
* | Implemented Alpha Testing | FernandoS27 | 2018-10-22 | 1 | -0/+2 |
| | |||||
* | Merge pull request #1460 from FernandoS27/scissor_test | bunnei | 2018-10-10 | 1 | -0/+3 |
|\ | | | | | Implemented Scissor Testing | ||||
| * | Assert Scissor tests | FernandoS27 | 2018-10-09 | 1 | -0/+3 |
| | | |||||
* | | gl_shader_decompiler: Implement geometry shaders | ReinUsesLisp | 2018-10-07 | 1 | -3/+3 |
|/ | |||||
* | Merge pull request #1446 from bunnei/fast_fermi_copy | bunnei | 2018-10-07 | 1 | -2/+2 |
|\ | | | | | gl_rasterizer: Implement accelerated Fermi2D copies. | ||||
| * | gl_rasterizer: Add rasterizer cache code to handle accerated fermi copies. | bunnei | 2018-10-06 | 1 | -2/+2 |
| | | |||||
* | | Merge pull request #1437 from FernandoS27/tex-mode2 | bunnei | 2018-10-07 | 1 | -0/+2 |
|\ \ | |/ |/| | Implemented Depth Compare, Shadow Samplers and Texture Processing Modes for TEXS and TLDS | ||||
| * | Implemented Depth Compare and Shadow Samplers | FernandoS27 | 2018-10-06 | 1 | -0/+2 |
| | | |||||
* | | gl_rasterizer: Implement quads topology | ReinUsesLisp | 2018-10-04 | 1 | -0/+7 |
|/ | |||||
* | Merge pull request #1411 from ReinUsesLisp/point-size | bunnei | 2018-09-29 | 1 | -0/+3 |
|\ | | | | | video_core: Implement point_size and add point state sync | ||||
| * | video_core: Implement point_size and add point state sync | ReinUsesLisp | 2018-09-28 | 1 | -0/+3 |
| | | |||||
* | | gl_state: Pack sampler bindings into a single ARB_multi_bind | ReinUsesLisp | 2018-09-28 | 1 | -1/+1 |
|/ | |||||
* | video_core: Add asserts for CS, TFB and alpha testing | ReinUsesLisp | 2018-09-26 | 1 | -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::" | fearlessTobi | 2018-09-15 | 1 | -4/+4 |
| | |||||
* | Use ARB_multi_bind for uniform buffers (#1287) | ReinUsesLisp | 2018-09-13 | 1 | -0/+1 |
| | | | | | | * gl_rasterizer: use ARB_multi_bind for uniform buffers * address feedback | ||||
* | Merge pull request #1286 from bunnei/multi-clear | bunnei | 2018-09-11 | 1 | -2/+11 |
|\ | | | | | gl_rasterizer: Implement clear for non-zero render targets. | ||||
| * | gl_rasterizer: Implement clear for non-zero render targets. | bunnei | 2018-09-10 | 1 | -2/+11 |
| | | | | | | | | - Several misc. changes to ConfigureFramebuffers in support of this. | ||||
* | | rasterizer: Drop unused handler. | Markus Wick | 2018-09-10 | 1 | -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. | bunnei | 2018-09-10 | 1 | -9/+3 |
| | |||||
* | gl_rasterizer: Implement texture wrap mode p. | bunnei | 2018-09-08 | 1 | -0/+1 |
| | |||||
* | gl_rasterizer: Implement a VAO cache. | Markus Wick | 2018-09-05 | 1 | -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 Wick | 2018-09-05 | 1 | -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. | bunnei | 2018-08-31 | 1 | -3/+3 |
| | |||||
* | gl_rasterizer: Fix issues with the rasterizer cache. | bunnei | 2018-08-31 | 1 | -0/+8 |
| | | | | | - Use a single cached page map. - Fix calculation of ending page. | ||||
* | renderer_opengl: Implement a new shader cache. | bunnei | 2018-08-28 | 1 | -8/+7 |
| | |||||
* | gl_rasterizer: Implement stencil test. | bunnei | 2018-08-23 | 1 | -0/+3 |
| | | | | - Used by Splatoon 2. | ||||
* | renderer_opengl: Namespace OpenGL code | Lioncash | 2018-08-22 | 1 | -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_ops | bunnei | 2018-08-22 | 1 | -0/+3 |
|\ | | | | | GPU: Implemented logic ops. | ||||
| * | GPU: Implemented the logic op functionality of the GPU. | Subv | 2018-08-21 | 1 | -0/+3 |
| | | | | | | | | This will ASSERT if blending is enabled at the same time as logic ops. | ||||
* | | Merge pull request #1123 from lioncash/screen | bunnei | 2018-08-21 | 1 | -3/+5 |
|\ \ | | | | | | | rasterizer_interface: Remove renderer-specific ScreenInfo type from AccelerateDraw() in RasterizerInterface | ||||
| * | | rasterizer_interface: Remove ScreenInfo from AccelerateDraw()'s signature | Lioncash | 2018-08-21 | 1 | -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. | Subv | 2018-08-20 | 1 | -1/+2 |
|/ | |||||
* | gl_rasterizer: Use a shared helper to upload from CPU memory. | Markus Wick | 2018-08-12 | 1 | -0/+4 |
| | |||||
* | gl_rasterizer: Use the stream buffer for constant buffers. | Markus Wick | 2018-08-12 | 1 | -6/+5 |
| | |||||
* | gl_rasterizer: Use the streaming buffer itself for the constant buffer. | Markus Wick | 2018-08-12 | 1 | -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 Wick | 2018-08-12 | 1 | -1/+3 |
| | |||||
* | Update the stream_buffer helper from Citra. | Markus Wick | 2018-08-12 | 1 | -2/+1 |
| | | | | Please see https://github.com/citra-emu/citra/pull/3666 for more details. | ||||
* | core: Namespace EmuWindow | Lioncash | 2018-08-12 | 1 | -3/+6 |
| | | | | Gets the class out of the global namespace. | ||||
* | video_core: Make global EmuWindow instance part of the base renderer class | Lioncash | 2018-08-02 | 1 | -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 applicable | Lioncash | 2018-07-24 | 1 | -5/+5 |
| | | | | We can just assign to the members directly in these cases. | ||||
* | gl_rasterizer: Implement texture border color. | bunnei | 2018-07-24 | 1 | -4/+1 |
| | |||||
* | GPU: Only configure the used framebuffers during clear. | Subv | 2018-07-04 | 1 | -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. | Subv | 2018-07-03 | 1 | -0/+5 |
| | |||||
* | GPU: Bind and clear the render target when the CLEAR_BUFFERS register is written to. | Subv | 2018-07-03 | 1 | -0/+1 |
| | |||||
* | GPU: Set up the depth test state on every draw. | Subv | 2018-07-02 | 1 | -0/+3 |
| | |||||
* | gl_rasterizer_cache: Remove Citra's rasterizer cache, always load/flush surfaces. | bunnei | 2018-06-27 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Workaround for when exceeding max UBO size. | bunnei | 2018-06-27 | 1 | -1/+1 |
| | |||||
* | Rasterizer: Use UBOs instead of SSBOs for uploading const buffers. | Subv | 2018-06-10 | 1 | -0/+5 |
| | | | | This should help a bit with GPU performance once we're GPU-bound. | ||||
* | GPU: Synchronize the blend state on every draw call. | Subv | 2018-06-09 | 1 | -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. | Subv | 2018-06-06 | 1 | -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. | Subv | 2018-05-19 | 1 | -1/+0 |
| | |||||
* | GLRenderer: Remove unused vertex buffer and increase the size of the stream buffer to 128 MB. | Subv | 2018-05-19 | 1 | -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. | bunnei | 2018-04-25 | 1 | -3/+4 |
| | |||||
* | GPU: Support multiple enabled vertex arrays. | Subv | 2018-04-23 | 1 | -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 inclusions | Lioncash | 2018-04-21 | 1 | -5/+0 |
| | |||||
* | renderer_opengl: Implement BlendEquation and BlendFunc. | bunnei | 2018-04-18 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Implement indexed vertex mode. | bunnei | 2018-04-17 | 1 | -1/+0 |
| | |||||
* | GPU: Use the same buffer names in the generated GLSL and the buffer uploading code. | Subv | 2018-04-15 | 1 | -3/+2 |
| | |||||
* | GPU: Don't use explicit binding points when uploading the constbuffers to opengl. | Subv | 2018-04-15 | 1 | -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. | Subv | 2018-04-15 | 1 | -1/+2 |
| | |||||
* | GPU: Upload the entirety of each constbuffer for each shader stage as SSBOs. | Subv | 2018-04-15 | 1 | -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. | Subv | 2018-04-15 | 1 | -0/+2 |
| | |||||
* | shaders: Add NumTextureSamplers const, remove unused #pragma. | bunnei | 2018-04-15 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Generate shaders and upload uniforms. | bunnei | 2018-04-14 | 1 | -4/+3 |
| | |||||
* | gl_rasterizer: Use shader program manager, remove test shader. | bunnei | 2018-04-14 | 1 | -53/+4 |
| | |||||
* | renderer_opengl: Use OGLProgram instead of OGLShader. | bunnei | 2018-04-14 | 1 | -1/+1 |
| | |||||
* | GL: Set up the textures used for each draw call. | Subv | 2018-04-07 | 1 | -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. | Subv | 2018-04-07 | 1 | -1/+20 |
| | |||||
* | gl_rasterizer: Move code to bind framebuffer surfaces before draw to its own function. | bunnei | 2018-03-27 | 1 | -0/+4 |
| | |||||
* | gl_rasterizer: Add a SyncViewport method. | bunnei | 2018-03-27 | 1 | -0/+3 |
| | |||||
* | rasterizer: Rename DrawTriangles to DrawArrays. | bunnei | 2018-03-27 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Use 32 texture units instead of 3. | bunnei | 2018-03-27 | 1 | -1/+1 |
| | |||||
* | rasterizer: Flush and invalidate regions should be 64-bit. | bunnei | 2018-03-23 | 1 | -3/+3 |
| | |||||
* | video_core: Remove usage of PAddr and replace with VAddr. | bunnei | 2018-03-23 | 1 | -4/+4 |
| | |||||
* | video_core: Move FramebufferInfo to FramebufferConfig in GPU. | bunnei | 2018-03-23 | 1 | -2/+2 |
| | |||||
* | gl_rasterizer: Add a simple passthrough shader in lieu of shader generation. | bunnei | 2018-03-23 | 1 | -2/+12 |
| | |||||
* | renderer_gl: Port boilerplate rasterizer code over from Citra. | bunnei | 2018-03-20 | 1 | -0/+162 |
| | |||||
* | Remove references to PICA and rasterizers in video_core | James Rowe | 2018-01-13 | 1 | -316/+0 |
| | |||||
* | core/video_core: Fix a bunch of u64 -> u32 warnings. | bunnei | 2018-01-01 | 1 | -2/+2 |
| | |||||
* | gl_rasterizer: implement custom clip plane | wwylele | 2017-08-25 | 1 | -1/+8 |
| | |||||
* | gl_rasterizer: use texture buffer for proctex LUT | wwylele | 2017-07-01 | 1 | -0/+5 |
| | |||||
* | gl_rasterizer: use texture buffer for fog LUT | wwylele | 2017-06-22 | 1 | -1/+2 |
| | |||||
* | gl_rasterizer/lighting: fix LUT interpolation | wwylele | 2017-06-21 | 1 | -3/+4 |
| | |||||
* | gl_rasterizer: sync spot light status | wwylele | 2017-05-30 | 1 | -1/+5 |
| | |||||
* | gl_rasterizer: implement procedural texture | wwylele | 2017-05-20 | 1 | -1/+34 |
| | |||||
* | OpenGL: Move PicaShaderConfig to gl_shader_gen.h | Yuri Kunde Schlesner | 2017-04-17 | 1 | -199/+2 |
| | | | | Also move the implementation of CurrentConfig to the cpp file. | ||||
* | VideoCore: Split regs.h inclusions | Yuri Kunde Schlesner | 2017-02-09 | 1 | -1/+4 |
| | |||||
* | VideoCore: Move Regs to its own file | Yuri Kunde Schlesner | 2017-02-04 | 1 | -1/+1 |
| | |||||
* | VideoCore: Split lighting regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 1 | -4/+4 |
| | |||||
* | VideoCore: Split framebuffer regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 1 | -4/+4 |
| | |||||
* | VideoCore: Split texturing regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 1 | -12/+13 |
| | |||||
* | VideoCore: Split rasterizer regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 1 | -4/+4 |
| | |||||
* | VideoCore: Change misleading register names | Yuri Kunde Schlesner | 2017-01-30 | 1 | -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 MSVC | Kloen | 2017-01-23 | 1 | -1/+1 |
| | |||||
* | Merge pull request #2103 from wwylele/gpu-reg-cleanup | bunnei | 2016-10-04 | 1 | -0/+1 |
|\ | | | | | GPU: DisplayTransfer & MemoryFill cleanup and param check | ||||
| * | rasterizer: separate TextureCopy from DisplayTransfer | wwylele | 2016-09-29 | 1 | -0/+1 |
| | | |||||
* | | OpenGL: Take cached viewport sub-rect into account for scissor | Yuri Kunde Schlesner | 2016-09-30 | 1 | -3/+0 |
|/ | | | | Fixes #1938 | ||||
* | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 2016-09-21 | 1 | -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-format | Yuri Kunde Schlesner | 2016-09-19 | 1 | -6/+3 |
| | |||||
* | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 2016-09-18 | 1 | -21/+29 |
| | |||||
* | OpenGL: Add scaled resolution support to scissor | Yuri Kunde Schlesner | 2016-06-28 | 1 | -1/+2 |
| | |||||
* | PICA: Scissor fixes and cleanups | Yuri Kunde Schlesner | 2016-06-28 | 1 | -4/+4 |
| | |||||
* | PICA: Implement scissor test | Subv | 2016-06-28 | 1 | -1/+11 |
| | |||||
* | OpenGL: Implement fog | Jannik Vogel | 2016-06-07 | 1 | -2/+15 |
| | |||||
* | OpenGL: Avoid undefined behaviour for UNIFORM_BLOCK_DATA_SIZE | Jannik Vogel | 2016-06-07 | 1 | -4/+6 |
| | |||||
* | Pica: Name LightSrc.config register | Jannik Vogel | 2016-05-23 | 1 | -2/+2 |
| | |||||
* | Pica: Name lighting.config0 and .config1 registers | Jannik Vogel | 2016-05-23 | 1 | -12/+12 |
| | |||||
* | OpenGL: Use uniforms for dist_atten_bias and dist_atten_scale | Jannik Vogel | 2016-05-23 | 1 | -5/+9 |
| | |||||
* | OpenGL: Only update depth uniforms if the depth changed | Jannik Vogel | 2016-05-14 | 1 | -2/+5 |
| | |||||
* | OpenGL: value-initialize variables which cause uninitialised access otherwise | Jannik Vogel | 2016-05-14 | 1 | -2/+2 |
| | |||||
* | OpenGL: Implement texture type 3 | Jannik Vogel | 2016-05-11 | 1 | -0/+5 |
| | |||||
* | Merge pull request #1621 from JayFoxRox/w-buffer | bunnei | 2016-05-11 | 1 | -0/+5 |
|\ | | | | | Implement W-buffer and fix depth-mapping | ||||
| * | OpenGL: Implement W-Buffers and fix depth-mapping | Jannik Vogel | 2016-05-10 | 1 | -0/+5 |
| | | |||||
* | | gl_rasterizer: Fix compilation for debug builds | Lioncash | 2016-05-10 | 1 | -1/+1 |
|/ | |||||
* | Pica: Use a union for PicaShaderConfig | Jannik Vogel | 2016-05-03 | 1 | -87/+97 |
| | |||||
* | Pica: Add TevStageConfigRaw to PicaShaderConfig (MSVC workaround) | Jannik Vogel | 2016-05-03 | 1 | -1/+22 |
| | |||||
* | Pica: Make PicaShaderConfig trivially_copyable and clear it before use | Jannik Vogel | 2016-05-03 | 1 | -21/+28 |
| | |||||
* | OpenGL: Don't copy const_color (Reverts #1745) | Jannik Vogel | 2016-05-03 | 1 | -2/+3 |
| | |||||
* | Merge pull request #1741 from linkmauve/iwyu-video_core | bunnei | 2016-05-01 | 1 | -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 Peyrot | 2016-04-30 | 1 | -2/+12 |
| | | |||||
* | | OpenGL: Copy TevStageConfig using a loop. Fixes bug: const_color not copied | Jannik Vogel | 2016-05-01 | 1 | -30/+11 |
|/ | |||||
* | HWRasterizer: reorder declarations to match defs | tfarley | 2016-04-22 | 1 | -9/+9 |
| | |||||
* | HWRasterizer: Texture forwarding | tfarley | 2016-04-21 | 1 | -66/+10 |
| | |||||
* | OpenGL: Split buffer-write mask sync into seperate functions | Jannik Vogel | 2016-04-08 | 1 | -0/+9 |
| | |||||
* | Add immediate mode vertex submission | Dwayne Slater | 2016-03-03 | 1 | -0/+1 |
| | |||||
* | pica: Cleanup lighting register definitions and documentation. | bunnei | 2016-02-05 | 1 | -15/+15 |
| | |||||
* | gl_rasterizer: Use alignas(16) instead of explicit padding. | bunnei | 2016-02-05 | 1 | -13/+6 |
| | |||||
* | renderer_opengl: Use GLvec3/GLvec4 aliases for commonly used types. | bunnei | 2016-02-05 | 1 | -9/+10 |
| | |||||
* | gl_rasterizer: Fix issue with interpolation of opposite quaternions. | bunnei | 2016-02-05 | 1 | -1/+7 |
| | |||||
* | pica_types: Replace float24/20/16 with a template class. | bunnei | 2016-02-05 | 1 | -2/+2 |
| | |||||
* | gl_rasterizer: Remove unnecessary casts. | bunnei | 2016-02-05 | 1 | -6/+6 |
| | |||||
* | gl_rasterizer: Fix PicaShaderConfig on GCC. | bunnei | 2016-02-05 | 1 | -29/+27 |
| | |||||
* | gl_rasterizer: Initial implementation of bump mapping. | bunnei | 2016-02-05 | 1 | -0/+6 |
| | |||||
* | gl_shader_gen: Implement lighting red, green, and blue reflection. | bunnei | 2016-02-05 | 1 | -1/+17 |
| | |||||
* | gl_shader_gen: Implement fragment lighting fresnel effect. | bunnei | 2016-02-05 | 1 | -0/+7 |
| | |||||
* | gl_shader_gen: Implement fragment lighting specular 1 component. | bunnei | 2016-02-05 | 1 | -0/+8 |
| | |||||
* | gl_shader_gen: Add support for D0 LUT scaling. | bunnei | 2016-02-05 | 1 | -1/+3 |
| | |||||
* | gl_shader_gen: Refactor lighting config to match Pica register naming. | bunnei | 2016-02-05 | 1 | -28/+32 |
| | | | | - Also implement D0 LUT enable. | ||||
* | pica: Cleanup and add some comments to lighting registers. | bunnei | 2016-02-05 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Minor naming refactor on Pica register naming. | bunnei | 2016-02-05 | 1 | -5/+5 |
| | |||||
* | renderer_opengl: Use textures for fragment shader LUTs instead of UBOs. | bunnei | 2016-02-05 | 1 | -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. | bunnei | 2016-02-05 | 1 | -0/+20 |
| | |||||
* | renderer_opengl: Implement HW fragment lighting distance attenuation. | bunnei | 2016-02-05 | 1 | -14/+22 |
| | |||||
* | renderer_opengl: Implement HW fragment lighting LUTs within our default UBO. | bunnei | 2016-02-05 | 1 | -2/+7 |
| | |||||
* | renderer_opengl: Implement diffuse component of HW fragment lighting. | bunnei | 2016-02-05 | 1 | -3/+58 |
| | |||||
* | hwrasterizer: Use proper cached fb addr/size | tfarley | 2016-02-03 | 1 | -2/+2 |
| | |||||
* | hwrasterizer: Use depth offset | tfarley | 2016-01-21 | 1 | -1/+5 |
| | |||||
* | VideoCore: Unify interface to OpenGL and SW rasterizers | Yuri Kunde Schlesner | 2015-12-08 | 1 | -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 confusing | Yuri Kunde Schlesner | 2015-12-07 | 1 | -3/+3 |
| | |||||
* | Use regular uniform location | Pierre de La Morinerie | 2015-11-25 | 1 | -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 uniforms | Subv | 2015-11-19 | 1 | -6/+21 |
| | |||||
* | gl_shader_gen: Various cleanups to shader generation. | bunnei | 2015-10-22 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Use MMH3 hash for shader cache hey. | bunnei | 2015-10-22 | 1 | -76/+57 |
| | | | | - Includes a check to confirm no hash collisions. | ||||
* | gl_shader_gen: Require explicit uniform locations. | bunnei | 2015-10-22 | 1 | -26/+14 |
| | | | | - Fixes uniform issue on AMD. | ||||
* | gl_rasterizer: Add documentation to ShaderCacheKey. | bunnei | 2015-10-22 | 1 | -0/+16 |
| | |||||
* | renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups. | bunnei | 2015-10-22 | 1 | -23/+18 |
| | |||||
* | gl_rasterizer: Move logic for creating ShaderCacheKey to a static function. | bunnei | 2015-10-22 | 1 | -1/+44 |
| | |||||
* | Initial implementation of fragment shader generation with caching. | Subv | 2015-10-22 | 1 | -31/+79 |
| | |||||
* | video_core: Reorganize headers | Lioncash | 2015-09-11 | 1 | -3/+2 |
| | |||||
* | OpenGL: Use Sampler Objects to decouple sampler config from textures | Yuri Kunde Schlesner | 2015-09-03 | 1 | -0/+19 |
| | | | | Fixes #978 | ||||
* | Shader: Move shader code to its own subdirectory, "shader". | bunnei | 2015-08-15 | 1 | -1/+1 |
| | |||||
* | GPU: Refactor "VertexShader" namespace to "Shader". | bunnei | 2015-08-15 | 1 | -5/+5 |
| | | | | - Also renames "vertex_shader.*" to "shader_interpreter.*" | ||||
* | Core: Cleanup hw includes. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -0/+1 |
| | |||||
* | Common: Cleanup key_map includes. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -0/+4 |
| | |||||
* | Pica: Implement LogicOp function. | bunnei | 2015-05-31 | 1 | -0/+3 |
| | |||||
* | OpenGL renderer | tfarley | 2015-05-23 | 1 | -0/+207 |