Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | texture_cache: Pass TIC to texture cache | ReinUsesLisp | 2019-09-06 | 1 | -1/+1 |
| | |||||
* | kepler_compute: Implement texture queries | ReinUsesLisp | 2019-09-06 | 1 | -1/+21 |
| | |||||
* | gl_rasterizer: Split SetupTextures | ReinUsesLisp | 2019-09-06 | 1 | -20/+30 |
| | |||||
* | gl_rasterizer: Fix stencil testing | ReinUsesLisp | 2019-09-04 | 1 | -11/+11 |
| | | | | | | * Fix stencil dirty flags tracking when stencil is disabled * Attach stencil on clears (previously it only attached depth) * Attach stencil on drawing regardless of stencil testing being enabled | ||||
* | video_core: Silent miscellaneous warnings (#2820) | Rodrigo Locatti | 2019-08-30 | 1 | -2/+0 |
| | | | | | | | | | | | | | | | | | | | | | | | | * texture_cache/surface_params: Remove unused local variable * rasterizer_interface: Add missing documentation commentary * maxwell_dma: Remove unused rasterizer reference * video_core/gpu: Sort member declaration order to silent -Wreorder warning * fermi_2d: Remove unused MemoryManager reference * video_core: Silent unused variable warnings * buffer_cache: Silent -Wreorder warnings * kepler_memory: Remove unused MemoryManager reference * gl_texture_cache: Add missing override * buffer_cache: Add missing include * shader/decode: Remove unused variables | ||||
* | Video_Core: Implement a new Buffer Cache | Fernando Sahmkow | 2019-08-21 | 1 | -1/+1 |
| | |||||
* | GPU: Flush commands on every dma pusher step. | Fernando Sahmkow | 2019-07-26 | 1 | -0/+4 |
| | | | | | | 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 #2704 from FernandoS27/conditional | bunnei | 2019-07-24 | 1 | -1/+12 |
|\ | | | | | maxwell3d: Implement Conditional Rendering | ||||
| * | maxwell3d: Implement Conditional Rendering | Fernando Sahmkow | 2019-07-17 | 1 | -1/+12 |
| | | | | | | | | | | | | Conditional Rendering takes care of conditionaly clearing or drawing depending on a set of queries. This PR implements the query checks to stablish if things can be rendered or not. | ||||
* | | Merge pull request #2734 from ReinUsesLisp/compute-shaders | bunnei | 2019-07-22 | 1 | -15/+84 |
|\ \ | | | | | | | gl_rasterizer: Implement compute shaders | ||||
| * | | gl_shader_cache: Address review commentaries | ReinUsesLisp | 2019-07-15 | 1 | -0/+2 |
| | | | |||||
| * | | gl_rasterizer: Implement compute shaders | ReinUsesLisp | 2019-07-15 | 1 | -15/+82 |
| |/ | |||||
* | | Maxwell3D: Reorganize and address feedback | Fernando Sahmkow | 2019-07-20 | 1 | -18/+27 |
| | | |||||
* | | GL_State: Feedback and fixes | Fernando Sahmkow | 2019-07-17 | 1 | -5/+5 |
| | | |||||
* | | Maxwell3D: Address Feedback | Fernando Sahmkow | 2019-07-17 | 1 | -1/+1 |
| | | |||||
* | | GL_Rasterizer: Corrections to Clearing. | Fernando Sahmkow | 2019-07-17 | 1 | -6/+6 |
| | | |||||
* | | GL_Rasterizer: Rework RenderTarget/DepthBuffer clearing | Fernando Sahmkow | 2019-07-17 | 1 | -6/+58 |
| | | |||||
* | | Maxwell3D: Implement State Dirty Flags. | Fernando Sahmkow | 2019-07-17 | 1 | -31/+55 |
| | | |||||
* | | Maxwell3D: Rework the dirty system to be more consistant and scaleable | Fernando Sahmkow | 2019-07-17 | 1 | -12/+41 |
|/ | |||||
* | gl_rasterizer: Fix nullptr dereference on disabled buffers | ReinUsesLisp | 2019-07-06 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Minor style changes | ReinUsesLisp | 2019-07-06 | 1 | -26/+20 |
| | |||||
* | gl_rasterizer: Fix vertex and index data invalidations | ReinUsesLisp | 2019-07-06 | 1 | -7/+7 |
| | |||||
* | gl_buffer_cache: Implement with generic buffer cache | ReinUsesLisp | 2019-07-06 | 1 | -15/+25 |
| | |||||
* | gl_buffer_cache: Remove global system getters | ReinUsesLisp | 2019-07-06 | 1 | -3/+2 |
| | |||||
* | gl_rasterizer: Drop gl_global_cache in favor of gl_buffer_cache | ReinUsesLisp | 2019-07-06 | 1 | -10/+17 |
| | |||||
* | gl_buffer_cache: Rework to support internalized buffers | ReinUsesLisp | 2019-07-06 | 1 | -1/+1 |
| | |||||
* | gl_buffer_cache: Return used buffer from Upload function | ReinUsesLisp | 2019-07-06 | 1 | -15/+15 |
| | |||||
* | gl_rasterizer: Add some commentaries | ReinUsesLisp | 2019-07-06 | 1 | -0/+5 |
| | |||||
* | gl_rasterizer: Make DrawParameters rasterizer instance const | ReinUsesLisp | 2019-07-06 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Move index buffer uploading to its own method | ReinUsesLisp | 2019-07-06 | 1 | -6/+15 |
| | |||||
* | texture_cache: Query MemoryManager from the system | Fernando Sahmkow | 2019-06-25 | 1 | -4/+0 |
| | |||||
* | texture_cache: Implement texception detection and texture barriers. | Fernando Sahmkow | 2019-06-21 | 1 | -2/+8 |
| | |||||
* | texture_cache: Implement Buffer Copy and detect Turing GPUs Image Copies | Fernando Sahmkow | 2019-06-21 | 1 | -1/+1 |
| | |||||
* | Fix rebase errors | Fernando Sahmkow | 2019-06-21 | 1 | -2/+8 |
| | |||||
* | texture_cache: Fermi2D reform and implement View Mirage | Fernando Sahmkow | 2019-06-21 | 1 | -3/+2 |
| | | | | | 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 | -13/+21 |
| | |||||
* | video_core: Make ARB_buffer_storage a required extension | ReinUsesLisp | 2019-06-21 | 1 | -5/+0 |
| | |||||
* | texture_cache: Implement Guard mechanism | Fernando Sahmkow | 2019-06-21 | 1 | -0/+4 |
| | |||||
* | gl_framebuffer_cache: Use a hashed struct to cache framebuffers | ReinUsesLisp | 2019-06-21 | 1 | -57/+2 |
| | |||||
* | texture_cache return invalid buffer on deactivated color_mask | Fernando Sahmkow | 2019-06-21 | 1 | -2/+4 |
| | |||||
* | Remove Framebuffer reconfiguration and restrict rendertarget protection | Fernando Sahmkow | 2019-06-21 | 1 | -10/+6 |
| | |||||
* | texture_cache: Correct premature texceptions | Fernando Sahmkow | 2019-06-21 | 1 | -5/+10 |
| | | | | | | | | | | | | 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 guest flushing | Fernando Sahmkow | 2019-06-21 | 1 | -2/+4 |
| | |||||
* | Texture Cache: Implement Blitting and Fermi Copies | Fernando Sahmkow | 2019-06-21 | 1 | -3/+1 |
| | |||||
* | Change texture_cache chaching from GPUAddr to CacheAddr | Fernando Sahmkow | 2019-06-21 | 1 | -16/+0 |
| | | | | | This also reverses the changes to make invalidation and flushing through the GPU address. | ||||
* | Implement Texture Cache V2 | Fernando Sahmkow | 2019-06-21 | 1 | -22/+47 |
| | |||||
* | gl_texture_cache: Implement fermi copies | ReinUsesLisp | 2019-06-21 | 1 | -2/+3 |
| | |||||
* | gl_texture_cache: Minor changes | ReinUsesLisp | 2019-06-21 | 1 | -4/+4 |
| | |||||
* | gl_texture_cache: Attach surface textures instead of views | ReinUsesLisp | 2019-06-21 | 1 | -13/+9 |
| | |||||
* | gl_texture_cache: Initial implementation | ReinUsesLisp | 2019-06-21 | 1 | -33/+33 |
| | |||||
* | gl_rasterizer: Remove unused parameters in descriptor uploads | ReinUsesLisp | 2019-06-08 | 1 | -5/+4 |
| | |||||
* | video_core/engines: Move ConstBufferInfo out of Maxwell3D | ReinUsesLisp | 2019-06-08 | 1 | -37/+36 |
| | |||||
* | gl_rasterizer: Move alpha testing to the OpenGL pipeline | ReinUsesLisp | 2019-05-30 | 1 | -5/+9 |
| | | | | Removes the alpha testing code from each fragment shader invocation. | ||||
* | gl_rasterizer: Use GL_QUADS to emulate quads rendering | ReinUsesLisp | 2019-05-30 | 1 | -34/+3 |
| | |||||
* | gl_shader_cache: Use shared contexts to build shaders in parallel | ReinUsesLisp | 2019-05-21 | 1 | -3/+5 |
| | |||||
* | Merge pull request #2480 from ReinUsesLisp/fix-quads | Hexagon12 | 2019-05-19 | 1 | -2/+2 |
|\ | | | | | gl_rasterizer: Pass the right number of array quad vertices count | ||||
| * | gl_rasterizer: Pass the right number of array quad vertices count | ReinUsesLisp | 2019-05-17 | 1 | -2/+2 |
| | | |||||
* | | gl_rasterizer: Limit OpenGL point size to a minimum of 1 | ReinUsesLisp | 2019-05-18 | 1 | -1/+3 |
|/ | |||||
* | gl_rasterizer: Silence unused variable warning | Lioncash | 2019-05-04 | 1 | -2/+2 |
| | | | | Makes use of src, so it's not considered unused. | ||||
* | Merge pull request #2322 from ReinUsesLisp/wswitch | bunnei | 2019-04-29 | 1 | -0/+2 |
|\ | | | | | video_core: Silent -Wswitch warnings | ||||
| * | video_core: Silent -Wswitch warnings | ReinUsesLisp | 2019-04-18 | 1 | -0/+2 |
| | | |||||
* | | Merge pull request #2383 from ReinUsesLisp/aoffi-test | bunnei | 2019-04-23 | 1 | -13/+12 |
|\ \ | | | | | | | 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 | -12/+13 |
| |/ | |||||
* | | Merge pull request #2318 from ReinUsesLisp/sampler-cache | bunnei | 2019-04-18 | 1 | -93/+1 |
|\ \ | | | | | | | gl_sampler_cache: Port sampler cache to OpenGL | ||||
| * | | gl_sampler_cache: Port sampler cache to OpenGL | ReinUsesLisp | 2019-04-02 | 1 | -93/+1 |
| | | | |||||
* | | | Merge pull request #2348 from FernandoS27/guest-bindless | bunnei | 2019-04-18 | 1 | -1/+9 |
|\ \ \ | | | | | | | | | Implement Bindless Textures on Shader Decompiler and GL backend | ||||
| * | | | Move ConstBufferAccessor to Maxwell3d, correct mistakes and clang format. | Fernando Sahmkow | 2019-04-08 | 1 | -6/+4 |
| | | | | |||||
| * | | | Fix bad rebase | Fernando Sahmkow | 2019-04-08 | 1 | -2/+1 |
| | | | | |||||
| * | | | Simplify ConstBufferAccessor | Fernando Sahmkow | 2019-04-08 | 1 | -2/+4 |
| | | | | |||||
| * | | | Fixes to Const Buffer Accessor and Formatting | Fernando Sahmkow | 2019-04-08 | 1 | -2/+1 |
| | | | | |||||
| * | | | Implement Bindless Handling on SetupTexture | Fernando Sahmkow | 2019-04-08 | 1 | -1/+9 |
| | | | | |||||
| * | | | Implement Const Buffer Accessor | Fernando Sahmkow | 2019-04-08 | 1 | -2/+4 |
| | | | | |||||
* | | | | Merge pull request #2384 from ReinUsesLisp/gl-state-clear | bunnei | 2019-04-17 | 1 | -4/+4 |
|\ \ \ \ | | | | | | | | | | | gl_rasterizer: Apply just the needed state on Clear | ||||
| * | | | | gl_rasterizer: Apply just the needed state on Clear | ReinUsesLisp | 2019-04-10 | 1 | -4/+4 |
| | |_|/ | |/| | | |||||
* / | | | shader_ir: Implement STG, keep track of global memory usage and flush | ReinUsesLisp | 2019-04-14 | 1 | -0/+4 |
|/ / / | |||||
* | | | gl_rasterizer: Use ARB_multi_bind to update SSBOs | ReinUsesLisp | 2019-04-06 | 1 | -9/+8 |
| | | | |||||
* | | | gl_rasterizer: Use ARB_multi_bind to update UBOs across stages | ReinUsesLisp | 2019-04-06 | 1 | -22/+10 |
|/ / | |||||
* | | video_core/renderer_opengl: Remove unnecessary includes | Lioncash | 2019-04-04 | 1 | -2/+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. | ||||
* | | Merge pull request #2299 from lioncash/maxwell | bunnei | 2019-04-04 | 1 | -1/+1 |
|\ \ | |/ |/| | gl_shader_manager: Remove reliance on a global accessor within MaxwellUniformData::SetFromRegs() | ||||
| * | gl_shader_manager: Remove reliance on global accessor within MaxwellUniformData::SetFromRegs() | Lioncash | 2019-03-28 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | We can just pass in the Maxwell3D instance instead of going through the system class to get at it. This also lets us simplify the interface a little bit. Since we pass in the Maxwell3D context now, we only really need to pass the shader stage index value in. | ||||
* | | gl_rasterizer: Remove unused reference member variable from RasterizerOpenGL | Lioncash | 2019-03-27 | 1 | -5/+3 |
|/ | | | | | This member variable is no longer being used, so it can be removed, removing a dependency on EmuWindow from the rasterizer's interface" | ||||
* | gpu: Move GPUVAddr definition to common_types. | bunnei | 2019-03-21 | 1 | -4/+4 |
| | |||||
* | gl_rasterizer: Skip zero addr/sized regions on flush/invalidate. | bunnei | 2019-03-17 | 1 | -0/+6 |
| | |||||
* | gpu: Use host address for caching instead of guest address. | bunnei | 2019-03-15 | 1 | -5/+5 |
| | |||||
* | Merge pull request #2216 from ReinUsesLisp/rasterizer-system | bunnei | 2019-03-14 | 1 | -29/+30 |
|\ | | | | | gl_rasterizer: Use system instance passed from argument | ||||
| * | gl_rasterizer: Use system instance passed from argument | ReinUsesLisp | 2019-03-11 | 1 | -29/+30 |
| | | |||||
* | | Merge pull request #2215 from ReinUsesLisp/samplers | bunnei | 2019-03-12 | 1 | -57/+40 |
|\ \ | |/ |/| | gl_rasterizer: Encapsulate sampler queries into methods | ||||
| * | gl_rasterizer: Encapsulate sampler queries into methods | ReinUsesLisp | 2019-03-09 | 1 | -57/+40 |
| | | |||||
* | | Merge pull request #2143 from ReinUsesLisp/texview | bunnei | 2019-03-10 | 1 | -3/+2 |
|\ \ | | | | | | | gl_rasterizer_cache: Create texture views for array discrepancies | ||||
| * | | gl_rasterizer_cache: Create texture views for array discrepancies | ReinUsesLisp | 2019-02-27 | 1 | -3/+2 |
| | | | | | | | | | | | | | | | | | | When a texture is sampled in a shader with a different array mode than the cached state, create a texture view and bind that to the shader instead. | ||||
* | | | gl_rasterizer: Minor logger changes | ReinUsesLisp | 2019-03-09 | 1 | -19/+13 |
| |/ |/| | |||||
* | | gpu: Always flush. | bunnei | 2019-03-07 | 1 | -5/+1 |
| | | |||||
* | | gl_rasterizer: Remove texture unbinding after dispatching a draw call | ReinUsesLisp | 2019-02-28 | 1 | -12/+0 |
| | | | | | | | | | | Unbinding was required when OpenGL delete operations didn't unbind a resource if it was bound. This is no longer needed and can be removed. | ||||
* | | Merge pull request #2121 from FernandoS27/texception2 | bunnei | 2019-02-28 | 1 | -0/+4 |
|\ \ | | | | | | | Improve the Accuracy of the Rasterizer Cache through a Texception Pass | ||||
| * | | Remove certain optimizations that caused texception to fail in certain scenarios. | Fernando Sahmkow | 2019-02-28 | 1 | -3/+0 |
| | | | |||||
| * | | rasterizer_cache_gl: Implement Texception Pass | Fernando Sahmkow | 2019-02-28 | 1 | -0/+7 |
| | | | |||||
* | | | Merge pull request #2172 from lioncash/reorder | bunnei | 2019-02-28 | 1 | -2/+2 |
|\ \ \ | |/ / |/| | | gl_rasterizer/vk_memory_manager: Silence -Wreorder warnings | ||||
| * | | gl_rasterizer: Reorder constructor initializer list in terms of member declaration order | Lioncash | 2019-02-27 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | Orders the members in the order they would actually be initialized in. Silences a -Wreorder warning. | ||||
* | | | Merge pull request #2163 from ReinUsesLisp/bitset-dirty | bunnei | 2019-02-28 | 1 | -9/+9 |
|\ \ \ | |_|/ |/| | | maxwell_3d: Use std::bitset to manage dirty flags | ||||
| * | | maxwell_3d: Use std::bitset to manage dirty flags | ReinUsesLisp | 2019-02-26 | 1 | -9/+9 |
| |/ | |||||
* / | common/math_util: Move contents into the Common namespace | Lioncash | 2019-02-27 | 1 | -3/+3 |
|/ | | | | | 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 | -8/+4 |
| | | | | - This is a blit, use the blit registers. | ||||
* | gl_shader_cache: Link loading screen with disk shader cache load | ReinUsesLisp | 2019-02-07 | 1 | -3/+4 |
| | |||||
* | gl_shader_disk_cache: Pass core system as argument and guard against games without title ids | ReinUsesLisp | 2019-02-07 | 1 | -2/+3 |
| | |||||
* | gl_shader_disk_cache: Save GLSL and entries into the precompiled file | ReinUsesLisp | 2019-02-07 | 1 | -5/+3 |
| | |||||
* | rasterizer_interface: Add disk cache entry for the rasterizer | ReinUsesLisp | 2019-02-07 | 1 | -0/+5 |
| | |||||
* | Merge pull request #2042 from ReinUsesLisp/nouveau-tex | bunnei | 2019-02-07 | 1 | -4/+0 |
|\ | | | | | maxwell_3d: Allow texture handles with TIC id zero | ||||
| * | maxwell_3d: Allow texture handles with TIC id zero | ReinUsesLisp | 2019-02-03 | 1 | -4/+0 |
| | | | | | | | | | | Also remove "enabled" field from Tegra::Texture::FullTextureInfo because it would become unused. | ||||
* | | Merge pull request #2071 from ReinUsesLisp/dsa-texture | bunnei | 2019-02-07 | 1 | -5/+2 |
|\ \ | |/ |/| | gl_rasterizer: Use DSA for textures and move swizzling to texture state | ||||
| * | gl_state: Remove texture target tracking | ReinUsesLisp | 2019-01-30 | 1 | -3/+0 |
| | | |||||
| * | gl_rasterizer_cache: Move swizzling to textures instead of state | ReinUsesLisp | 2019-01-30 | 1 | -5/+5 |
| | | |||||
* | | Merge pull request #2074 from ReinUsesLisp/shader-ir-unify-offset | bunnei | 2019-02-01 | 1 | -1/+1 |
|\ \ | | | | | | | shader_ir: Unify constant buffer offset values | ||||
| * | | shader_ir: Unify constant buffer offset values | ReinUsesLisp | 2019-01-30 | 1 | -1/+1 |
| |/ | | | | | | | | | | | | | Constant buffer values on the shader IR were using different offsets if the access direct or indirect. cbuf34 has a non-multiplied offset while cbuf36 does. On shader decoding this commit multiplies it by four on cbuf34 queries. | ||||
* | | Merge pull request #2067 from ReinUsesLisp/workaround-fb | bunnei | 2019-02-01 | 1 | -11/+13 |
|\ \ | | | | | | | gl_rasterizer: Workaround invalid zeta clears | ||||
| * | | gl_rasterizer: Workaround invalid zeta clears | ReinUsesLisp | 2019-01-30 | 1 | -11/+13 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 | -5/+0 |
| |/ |/| | |||||
* | | gl_shader_cache: Use explicit bindings | ReinUsesLisp | 2019-01-30 | 1 | -81/+49 |
| | | |||||
* | | gl_rasterizer: Implement global memory management | ReinUsesLisp | 2019-01-30 | 1 | -0/+22 |
|/ | |||||
* | Merge pull request #1927 from ReinUsesLisp/shader-ir | bunnei | 2019-01-26 | 1 | -2/+2 |
|\ | | | | | video_core: Replace gl_shader_decompiler with an IR based decompiler | ||||
| * | video_core: Replace gl_shader_decompiler | ReinUsesLisp | 2019-01-15 | 1 | -2/+2 |
| | | |||||
* | | frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl. | bunnei | 2019-01-24 | 1 | -4/+0 |
| | | |||||
* | | maxwell_3d: Set rt_separate_frag_data to 1 by default | ReinUsesLisp | 2019-01-22 | 1 | -4/+1 |
| | | | | | | | | | | | | | | Commercial games assume that this value is 1 but they never set it. On the other hand nouveau manually sets this register. On ConfigureFramebuffers we were asserting for what we are actually implementing (according to envytools). | ||||
* | | Merge pull request #2008 from ReinUsesLisp/dirty-framebuffers | bunnei | 2019-01-20 | 1 | -1/+13 |
|\ \ | | | | | | | gl_rasterizer_cache: Use dirty flags for framebuffers | ||||
| * | | gl_rasterizer: Skip framebuffer configuration if rendertargets have not been changed | ReinUsesLisp | 2019-01-07 | 1 | -1/+13 |
| | | | |||||
* | | | Merge pull request #2002 from ReinUsesLisp/dsa-vao-buffer | bunnei | 2019-01-20 | 1 | -34/+34 |
|\ \ \ | | | | | | | | | gl_rasterizer: Use DSA for VAOs and buffers | ||||
| * | | | gl_rasterizer: Workaround Intel VAO DSA bug | ReinUsesLisp | 2019-01-09 | 1 | -0/+6 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a bug on Intel's blob driver where it fails to properly build a vertex array object if it's not bound even after creating it with glCreateVertexArrays. This workaround binds it after creating it to bypass the issue. | ||||
| * | | | gl_rasterizer: Use DSA for vertex array objects | ReinUsesLisp | 2019-01-06 | 1 | -34/+28 |
| | | | | |||||
* | | | | gl_rasterizer: Silent unsafe mix warning | ReinUsesLisp | 2019-01-18 | 1 | -1/+1 |
| |_|/ |/| | | |||||
* | | | gl_global_cache: Add dummy global cache manager | ReinUsesLisp | 2019-01-08 | 1 | -1/+2 |
| |/ |/| | |||||
* | | gl_shader_cache: Use dirty flags for shaders | ReinUsesLisp | 2019-01-07 | 1 | -1/+3 |
|/ | |||||
* | gl_rasterizer_cache: Texture view if shader samples array but OGL is not | ReinUsesLisp | 2018-12-30 | 1 | -2/+5 |
| | | | | | | | When a shader samples a texture array but that texture in OpenGL is created without layers, use a texture view to increase the texture hierarchy. For example, instead of binding a GL_TEXTURE_2D bind a GL_TEXTURE_2D_ARRAY view. | ||||
* | Merge pull request #1824 from ReinUsesLisp/fbcache | bunnei | 2018-12-06 | 1 | -39/+77 |
|\ | | | | | gl_rasterizer: Implement a framebuffer cache | ||||
| * | gl_rasterizer: Implement a framebuffer cache | ReinUsesLisp | 2018-11-29 | 1 | -39/+77 |
| | | |||||
* | | Merge pull request #1827 from ReinUsesLisp/clip-and-shader | bunnei | 2018-12-02 | 1 | -11/+24 |
|\ \ | | | | | | | 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 | -11/+24 |
| |/ | |||||
* | | gl_rasterizer: Signal UNIMPLEMENTED when rt_separate_frag_data is not zero | ReinUsesLisp | 2018-11-29 | 1 | -1/+1 |
| | | |||||
* | | gl_rasterizer: Remove extension booleans | ReinUsesLisp | 2018-11-29 | 1 | -13/+0 |
|/ | |||||
* | Merge pull request #1808 from Tinob/master | bunnei | 2018-11-28 | 1 | -13/+15 |
|\ | | | | | Fix clip distance and viewport | ||||
| * | remove viewport_transform_enabled as it seems to be inactive when valid transforms are used. | Rodolfo Bogado | 2018-11-27 | 1 | -12/+5 |
| | | |||||
| * | Add support for Clip Distance enabled register | Rodolfo Bogado | 2018-11-27 | 1 | -1/+10 |
| | | |||||
* | | Merge pull request #1786 from Tinob/DepthClamp | bunnei | 2018-11-28 | 1 | -0/+16 |
|\ \ | | | | | | | Add Depth Clamp Support | ||||
| * | | Implement depth clamp | Rodolfo Bogado | 2018-11-27 | 1 | -0/+16 |
| |/ | |||||
* / | gl_rasterizer: Fixup for #1723. | Markus Wick | 2018-11-27 | 1 | -1/+1 |
|/ | | | | | | | | | | | On invalidating the streaming buffer, we need to reupload all vertex buffers. But we don't need to reconfigure the vertex format. This was a (silly) misstake in #1723. Thanks at Rodrigo for discovering the issue. Fun fact, as configuring the vertex format also invalidate the vertex buffer, this misstake had no affect on the behavior. | ||||
* | Merge pull request #1794 from Tinob/master | bunnei | 2018-11-27 | 1 | -7/+23 |
|\ | | | | | Add support for viewport_transfom_enable register | ||||
| * | Limit the amount of viewports tested for state changes only to the usable ones | Rodolfo Bogado | 2018-11-25 | 1 | -2/+10 |
| | | |||||
| * | Add support for viewport_transfom_enable register | Rodolfo Bogado | 2018-11-24 | 1 | -5/+13 |
| | | |||||
* | | Merge pull request #1723 from degasus/dirty_flags | bunnei | 2018-11-27 | 1 | -4/+20 |
|\ \ | | | | | | | gl_rasterizer: Skip VB upload if the state is clean. | ||||
| * | | gl_rasterizer: Skip VB upload if the state is clean. | Markus Wick | 2018-11-17 | 1 | -4/+20 |
| | | | |||||
* | | | GPU States: Implement Polygon Offset. This is used in SMO all the time. (#1784) | Marcos | 2018-11-27 | 1 | -1/+11 |
| |/ |/| | | | | | | | | | | | | | * 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 | -5/+0 |
|\ \ | | | | | | | Update OpenGL's backend version from 3.3 to 4.3 | ||||
| * | | Removed pre 4.3 ARB extensions | FernandoS27 | 2018-11-21 | 1 | -5/+0 |
| | | | |||||
* | | | Add support for clear_flags register | Rodolfo Bogado | 2018-11-24 | 1 | -6/+38 |
|/ / | |||||
* | | Merge pull request #1693 from Tinob/master | bunnei | 2018-11-19 | 1 | -65/+94 |
|\ \ | | | | | | | Missing ogl states | ||||
| * | | drop support for non separate alpha as it seems to cause issues in some games | Rodolfo Bogado | 2018-11-18 | 1 | -18/+16 |
| | | | |||||
| * | | fix sampler configuration, thanks to Marcos for his investigation | Rodolfo Bogado | 2018-11-17 | 1 | -17/+38 |
| | | | |||||
| * | | small type fix | Rodolfo Bogado | 2018-11-17 | 1 | -6/+6 |
| | | | |||||
| * | | add AlphaToCoverage and AlphaToOne | Rodolfo Bogado | 2018-11-17 | 1 | -0/+7 |
| | | | |||||
| * | | add support for fragment_color_clamp | Rodolfo Bogado | 2018-11-17 | 1 | -0/+6 |
| | | | |||||
| * | | set border color not depending on the wrap mode | Rodolfo Bogado | 2018-11-17 | 1 | -9/+9 |
| | | | | | | | | | | | | only enable color mask for the first framebuffer id independent blending is disabled | ||||
| * | | set default value for point size register | Rodolfo Bogado | 2018-11-17 | 1 | -5/+1 |
| | | | |||||
| * | | fix viewport and scissor behavior | Rodolfo Bogado | 2018-11-17 | 1 | -16/+17 |
| |/ | |||||
* / | gl_rasterizer: Remove default clip distance | ReinUsesLisp | 2018-11-19 | 1 | -2/+0 |
|/ | |||||
* | Merge pull request #1660 from Tinob/master | bunnei | 2018-11-12 | 1 | -45/+59 |
|\ | | | | | Map more missing opengl states | ||||
| * | Use core extensions when available to set max anisotropic filtering level | Rodolfo Bogado | 2018-11-11 | 1 | -2/+7 |
| | | |||||
| * | Improve state management by splitting some of the states id separated function to avoid a full apply overhead | Rodolfo Bogado | 2018-11-11 | 1 | -31/+23 |
| | | |||||
| * | Try to fix problems with stencil test in some games, relax translation to opengl enums to avoid crashing and only generate logs of the errors. | Rodolfo Bogado | 2018-11-11 | 1 | -4/+10 |
| | | |||||
| * | set sampler max lod, min lod, lod bias and max anisotropy | Rodolfo Bogado | 2018-11-11 | 1 | -10/+21 |
| | | |||||
* | | Merge pull request #1664 from FreddyFunk/cast2 | bunnei | 2018-11-11 | 1 | -2/+2 |
|\ \ | |/ |/| | gl_rasterizer: Fix compiler warnings | ||||
| * | gl_rasterizer: Fix compiler warnings | Frederic Laing | 2018-11-08 | 1 | -2/+2 |
| | | |||||
* | | Merge pull request #1663 from lioncash/raster | bunnei | 2018-11-11 | 1 | -1/+2 |
|\ \ | | | | | | | rasterizer_cache: Remove reliance on the System singleton | ||||
| * | | rasterizer_cache: Remove reliance on the System singleton | Lioncash | 2018-11-08 | 1 | -1/+2 |
| |/ | | | | | | | | | | | Rather than have a transparent dependency, we can make it explicit in the interface. This also gets rid of the need to put the core include in a header. | ||||
* | | Merge pull request #1654 from degasus/dirty_flags | bunnei | 2018-11-11 | 1 | -6/+21 |
|\ \ | |/ |/| | gl_rasterizer: Skip VAO binding if the state is clean. | ||||
| * | gl_rasterizer: Skip VAO binding if the state is clean. | Markus Wick | 2018-11-06 | 1 | -2/+7 |
| | | |||||
| * | gl_rasterizer: Split VAO and VB setup functions. | Markus Wick | 2018-11-06 | 1 | -4/+14 |
| | | |||||
* | | 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 | -5/+18 |
| | | |||||
* | | Implement multi-target viewports and blending | Rodolfo Bogado | 2018-11-05 | 1 | -39/+56 |
|/ | |||||
* | Merge pull request #1623 from Tinob/master | bunnei | 2018-11-01 | 1 | -3/+1 |
|\ | | | | | Improve OpenGL state handling | ||||
| * | Improve OpenGL state handling | Rodolfo Bogado | 2018-10-31 | 1 | -3/+1 |
| | | |||||
* | | video_core: Move surface declarations out of gl_rasterizer_cache | ReinUsesLisp | 2018-10-30 | 1 | -3/+4 |
|/ | |||||
* | global: Use std::optional instead of boost::optional (#1578) | Frederic L | 2018-10-30 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | * 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 | -3/+7 |
| | |||||
* | Implement sRGB Support, including workarounds for nvidia driver issues and QT sRGB support | Rodolfo Bogado | 2018-10-28 | 1 | -1/+12 |
| | |||||
* | gl_rasterizer: Implement primitive restart. | bunnei | 2018-10-26 | 1 | -0/+8 |
| | |||||
* | gl_rasterizer: Implement depth range. | bunnei | 2018-10-26 | 1 | -5/+5 |
| | |||||
* | Assert that multiple render targets are not set while alpha testing | FernandoS27 | 2018-10-22 | 1 | -0/+12 |
| | |||||
* | Use standard UBO and fix/stylize the code | FernandoS27 | 2018-10-22 | 1 | -15/+0 |
| | |||||
* | Cache uniform locations and restructure the implementation | FernandoS27 | 2018-10-22 | 1 | -22/+4 |
| | |||||
* | Remove SyncAlphaTest and clang format | FernandoS27 | 2018-10-22 | 1 | -2/+5 |
| | |||||
* | Added Alpha Func | FernandoS27 | 2018-10-22 | 1 | -1/+9 |
| | |||||
* | Implemented Alpha Testing | FernandoS27 | 2018-10-22 | 1 | -0/+11 |
| | |||||
* | fermi_2d: Add support for more accurate surface copies. | bunnei | 2018-10-19 | 1 | -0/+6 |
| | |||||
* | config: Rename use_accurate_framebuffers -> use_accurate_gpu_emulation. | bunnei | 2018-10-16 | 1 | -2/+2 |
| | | | | - This will be used as a catch-all for slow-but-accurate GPU emulation paths. | ||||
* | rasterizer_cache: Refactor to support in-order flushing. | bunnei | 2018-10-16 | 1 | -6/+3 |
| | |||||
* | gl_rasterizer_cache: Only flush when use_accurate_framebuffers is enabled. | bunnei | 2018-10-16 | 1 | -1/+6 |
| | |||||
* | gl_rasterizer: Implement flushing. | bunnei | 2018-10-16 | 1 | -1/+25 |
| | |||||
* | gl_rasterizer: Silence implicit cast warning in glBindBufferRange | ReinUsesLisp | 2018-10-15 | 1 | -1/+2 |
| | |||||
* | Merge pull request #1460 from FernandoS27/scissor_test | bunnei | 2018-10-10 | 1 | -0/+17 |
|\ | | | | | Implemented Scissor Testing | ||||
| * | Implement Scissor Test | FernandoS27 | 2018-10-09 | 1 | -4/+9 |
| | | |||||
| * | Assert Scissor tests | FernandoS27 | 2018-10-09 | 1 | -0/+12 |
| | | |||||
* | | gl_shader_decompiler: Implement geometry shaders | ReinUsesLisp | 2018-10-07 | 1 | -14/+26 |
|/ | |||||
* | Merge pull request #1446 from bunnei/fast_fermi_copy | bunnei | 2018-10-07 | 1 | -7/+3 |
|\ | | | | | gl_rasterizer: Implement accelerated Fermi2D copies. | ||||
| * | gl_rasterizer: Add rasterizer cache code to handle accerated fermi copies. | bunnei | 2018-10-06 | 1 | -7/+3 |
| | | |||||
* | | Merge pull request #1437 from FernandoS27/tex-mode2 | bunnei | 2018-10-07 | 1 | -0/+18 |
|\ \ | | | | | | | 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/+18 |
| | | | |||||
* | | | gl_rasterizer: Fixup undefined behaviour in SetupDraw | ReinUsesLisp | 2018-10-07 | 1 | -0/+1 |
| |/ |/| | |||||
* | | gl_rasterizer: Implement quads topology | ReinUsesLisp | 2018-10-04 | 1 | -43/+103 |
|/ | |||||
* | gl_rasterizer: Fixup unassigned point sizes | ReinUsesLisp | 2018-10-01 | 1 | -1/+4 |
| | |||||
* | gl_rasterizer_cache: Workaround for Texture2D -> Texture2DArray scenario. | bunnei | 2018-09-30 | 1 | -1/+1 |
| | |||||
* | video_core: Implement point_size and add point state sync | ReinUsesLisp | 2018-09-28 | 1 | -0/+7 |
| | |||||
* | video_core: Add asserts for CS, TFB and alpha testing | ReinUsesLisp | 2018-09-26 | 1 | -0/+22 |
| | | | | | | 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. | ||||
* | RasterizerGL: Use the correct framebuffer when clearing via the CLEAR_BUFFERS register. | Subv | 2018-09-21 | 1 | -1/+1 |
| | | | | | | Previously we were clearing the default backbuffer framebuffer. Found thanks to a Piglit test :) | ||||
* | gl_rasterizer: Fix StartAddress handling with indexed draw calls. | Markus Wick | 2018-09-19 | 1 | -6/+7 |
| | | | | | We uploaded the wrong data before. So the offset on the host GPU pointer may work for the first vertices, the last ones run out bounds. Let's just offset the upload instead. | ||||
* | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 2018-09-15 | 1 | -15/+15 |
| | |||||
* | Use ARB_multi_bind for uniform buffers (#1287) | ReinUsesLisp | 2018-09-13 | 1 | -3/+22 |
| | | | | | | * gl_rasterizer: use ARB_multi_bind for uniform buffers * address feedback | ||||
* | Merge pull request #1286 from bunnei/multi-clear | bunnei | 2018-09-11 | 1 | -48/+55 |
|\ | | | | | gl_rasterizer: Implement clear for non-zero render targets. | ||||
| * | gl_rasterizer: Implement clear for non-zero render targets. | bunnei | 2018-09-10 | 1 | -48/+55 |
| | | | | | | | | - Several misc. changes to ConfigureFramebuffers in support of this. | ||||
* | | rasterizer: Drop unused handler. | Markus Wick | 2018-09-10 | 1 | -2/+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 | -69/+45 |
| | |||||
* | Merge pull request #1256 from bunnei/tex-target-support | bunnei | 2018-09-08 | 1 | -5/+11 |
|\ | | | | | Initial support for non-2D textures | ||||
| * | gl_rasterizer: Implement texture wrap mode p. | bunnei | 2018-09-08 | 1 | -2/+7 |
| | | |||||
| * | gl_rasterizer_cache: Keep track of texture type per surface. | bunnei | 2018-09-08 | 1 | -0/+1 |
| | | |||||
| * | gl_state: Keep track of texture target. | bunnei | 2018-09-08 | 1 | -3/+3 |
| | | |||||
* | | gl_rasterizer: Use baseInstance instead of moving the buffer points. | bunnei | 2018-09-08 | 1 | -21/+25 |
| | | | | | | | | | | | | | | This hopefully helps our cache not to redundant upload the vertex buffer. # Conflicts: # src/video_core/renderer_opengl/gl_rasterizer.cpp | ||||
* | | video_core: Arithmetic overflow warning fix for gl_rasterizer (#1262) | Patrick Elsässer | 2018-09-08 | 1 | -12/+14 |
|/ | | | | | | | | | | | | | | | * video_core: Arithmetic overflow fix for gl_rasterizer - Fixed warnings, which were indicating incorrect behavior from integral promotion rules and types larger than those in which arithmetic is typically performed. - Added const for variables where possible and meaningful. * Changed the casts from C to C++ style Changed the C-style casts to C++ casts as proposed. Took also care about signed / unsigned behaviour. | ||||
* | gl_rasterizer: Call state.Apply only once on SetupShaders. | bunnei | 2018-09-06 | 1 | -4/+2 |
| | |||||
* | gl_rasterizer: Implement a VAO cache. | Markus Wick | 2018-09-05 | 1 | -48/+48 |
| | | | | | | 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 | -74/+27 |
| | | | | | | | | | 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_shader_cache: Use an u32 for the binding point cache. | Markus Wick | 2018-09-04 | 1 | -2/+2 |
| | | | | | | | The std::string generation with its malloc and free requirement was a noticeable overhead. Also switch to an ordered_map to avoid the std::hash call. As those maps usually have a size of two elements, the lookup time shall not matter. | ||||
* | Update microprofile scopes. | Markus Wick | 2018-09-04 | 1 | -3/+11 |
| | | | | | | Blame the subsystems which deserve the blame :) The updated list is not complete, just the ones I've spotted on random sampling the stack trace. | ||||
* | gl_rasterizer_cache: Use accurate framebuffer setting for accurate copies. | bunnei | 2018-08-31 | 1 | -20/+0 |
| | |||||
* | gl_renderer: Cache textures, framebuffers, and shaders based on CPU address. | bunnei | 2018-08-31 | 1 | -11/+8 |
| | |||||
* | gl_rasterizer: Fix issues with the rasterizer cache. | bunnei | 2018-08-31 | 1 | -0/+38 |
| | | | | | - Use a single cached page map. - Fix calculation of ending page. | ||||
* | Merge pull request #1193 from lioncash/priv | bunnei | 2018-08-28 | 1 | -2/+2 |
|\ | | | | | gpu: Make memory_manager private | ||||
| * | gpu: Make memory_manager private | Lioncash | 2018-08-28 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | | | | | Makes the class interface consistent and provides accessors for obtaining a reference to the memory manager instance. Given we also return references, this makes our more flimsy uses of const apparent, given const doesn't propagate through pointers in the way one would typically expect. This makes our mutable state more apparent in some places. | ||||
* | | gl_rasterizer: Remove unused variables | Lioncash | 2018-08-28 | 1 | -2/+0 |
|/ | |||||
* | renderer_opengl: Implement a new shader cache. | bunnei | 2018-08-28 | 1 | -59/+25 |
| | |||||
* | gl_rasterizer_cache: Update to use RasterizerCache base class. | bunnei | 2018-08-28 | 1 | -4/+1 |
| | |||||
* | gl_rasterizer: Correct assertion condition in SyncLogicOpState() | Lioncash | 2018-08-24 | 1 | -1/+2 |
| | | | | | Previously the assert would always be hit, since it was the equivalent of: array == nullptr, which is never true. | ||||
* | gl_rasterizer: Implement stencil test. | bunnei | 2018-08-23 | 1 | -4/+31 |
| | | | | - Used by Splatoon 2. | ||||
* | gl_rasterizer: Implement partial color clear and stencil clear. | bunnei | 2018-08-23 | 1 | -12/+42 |
| | |||||
* | Merge pull request #1157 from lioncash/vec | bunnei | 2018-08-23 | 1 | -1/+1 |
|\ | | | | | gl_shader_gen: Use a std::vector to represent program code instead of std::array | ||||
| * | gl_shader_gen: Use a std::vector to represent program code instead of std::array | Lioncash | 2018-08-22 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | While convenient as a std::array, it's also quite a large set of data as well (32KB). It being an array also means data cannot be std::moved. Any situation where the code is being set or relocated means that a full copy of that 32KB data must be done. If we use a std::vector we do need to allocate on the heap, however, it does allow us to std::move the data we have within the std::vector into another std::vector instance, eliminating the need to always copy the program data (as std::move in this case would just transfer the pointers and bare necessities over to the new vector instance). | ||||
* | | renderer_opengl: Namespace OpenGL code | Lioncash | 2018-08-22 | 1 | -0/+4 |
|/ | | | | | | | 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/+18 |
|\ | | | | | GPU: Implemented logic ops. | ||||
| * | GPU: Implemented the logic op functionality of the GPU. | Subv | 2018-08-21 | 1 | -0/+18 |
| | | | | | | | | 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 | -4/+3 |
|\ \ | | | | | | | rasterizer_interface: Remove renderer-specific ScreenInfo type from AccelerateDraw() in RasterizerInterface | ||||
| * | | rasterizer_interface: Remove ScreenInfo from AccelerateDraw()'s signature | Lioncash | 2018-08-21 | 1 | -4/+3 |
| |/ | | | | | | | | | | | 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 | -4/+5 |
|/ | |||||
* | GLRasterizer: Implemented instanced vertex arrays. | Subv | 2018-08-18 | 1 | -3/+16 |
| | | | | Before each draw call, for every enabled vertex array configured as instanced, we take the current instance id and divide it by its configured divisor, then we multiply that by the corresponding stride and increment the start address by the resulting amount. This way we can simulate the vertex array being incremented once per instance without actually using OpenGL's instancing functions. | ||||
* | Rasterizer: Implemented instanced rendering. | Subv | 2018-08-15 | 1 | -1/+1 |
| | | | | | | We keep track of the current instance and update an uniform in the shaders to let them know which instance they are. Instanced vertex arrays are not yet implemented. | ||||
* | gl_rasterizer: Fix upload size for constant buffers. | bunnei | 2018-08-15 | 1 | -3/+3 |
| | |||||
* | gl_rasterizer: Use a shared helper to upload from CPU memory. | Markus Wick | 2018-08-12 | 1 | -28/+29 |
| | |||||
* | gl_state: Don't track constant buffer mappings. | Markus Wick | 2018-08-12 | 1 | -15/+3 |
| | |||||
* | gl_rasterizer: Use the stream buffer for constant buffers. | Markus Wick | 2018-08-12 | 1 | -20/+19 |
| | |||||
* | gl_rasterizer: Use the streaming buffer itself for the constant buffer. | Markus Wick | 2018-08-12 | 1 | -31/+14 |
| | | | | 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 | -14/+19 |
| | |||||
* | Update the stream_buffer helper from Citra. | Markus Wick | 2018-08-12 | 1 | -22/+14 |
| | | | | Please see https://github.com/citra-emu/citra/pull/3666 for more details. | ||||
* | Merge pull request #1020 from lioncash/namespace | bunnei | 2018-08-12 | 1 | -1/+1 |
|\ | | | | | core: Namespace EmuWindow | ||||
| * | core: Namespace EmuWindow | Lioncash | 2018-08-12 | 1 | -1/+1 |
| | | | | | | | | Gets the class out of the global namespace. | ||||
* | | Merge pull request #1021 from lioncash/warn | bunnei | 2018-08-12 | 1 | -1/+1 |
|\ \ | | | | | | | gl_rasterizer: Silence implicit truncation warning in SetupShaders() | ||||
| * | | gl_rasterizer: Silence implicit truncation warning in SetupShaders() | Lioncash | 2018-08-12 | 1 | -1/+1 |
| |/ | | | | | | | | | | | Previously this would warn of truncating a std::size_t to a u32. This is safe because we'll obviously never have more than UINT32_MAX amount of uniform buffers. | ||||
* / | RasterizerGL: Ignore invalid/unset vertex attributes. | Subv | 2018-08-12 | 1 | -1/+6 |
|/ | | | | This should make the es2gears example not crash anymore. | ||||
* | Merge pull request #1004 from lioncash/unused | bunnei | 2018-08-10 | 1 | -4/+3 |
|\ | | | | | gl_rasterizer_cache: Remove unused viewport parameter of GetFramebufferSurfaces() | ||||
| * | gl_rasterizer_cache: Remove unused viewport parameter of GetFramebufferSurfaces() | Lioncash | 2018-08-10 | 1 | -4/+3 |
| | | |||||
* | | Revert "gl_state: Temporarily disable culling and depth test." | bunnei | 2018-08-10 | 1 | -3/+1 |
|/ | |||||
* | Merge pull request #984 from bunnei/rt-none | bunnei | 2018-08-09 | 1 | -0/+5 |
|\ | | | | | gl_rasterizer: Do not render when no render target is configured. | ||||
| * | gl_rasterizer: Do not render when no render target is configured. | bunnei | 2018-08-09 | 1 | -0/+5 |
| | | | | | | | | - Used by Super Mario Odyssey. | ||||
* | | Merge pull request #981 from bunnei/cbuf-corrupt | bunnei | 2018-08-09 | 1 | -1/+4 |
|\ \ | |/ |/| | maxwell_3d: Use correct const buffer size and check bounds. | ||||
| * | maxwell_3d: Use correct const buffer size and check bounds. | bunnei | 2018-08-08 | 1 | -1/+4 |
| | | | | | | | | - Fixes mem corruption with Super Mario Odyssey and Pokkén Tournament DX. | ||||
* | | renderer_opengl: Use trace log in a few places. | bunnei | 2018-08-08 | 1 | -1/+1 |
|/ | |||||
* | added braces for conditions | David Marcec | 2018-08-05 | 1 | -2/+3 |
| | |||||
* | fix the attrib format for ints | David Marcec | 2018-08-05 | 1 | -2/+7 |
| | |||||
* | video_core: Make global EmuWindow instance part of the base renderer class | Lioncash | 2018-08-02 | 1 | -4/+3 |
| | | | | | | | | | | | 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: Replace magic number with GL_INVALID_INDEX in SetupConstBuffers() | Lioncash | 2018-07-24 | 1 | -3/+5 |
| | | | | | This is just the named constant that OpenGL provides, so we can use that instead of using a literal -1 | ||||
* | gl_rasterizer: Use std::string_view instead of std::string when checking for extensions | Lioncash | 2018-07-24 | 1 | -1/+3 |
| | | | | | We can avoid heap allocations here by just using a std::string_view instead of performing unnecessary copying of the string data. | ||||
* | gl_rasterizer: Use in-class member initializers where applicable | Lioncash | 2018-07-24 | 1 | -7/+0 |
| | | | | We can just assign to the members directly in these cases. | ||||
* | gl_rasterizer: Implement texture border color. | bunnei | 2018-07-24 | 1 | -3/+6 |
| | |||||
* | gl_rasterizer_cache: Use GPUVAddr as cache key, not parameter set. | bunnei | 2018-07-22 | 1 | -10/+14 |
| | |||||
* | gl_rasterizer: Use zeta_enable register to enable depth buffer. | bunnei | 2018-07-22 | 1 | -2/+2 |
| | |||||
* | gpu: Rename Get3DEngine() to Maxwell3D() | Lioncash | 2018-07-21 | 1 | -5/+5 |
| | | | | This makes it match its const qualified equivalent. | ||||
* | gl_state: Temporarily disable culling and depth test. | bunnei | 2018-07-19 | 1 | -1/+3 |
| | |||||
* | core: Don't construct instance of Core::System, just to access its live instance | Lioncash | 2018-07-19 | 1 | -13/+13 |
| | | | | | | | | | This would result in a lot of allocations and related object construction, just to toss it all away immediately after the call. These are definitely not intentional, and it was intended that all of these should have been accessing the static function GetInstance() through the name itself, not constructed instances. | ||||
* | Merge pull request #598 from bunnei/makedonecurrent | bunnei | 2018-07-15 | 1 | -0/+6 |
|\ | | | | | OpenGL: Use MakeCurrent/DoneCurrent for multithreaded rendering. | ||||
| * | OpenGL: Use MakeCurrent/DoneCurrent for multithreaded rendering. | bunnei | 2018-07-14 | 1 | -0/+6 |
| | | |||||
* | | GPU: Always enable the depth write when clearing the depth buffer. | Subv | 2018-07-14 | 1 | -3/+8 |
|/ | | | | The GPU ignores that register when clearing, but OpenGL obeys the glDepthMask parameter, so we set the depth mask to GL_TRUE when clearing the depth buffer. It will be restored to the correct value automatically on the next draw call. | ||||
* | gl_rasterizer: Fix check for if a shader stage is enabled. | bunnei | 2018-07-13 | 1 | -11/+3 |
| | |||||
* | gl_shader_gen: Implement dual vertex shader mode. | bunnei | 2018-07-13 | 1 | -10/+33 |
| | | | | - When VertexA shader stage is enabled, we combine with VertexB program to make a single Vertex Shader stage. | ||||
* | gl_rasterizer: Flip triangles when regs.viewport_transform[0].scale_y is negative. | bunnei | 2018-07-08 | 1 | -1/+4 |
| | | | | - Fixes a regression with Binding of Isaac. | ||||
* | Merge pull request #622 from Subv/unused_tex | bunnei | 2018-07-05 | 1 | -1/+4 |
|\ | | | | | GPU: Ignore unused textures and corrected the TEX shader instruction decoding. | ||||
| * | GPU: Ignore textures that the GLSL compiler deemed unused when binding textures to the shaders. | Subv | 2018-07-04 | 1 | -1/+4 |
| | | |||||
* | | GPU: Flip the triangle front face winding if the GPU is configured to not flip the triangles. | Subv | 2018-07-04 | 1 | -0/+10 |
|/ | | | | | | OpenGL's default behavior is already correct when the GPU is configured to flip the triangles. This fixes 1-2 Switch's splash screen. | ||||
* | GPU: Only configure the used framebuffers during clear. | Subv | 2018-07-04 | 1 | -7/+13 |
| | | | | Don't try to configure the color buffer if it is not being cleared, it may not be completely valid at this point. | ||||
* | Merge pull request #609 from Subv/clear_buffers | bunnei | 2018-07-04 | 1 | -14/+57 |
|\ | | | | | GPU: Implemented the CLEAR_BUFFERS register. | ||||
| * | GPU: Factor out the framebuffer configuration code for both Clear and Draw commands. | Subv | 2018-07-03 | 1 | -72/+34 |
| | | |||||
| * | GPU: Support clears that don't clear the color buffer. | Subv | 2018-07-03 | 1 | -4/+14 |
| | | |||||
| * | GPU: Bind and clear the render target when the CLEAR_BUFFERS register is written to. | Subv | 2018-07-03 | 1 | -0/+71 |
| | | |||||
* | | Merge pull request #607 from jroweboy/logging | bunnei | 2018-07-03 | 1 | -8/+8 |
|\ \ | | | | | | | Logging - Customizable backends | ||||
| * | | Update clang format | James Rowe | 2018-07-03 | 1 | -5/+5 |
| | | | |||||
| * | | Rename logging macro back to LOG_* | James Rowe | 2018-07-03 | 1 | -4/+4 |
| |/ | |||||
* | | Merge pull request #612 from bunnei/fix-cull | bunnei | 2018-07-03 | 1 | -2/+5 |
|\ \ | | | | | | | gl_rasterizer: Only set cull mode and front face if enabled. | ||||
| * | | gl_rasterizer: Only set cull mode and front face if enabled. | bunnei | 2018-07-03 | 1 | -2/+5 |
| |/ | |||||
* / | GPU: Don't try to parse the depth test function if the depth test is disabled. | Subv | 2018-07-03 | 1 | -0/+4 |
|/ | |||||
* | Merge pull request #608 from Subv/depth | bunnei | 2018-07-03 | 1 | -6/+21 |
|\ | | | | | GPU: Implemented the depth buffer and depth test + culling | ||||
| * | GPU: Set up the culling configuration on each draw. | Subv | 2018-07-03 | 1 | -6/+8 |
| | | |||||
| * | GPU: Set up the depth test state on every draw. | Subv | 2018-07-02 | 1 | -0/+11 |
| | | |||||
| * | GPU: Implemented the Z24S8 depth format and load the depth framebuffer. | Subv | 2018-07-02 | 1 | -1/+3 |
| | | |||||
* | | Merge pull request #606 from Subv/base_vertex | Sebastian Valle | 2018-07-02 | 1 | -7/+9 |
|\ \ | | | | | | | GPU: Fixed the index offset and implement BaseVertex when doing indexed rendering. | ||||
| * | | GPU: Implement offsetted rendering when using non-indexed drawing. | Subv | 2018-07-02 | 1 | -1/+1 |
| | | | |||||
| * | | GPU: Fixed the index offset rendering, and implemented the base vertex functionality. | Subv | 2018-07-02 | 1 | -6/+8 |
| |/ | | | | | | | This fixes Stardew Valley. | ||||
* / | GPU: Ignore disabled textures and textures with an invalid address. | Subv | 2018-07-02 | 1 | -1/+5 |
|/ | |||||
* | gl_rasterizer_cache: Implement caching for texture and framebuffer surfaces. | bunnei | 2018-06-27 | 1 | -6/+19 |
| | | | | | | gl_rasterizer_cache: Improved cache management based on Citra's implementation. gl_surface_cache: Add some docstrings. | ||||
* | gl_rasterizer: Implement AccelerateDisplay to forward textures to framebuffers. | bunnei | 2018-06-27 | 1 | -3/+22 |
| | |||||
* | gl_rasterizer_cache: Remove Citra's rasterizer cache, always load/flush surfaces. | bunnei | 2018-06-27 | 1 | -91/+26 |
| | |||||
* | gl_rasterizer: Workaround for when exceeding max UBO size. | bunnei | 2018-06-27 | 1 | -0/+6 |
| | |||||
* | gl_state: Fix state management for texture swizzle. | bunnei | 2018-06-26 | 1 | -1/+1 |
| | |||||
* | Merge pull request #554 from Subv/constbuffer_ubo | bunnei | 2018-06-26 | 1 | -11/+17 |
|\ | | | | | Rasterizer: Use UBOs instead of SSBOs for uploading const buffers. | ||||
| * | Rasterizer: Use UBOs instead of SSBOs for uploading const buffers. | Subv | 2018-06-10 | 1 | -11/+17 |
| | | | | | | | | This should help a bit with GPU performance once we're GPU-bound. | ||||
* | | Build: Fixed some MSVC warnings in various parts of the code. | Subv | 2018-06-20 | 1 | -2/+2 |
| | | |||||
* | | gl_rasterizer: Get loose on independent blending. | Jules Blok | 2018-06-18 | 1 | -1/+1 |
|/ | |||||
* | GPU: Synchronize the blend state on every draw call. | Subv | 2018-06-09 | 1 | -8/+18 |
| | | | | | | Only independent blending on render target 0 is implemented for now. This fixes the elongated squids in Splatoon 2's boot screen. | ||||
* | GPU: Added registers for normal and independent blending. | Subv | 2018-06-09 | 1 | -26/+1 |
| | |||||
* | Rasterizer: Flush the written region when writing shader uniform data before copying it to the uniform buffers. | Subv | 2018-06-08 | 1 | -0/+3 |
| | | | | This fixes the flip_viewport uniform having invalid values when drawing. | ||||
* | Merge pull request #543 from Subv/uniforms | bunnei | 2018-06-07 | 1 | -3/+4 |
|\ | | | | | GLRenderer: Write the shader stage configuration UBO data *before* copying it to the GPU. | ||||
| * | GLRenderer: Write the shader stage configuration UBO data *before* copying it to the GPU. | Subv | 2018-06-07 | 1 | -3/+4 |
| | | | | | | | | This should fix the bug with the vs_config UBO being uninitialized during shader execution. | ||||
* | | GPU: Support changing the texture swizzles for Maxwell textures. | Subv | 2018-06-07 | 1 | -0/+8 |
|/ | |||||
* | Merge pull request #534 from Subv/multitexturing | bunnei | 2018-06-07 | 1 | -37/+46 |
|\ | | | | | GPU: Implement sampling multiple textures in the generated glsl shaders. | ||||
| * | GPU: Implement sampling multiple textures in the generated glsl shaders. | Subv | 2018-06-06 | 1 | -37/+46 |
| | | | | | | | | | | | | 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. | ||||
* | | gl_shader_gen: Add uniform handling for indirect const buffer access. | bunnei | 2018-06-07 | 1 | -1/+10 |
|/ | |||||
* | GPU: Calculate the correct viewport dimensions based on the scale and translate registers. | Subv | 2018-06-04 | 1 | -2/+2 |
| | | | | This is how nouveau calculates the viewport width and height. For some reason some games set 0xFFFF in the VIEWPORT_HORIZ and VIEWPORT_VERT registers, maybe those are a misnomer and actually refer to something else? | ||||
* | GLRenderer: Remove unused hw_vao_enabled_attributes variable. | Subv | 2018-05-19 | 1 | -3/+0 |
| | |||||
* | GLRenderer: Remove unused vertex buffer and increase the size of the stream buffer to 128 MB. | Subv | 2018-05-19 | 1 | -4/+1 |
| | | | | 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. | ||||
* | general: Make formatting of logged hex values more straightforward | Lioncash | 2018-05-02 | 1 | -1/+1 |
| | | | | | | This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on). | ||||
* | video-core: Move logging macros over to new fmt-capable ones | Lioncash | 2018-04-25 | 1 | -3/+3 |
| | |||||
* | gl_rasterizer_cache: Add a function for finding framebuffer GPU address. | bunnei | 2018-04-25 | 1 | -0/+1 |
| | |||||
* | gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses. | bunnei | 2018-04-25 | 1 | -7/+6 |
| | |||||
* | memory_manager: Make GpuToCpuAddress return an optional. | bunnei | 2018-04-24 | 1 | -7/+7 |
| | |||||
* | memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses. | bunnei | 2018-04-24 | 1 | -3/+3 |
| | |||||
* | GPU: Support multiple enabled vertex arrays. | Subv | 2018-04-23 | 1 | -40/+81 |
| | | | | | | 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 | -1/+0 |
| | |||||
* | math_util: Remove the Clamp() function | Lioncash | 2018-04-20 | 1 | -12/+13 |
| | | | | | C++17 adds clamp() to the standard library, so we can remove ours in favor of it. | ||||
* | GLCache: Added boilerplate code to make supporting configurable texture component types. | Subv | 2018-04-18 | 1 | -0/+2 |
| | | | | For now only the UNORM type is supported. | ||||
* | GLCache: Take into account the texture's block height when caching and unswizzling. | Subv | 2018-04-18 | 1 | -1/+2 |
| | |||||
* | renderer_opengl: Implement BlendEquation and BlendFunc. | bunnei | 2018-04-18 | 1 | -1/+26 |
| | |||||
* | gl_rendering: Use NGLOG* for changed code. | bunnei | 2018-04-17 | 1 | -3/+3 |
| | |||||
* | gl_rasterizer: Implement indexed vertex mode. | bunnei | 2018-04-17 | 1 | -19/+31 |
| | |||||
* | GPU: Use the same buffer names in the generated GLSL and the buffer uploading code. | Subv | 2018-04-15 | 1 | -10/+7 |
| | |||||
* | GPU: Don't use explicit binding points when uploading the constbuffers to opengl. | Subv | 2018-04-15 | 1 | -5/+25 |
| | | | | The bindpoints will now be dynamically calculated based on the number of buffers used by the previous shader stage. | ||||
* | GPU: Don't use GetPointer when uploading the constbuffer data to the GPU. | Subv | 2018-04-15 | 1 | -3/+4 |
| | |||||
* | 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 | -29/+38 |
| | |||||
* | GPU: Upload the entirety of each constbuffer for each shader stage as SSBOs. | Subv | 2018-04-15 | 1 | -1/+38 |
| | | | | 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/+8 |
| | |||||
* | GPU: Added a function to determine whether a shader stage is enabled or not. | Subv | 2018-04-15 | 1 | -3/+3 |
| | |||||
* | gl_rasterizer: Generate shaders and upload uniforms. | bunnei | 2018-04-14 | 1 | -28/+74 |
| | |||||
* | gl_rasterizer: Use shader program manager, remove test shader. | bunnei | 2018-04-14 | 1 | -143/+27 |
| | |||||
* | 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 | -2/+36 |
| | | | | | 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: Bind the textures to the shaders used for drawing. | Subv | 2018-04-07 | 1 | -2/+11 |
| | |||||
* | GL: Create the sampler objects when starting up the GL rasterizer. | Subv | 2018-04-07 | 1 | -0/+6 |
| | |||||
* | GL: Ported the SamplerInfo struct from citra. | Subv | 2018-04-07 | 1 | -0/+39 |
| | |||||
* | gl_rasterizer: Move code to bind framebuffer surfaces before draw to its own function. | bunnei | 2018-03-27 | 1 | -22/+27 |
| | |||||
* | gl_rasterizer: Add a SyncViewport method. | bunnei | 2018-03-27 | 1 | -18/+17 |
| | |||||
* | gl_rasterizer: Move PrimitiveTopology check to MaxwellToGL. | bunnei | 2018-03-27 | 1 | -11/+2 |
| | |||||
* | gl_rasterizer: Use ReadBlock instead of GetPointer for SetupVertexArray. | bunnei | 2018-03-27 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Normalize vertex array data as appropriate. | bunnei | 2018-03-27 | 1 | -1/+1 |
| | |||||
* | rasterizer: Rename DrawTriangles to DrawArrays. | bunnei | 2018-03-27 | 1 | -2/+2 |
| | |||||
* | gl_rasterizer: Use passthrough shader for SetupVertexShader. | bunnei | 2018-03-27 | 1 | -1/+2 |
| | |||||
* | renderer_opengl: Logging, etc. cleanup. | bunnei | 2018-03-27 | 1 | -17/+18 |
| | |||||
* | gl_rasterizer: Implement SetupVertexArray. | bunnei | 2018-03-27 | 1 | -20/+38 |
| | |||||
* | gl_rasterizer: Use 32 texture units instead of 3. | bunnei | 2018-03-27 | 1 | -0/+1 |
| | |||||
* | gl_rasterizer: Implement DrawTriangles. | bunnei | 2018-03-27 | 1 | -1/+194 |
| | |||||
* | gl_rasterizer: Implement AnalyzeVertexArray. | bunnei | 2018-03-27 | 1 | -1/+21 |
| | |||||
* | gl_rasterizer: Fake render in green, because it's cooler. | bunnei | 2018-03-24 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Log warning instead of sync'ing unimplemented funcs. | bunnei | 2018-03-24 | 1 | -7/+1 |
| | |||||
* | rasterizer: Flush and invalidate regions should be 64-bit. | bunnei | 2018-03-23 | 1 | -3/+3 |
| | |||||
* | gl_rasterizer: Implement AccelerateDisplay method from Citra. | bunnei | 2018-03-23 | 1 | -1/+33 |
| | |||||
* | 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/+3 |
| | |||||
* | gl_rasterizer: Replace a bunch of UNIMPLEMENTED with ASSERT. | bunnei | 2018-03-23 | 1 | -15/+15 |
| | |||||
* | gl_rasterizer: Add a simple passthrough shader in lieu of shader generation. | bunnei | 2018-03-23 | 1 | -3/+56 |
| | |||||
* | renderer_gl: Port boilerplate rasterizer code over from Citra. | bunnei | 2018-03-20 | 1 | -0/+269 |
| | |||||
* | Remove references to PICA and rasterizers in video_core | James Rowe | 2018-01-13 | 1 | -1686/+0 |
| | |||||
* | core/video_core: Fix a bunch of u64 -> u32 warnings. | bunnei | 2018-01-01 | 1 | -2/+2 |
| | |||||
* | Fixed framebuffer warning | Huw Pascoe | 2017-09-17 | 1 | -7/+18 |
| | |||||
* | gl_rasterizer: implement custom clip plane | wwylele | 2017-08-25 | 1 | -0/+28 |
| | |||||
* | gl_rasterizer: add clipping plane z<=0 defined in PICA | wwylele | 2017-08-21 | 1 | -0/+3 |
| | |||||
* | gl_rasterizer: use texture buffer for proctex LUT | wwylele | 2017-07-01 | 1 | -30/+35 |
| | |||||
* | gl_rasterizer: use texture buffer for fog LUT | wwylele | 2017-06-22 | 1 | -13/+12 |
| | |||||
* | gl_rasterizer: create the texture before applying the state | wwylele | 2017-06-22 | 1 | -2/+2 |
| | | | | this is a rebasing error from #2792. It doesn't affect much though, because the later more Apply() call fixes/hides it | ||||
* | gl_rasterizer: fix glGetUniformLocation type | wwylele | 2017-06-21 | 1 | -8/+8 |
| | |||||
* | gl_rasterizer: manage texture ids in one place | wwylele | 2017-06-21 | 1 | -23/+24 |
| | |||||
* | gl_rasterizer/lighting: fix LUT interpolation | wwylele | 2017-06-21 | 1 | -49/+22 |
| | |||||
* | Merge pull request #2767 from yuriks/quaternion-flip-comment | Yuri Kunde Schlesner | 2017-06-13 | 1 | -8/+11 |
|\ | | | | | OpenGL: Update comment on AreQuaternionsOpposite with new information | ||||
| * | OpenGL: Update comment on AreQuaternionsOpposite with new information | Yuri Kunde Schlesner | 2017-06-10 | 1 | -8/+11 |
| | | | | | | | | | | | | | | While debugging the software renderer implementation, it was noticed that this is actually exactly what the hardware does, upgrading the status of this "hack" to being a proper implementation. And there was much rejoicing. | ||||
* | | gl_rasterizer: sync spot light status | wwylele | 2017-05-30 | 1 | -0/+45 |
|/ | |||||
* | gl_rasterizer: implement procedural texture | wwylele | 2017-05-20 | 1 | -0/+232 |
| | |||||
* | pica: shader_dirty if texture2 coord changed | wwylele | 2017-05-05 | 1 | -0/+4 |
| | |||||
* | OpenGL: Pass Pica regs via parameter | Yuri Kunde Schlesner | 2017-04-17 | 1 | -1/+1 |
| | |||||
* | OpenGL: Move PicaShaderConfig to gl_shader_gen.h | Yuri Kunde Schlesner | 2017-04-17 | 1 | -1/+1 |
| | | | | Also move the implementation of CurrentConfig to the cpp file. | ||||
* | OpenGL: Move Attributes enum to a more appropriate file | Yuri Kunde Schlesner | 2017-04-17 | 1 | -1/+0 |
| | |||||
* | OpenGL: Check if uniform block exists before updating it (#2581) | Jannik Vogel | 2017-02-18 | 1 | -29/+30 |
| | |||||
* | OpenGL: Remove unused duplicate of IsPassThroughTevStage | Yuri Kunde Schlesner | 2017-02-09 | 1 | -12/+0 |
| | | | | | This copy was left behind when the shader generation code was moved to a separate file. | ||||
* | VideoCore: Split regs.h inclusions | Yuri Kunde Schlesner | 2017-02-09 | 1 | -1/+3 |
| | |||||
* | VideoCore: Move Regs to its own file | Yuri Kunde Schlesner | 2017-02-04 | 1 | -1/+1 |
| | |||||
* | VideoCore: Split framebuffer regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 1 | -49/+60 |
| | |||||
* | VideoCore: Split texturing regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 1 | -62/+67 |
| | |||||
* | VideoCore: Split rasterizer regs from Regs struct | Yuri Kunde Schlesner | 2017-02-04 | 1 | -25/+29 |
| | |||||
* | Merge pull request #2476 from yuriks/shader-refactor3 | Yuri Kunde Schlesner | 2017-02-04 | 1 | -1/+1 |
|\ | | | | | Oh No! More shader changes! | ||||
| * | 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: gl_rasterizer.cpp removed unused type alias | Kloen | 2017-01-30 | 1 | -2/+0 |
|/ | |||||
* | video_core: gl_rasterizer float to int warning | Kloen | 2017-01-23 | 1 | -1/+2 |
| | |||||
* | Merge pull request #2319 from yuriks/profile-scopes | bunnei | 2016-12-21 | 1 | -0/+12 |
|\ | | | | | VideoCore: Make profiling scope more representative | ||||
| * | VideoCore: Make profiling scope more representative | Yuri Kunde Schlesner | 2016-12-15 | 1 | -0/+12 |
| | | |||||
* | | Use GL_TRUE when setting color_mask | Albin Bernhardsson | 2016-12-19 | 1 | -4/+4 |
|/ | |||||
* | OpenGL: Drop framebuffer completeness check. | Markus Wick | 2016-12-07 | 1 | -16/+0 |
| | | | | | | | This OpenGL call synchronize the worker thread of the nvidia blob. It can be verified on linux with the __GL_THREADED_OPTIMIZATIONS=1 environment variable. Those errors should not happen on tested drivers. It was used as a workaround for https://bugs.freedesktop.org/show_bug.cgi?id=94148 | ||||
* | Report shader uniform block size in case of mismatch | Jannik Vogel | 2016-12-05 | 1 | -1/+3 |
| | |||||
* | OpenGL: Non-zero stride only makes sense for linear buffers | Yuri Kunde Schlesner | 2016-12-04 | 1 | -1/+1 |
| | |||||
* | OpenGL: Fix DisplayTransfer accel when input width != output width | Yuri Kunde Schlesner | 2016-12-04 | 1 | -1/+10 |
| | | | | Fixes #2246, #2261 | ||||
* | ClangFormat: Fixed the clang-format errors | Subv | 2016-11-30 | 1 | -4/+8 |
| | |||||
* | Build: Fixed a few warnings. | Subv | 2016-11-29 | 1 | -4/+4 |
| | |||||
* | RasterizerGL: Use GL_TRUE and 0xFF in the stencil and depth masks instead of simply true and -1 | Subv | 2016-11-27 | 1 | -2/+2 |
| | |||||
* | Rasterizer/Memfill: Set the correct stencil write mask when clearing the stencil buffer. | Subv | 2016-11-27 | 1 | -1/+1 |
| | |||||
* | Merge pull request #2103 from wwylele/gpu-reg-cleanup | bunnei | 2016-10-04 | 1 | -5/+5 |
|\ | | | | | GPU: DisplayTransfer & MemoryFill cleanup and param check | ||||
| * | rasterizer: separate TextureCopy from DisplayTransfer | wwylele | 2016-09-29 | 1 | -5/+5 |
| | | |||||
* | | OpenGL: Take cached viewport sub-rect into account for scissor | Yuri Kunde Schlesner | 2016-09-30 | 1 | -21/+21 |
|/ | | | | Fixes #1938 | ||||
* | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 2016-09-21 | 1 | -1/+1 |
| | |||||
* | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 2016-09-21 | 1 | -5/+1 |
| | | | | | | | 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 | -5/+5 |
| | |||||
* | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 2016-09-18 | 1 | -86/+148 |
| | |||||
* | OpenGL: Add scaled resolution support to scissor | Yuri Kunde Schlesner | 2016-06-28 | 1 | -0/+8 |
| | |||||
* | PICA: Scissor fixes and cleanups | Yuri Kunde Schlesner | 2016-06-28 | 1 | -10/+10 |
| | |||||
* | PICA: Implement scissor test | Subv | 2016-06-28 | 1 | -0/+26 |
| | |||||
* | OpenGL: Implement fog | Jannik Vogel | 2016-06-07 | 1 | -0/+68 |
| | |||||
* | OpenGL: Set shader_dirty on lighting changes | Jannik Vogel | 2016-05-23 | 1 | -0/+23 |
| | |||||
* | OpenGL: Use uniforms for dist_atten_bias and dist_atten_scale | Jannik Vogel | 2016-05-23 | 1 | -0/+72 |
| | |||||
* | Merge pull request #1786 from JayFoxRox/blend-equation | bunnei | 2016-05-17 | 1 | -0/+2 |
|\ | | | | | OpenGL: Support blend equation | ||||
| * | OpenGL: Support blend equation | Jannik Vogel | 2016-05-12 | 1 | -0/+2 |
| | | |||||
* | | OpenGL: Only update depth uniforms if the depth changed | Jannik Vogel | 2016-05-14 | 1 | -7/+17 |
|/ | |||||
* | OpenGL: Implement texture type 3 | Jannik Vogel | 2016-05-11 | 1 | -0/+8 |
| | |||||
* | OpenGL: Implement W-Buffers and fix depth-mapping | Jannik Vogel | 2016-05-10 | 1 | -3/+8 |
| | |||||
* | Pica: Implement W-Buffer in SW rasterizer | Jannik Vogel | 2016-05-10 | 1 | -2/+2 |
| | |||||
* | fixup simple type conversions where possible | Alexander Laties | 2016-05-07 | 1 | -1/+1 |
| | |||||
* | Merge pull request #1741 from linkmauve/iwyu-video_core | bunnei | 2016-05-01 | 1 | -6/+7 |
|\ | | | | | 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 | -6/+7 |
| | | |||||
* | | OpenGL: border_color was never set. Fixed. (#1740) | Jannik Vogel | 2016-04-30 | 1 | -0/+1 |
|/ | |||||
* | Common: Remove section measurement from profiler (#1731) | Yuri Kunde Schlesner | 2016-04-29 | 1 | -1/+0 |
| | | | | This has been entirely superseded by MicroProfile. The rest of the code can go when a simpler frametime/FPS meter is added to the GUI. | ||||
* | HWRasterizer: sync specular uniform for new shaders | tfarley | 2016-04-22 | 1 | -0/+2 |
| | |||||
* | HWRasterizer: Texture forwarding | tfarley | 2016-04-21 | 1 | -511/+328 |
| | |||||
* | OpenGL: Respect buffer-write allow registers | Jannik Vogel | 2016-04-08 | 1 | -6/+28 |
| | |||||
* | OpenGL: Split buffer-write mask sync into seperate functions | Jannik Vogel | 2016-04-08 | 1 | -8/+30 |
| | |||||
* | OpenGL: Keep stencil-test and framebuffer.depth_format in sync | Jannik Vogel | 2016-04-08 | 1 | -0/+1 |
| | |||||
* | Merge pull request #1639 from linkmauve/fix-double-framebuffer-check | bunnei | 2016-04-08 | 1 | -4/+6 |
|\ | | | | | OpenGL: Fix a double framebuffer completeness checks. | ||||
| * | OpenGL: Fix a double framebuffer completeness checks. | Emmanuel Gil Peyrot | 2016-04-03 | 1 | -4/+6 |
| | | |||||
* | | Merge pull request #1643 from MerryMage/make_unique | Mathew Maidment | 2016-04-06 | 1 | -2/+1 |
|\ \ | |/ |/| | Common: Remove Common::make_unique, use std::make_unique | ||||
| * | Common: Remove Common::make_unique, use std::make_unique | MerryMage | 2016-04-05 | 1 | -2/+1 |
| | | |||||
* | | OpenGL: Check for framebuffer completeness | Jannik Vogel | 2016-04-03 | 1 | -0/+3 |
| | | |||||
* | | OpenGL: Don't attempt to draw empty triangle batches | Yuri Kunde Schlesner | 2016-03-24 | 1 | -0/+3 |
|/ | | | | | Our code did not handle this well, causing random crashes in some situations. | ||||
* | Pica: Write depth value even when depth test is disabled | Yuri Kunde Schlesner | 2016-03-06 | 1 | -2/+4 |
| | | | | This has been confirmed on hardware. Fixes Etrian Odyssey IV. | ||||
* | Add immediate mode vertex submission | Dwayne Slater | 2016-03-03 | 1 | -0/+1 |
| | |||||
* | renderer_opengl: Use GLvec3/GLvec4 aliases for commonly used types. | bunnei | 2016-02-05 | 1 | -2/+2 |
| | |||||
* | gl_rasterizer: Fix issue with interpolation of opposite quaternions. | bunnei | 2016-02-05 | 1 | -3/+25 |
| | |||||
* | pica_types: Replace float24/20/16 with a template class. | bunnei | 2016-02-05 | 1 | -7/+7 |
| | |||||
* | renderer_opengl: Use textures for fragment shader LUTs instead of UBOs. | bunnei | 2016-02-05 | 1 | -12/+39 |
| | | | | | - 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/+68 |
| | |||||
* | renderer_opengl: Implement HW fragment lighting LUTs within our default UBO. | bunnei | 2016-02-05 | 1 | -13/+52 |
| | |||||
* | renderer_opengl: Implement diffuse component of HW fragment lighting. | bunnei | 2016-02-05 | 1 | -0/+141 |
| | |||||
* | hwrasterizer: Use proper cached fb addr/size | tfarley | 2016-02-03 | 1 | -40/+32 |
| | |||||
* | hwrasterizer: Use depth offset | tfarley | 2016-01-21 | 1 | -0/+16 |
| | |||||
* | Merge pull request #1267 from yuriks/flipped-framebuffer | Yuri Kunde Schlesner | 2015-12-10 | 1 | -11/+10 |
|\ | | | | | OpenGL: Flip framebuffers during transfer rather than when rendering | ||||
| * | OpenGL: Flip framebuffers during transfer rather than when rendering | Yuri Kunde Schlesner | 2015-12-05 | 1 | -11/+10 |
| | | |||||
* | | VideoCore: Unify interface to OpenGL and SW rasterizers | Yuri Kunde Schlesner | 2015-12-08 | 1 | -9/+0 |
| | | | | | | | | | | | | 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 |
| | | |||||
* | | OpenGL: Rename cache functions to better match what they actually do | Yuri Kunde Schlesner | 2015-12-07 | 1 | -4/+4 |
|/ | |||||
* | renderer_opengl: Fix uniform issues introduced with kemenaran/avoid-explicit-uniform-location. | bunnei | 2015-11-26 | 1 | -4/+6 |
| | |||||
* | Use regular uniform location | Pierre de La Morinerie | 2015-11-25 | 1 | -3/+4 |
| | | | | | | 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 | -4/+29 |
| | |||||
* | gl_rasterizer: Define enum types for each vertex texcoord attribute. | bunnei | 2015-10-22 | 1 | -6/+6 |
| | |||||
* | gl_rasterizer: Use MMH3 hash for shader cache hey. | bunnei | 2015-10-22 | 1 | -4/+3 |
| | | | | - Includes a check to confirm no hash collisions. | ||||
* | gl_shader_gen: Require explicit uniform locations. | bunnei | 2015-10-22 | 1 | -19/+8 |
| | | | | - Fixes uniform issue on AMD. | ||||
* | renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups. | bunnei | 2015-10-22 | 1 | -74/+57 |
| | |||||
* | gl_rasterizer: Move logic for creating ShaderCacheKey to a static function. | bunnei | 2015-10-22 | 1 | -17/+2 |
| | |||||
* | gl_rasterizer: Fix typo in uploading TEV const color uniforms. | bunnei | 2015-10-22 | 1 | -5/+5 |
| | |||||
* | gl_shader_util: Fix precision bug with alpha testing. | bunnei | 2015-10-22 | 1 | -2/+2 |
| | | | | - Alpha testing is not done with float32 precision, this makes the HW renderer match the SW renderer. | ||||
* | Initial implementation of fragment shader generation with caching. | Subv | 2015-10-22 | 1 | -227/+124 |
| | |||||
* | Silence -Wsign-compare warnings. | Rohit Nirmal | 2015-10-07 | 1 | -3/+3 |
| | |||||
* | video_core: Reorganize headers | Lioncash | 2015-09-11 | 1 | -1/+1 |
| | |||||
* | gl_rasterizer: Replace push_back calls with emplace_back in AddTriangle | Lioncash | 2015-09-10 | 1 | -3/+3 |
| | |||||
* | OpenGL: Use Sampler Objects to decouple sampler config from textures | Yuri Kunde Schlesner | 2015-09-03 | 1 | -0/+46 |
| | | | | Fixes #978 | ||||
* | OpenGL: Remove ugly and endian-unsafe color pointer casts | Yuri Kunde Schlesner | 2015-09-03 | 1 | -3/+3 |
| | |||||
* | Replace the previous OpenGL loader with a glad-generated 3.3 one | Yuri Kunde Schlesner | 2015-08-30 | 1 | -2/+2 |
| | | | | | | The main advantage of switching to glad from glLoadGen is that, apart from being actively maintained, it supports a customizable entrypoint loader function, which makes it possible to also support OpenGL ES. | ||||
* | Merge pull request #1049 from Subv/stencil | bunnei | 2015-08-30 | 1 | -4/+20 |
|\ | | | | | Rasterizer: Corrected the stencil implementation. | ||||
| * | HWRenderer: Added a workaround for the Intel Windows driver bug that causes glTexSubImage2D to not change the stencil buffer. | Subv | 2015-08-24 | 1 | -2/+9 |
| | | | | | | | | Reported here https://communities.intel.com/message/324464 | ||||
| * | GLRasterizer: Implemented stencil testing in the hw renderer. | Subv | 2015-08-20 | 1 | -2/+11 |
| | | |||||
* | | gl_rasterizer_cache: Detect and ignore unnecessary texture flushes. | bunnei | 2015-08-28 | 1 | -2/+2 |
| | | |||||
* | | Integrate the MicroProfile profiling library | Yuri Kunde Schlesner | 2015-08-25 | 1 | -0/+10 |
|/ | | | | | This brings goodies such as a configurable user interface and multi-threaded timeline view. | ||||
* | GPU: Refactor "VertexShader" namespace to "Shader". | bunnei | 2015-08-15 | 1 | -3/+3 |
| | | | | - Also renames "vertex_shader.*" to "shader_interpreter.*" | ||||
* | OpenGL: Remove redundant texture.enable_2d field from OpenGLState | Yuri Kunde Schlesner | 2015-08-06 | 1 | -10/+1 |
| | | | | | All uses of this field where it's false can just set the texture id to 0 instead. | ||||
* | OpenGL: Add a profiler category measuring framebuffer readback | Yuri Kunde Schlesner | 2015-07-28 | 1 | -0/+7 |
| | |||||
* | GLRasterizer: Don't try to get a pointer to the depth buffer if it doesn't exist. | Subv | 2015-07-19 | 1 | -3/+7 |
| | |||||
* | 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 | -3/+5 |
| | |||||
* | Renderer formatting edits | tfarley | 2015-06-09 | 1 | -12/+12 |
| | |||||
* | Render-to-texture flush, interval math fix | tfarley | 2015-06-09 | 1 | -1/+13 |
| | |||||
* | Liberal texture unbind (clout menu) | tfarley | 2015-06-09 | 1 | -4/+34 |
| | |||||
* | Depth format fix (crush3d intro/black screens) | tfarley | 2015-06-09 | 1 | -46/+46 |
| | |||||
* | Implemented glColorMask | tfarley | 2015-06-09 | 1 | -0/+4 |
| | |||||
* | Merge pull request #811 from archshift/commonify | archshift | 2015-05-31 | 1 | -1/+2 |
|\ | | | | | Commonify video_core utility headers | ||||
| * | Move video_core/color.h to common/color.h | archshift | 2015-05-30 | 1 | -1/+2 |
| | | |||||
* | | Pica: Implement LogicOp function. | bunnei | 2015-05-31 | 1 | -0/+10 |
|/ | |||||
* | Remove every trailing whitespace from the project (but externals). | Emmanuel Gil Peyrot | 2015-05-29 | 1 | -1/+1 |
| | |||||
* | Pica: Create 'State' structure and move state memory there. | bunnei | 2015-05-23 | 1 | -108/+126 |
| | |||||
* | OpenGL renderer | tfarley | 2015-05-23 | 1 | -0/+879 |