aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
AgeCommit message (Collapse)Author
2020-04-15gl_device: Mark stage_swizzle as constexprLioncash
Previously this was mutable even though it shouldn't be.
2020-04-15Merge pull request #3612 from ReinUsesLisp/redFernando Sahmkow
shader/memory: Implement RED.E.ADD and minor changes to ATOM
2020-04-15CMakeLists: Make -Wreorder a compile-time errorLioncash
This can result in silent logic bugs within code, and given the amount of times these kind of warnings are caused, they should be flagged at compile-time so no new code is submitted with them.
2020-04-15Merge pull request #3662 from ReinUsesLisp/constant-attrsMat M
gl_rasterizer: Implement constant vertex attributes
2020-04-15Merge pull request #3656 from ReinUsesLisp/glsl-full-decompileMat M
gl_shader_cache: Use CompileDepth::FullDecompile on GLSL
2020-04-15Merge pull request #3654 from ReinUsesLisp/fix-fb-attachMat M
gl_texture_cache: Fix layered texture attachment base level
2020-04-14Revert "gl_shader_decompiler: Implement merges with bitfieldInsert"ReinUsesLisp
This reverts commit 05cf27083608bebd3ee4c38f2f948c8f2030f881. Apparently the first approach using floats instead of bitfieldInert worked better for Fire Emblem: Three Houses. Reverting to get that behavior back.
2020-04-14gl_rasterizer: Implement constant vertex attributesReinUsesLisp
Credits go to gdkchan from Ryujinx for finding constant attributes are used in retail games.
2020-04-14gl_shader_cache: Use CompileDepth::FullDecompile on GLSLReinUsesLisp
From my testing on a Splatoon 2 shader that takes 3800ms on average to compile changing to FullDecompile reduces it to 900ms on average. The shader decoder will automatically fallback to a more naive method if it can't use full decompile.
2020-04-13gl_texture_cache: Fix layered texture attachment base levelReinUsesLisp
The base level is already included in the texture view. If we specify the base level in the texture again, this will end up in the incorrect level and potentially out of bounds.
2020-04-13Merge pull request #3651 from ReinUsesLisp/line-widthsMat M
gl_rasterizer: Implement line widths and smooth lines
2020-04-13Merge pull request #3638 from ReinUsesLisp/remove-preserve-contentsMat M
texture_cache: Remove preserve_contents
2020-04-13Merge pull request #3627 from ReinUsesLisp/layered-viewMat M
gl_texture_cache: Attach view instead of base texture for layered attchments
2020-04-13gl_rasterizer: Implement line widths and smooth linesReinUsesLisp
Implements "legacy" features from OpenGL present on hardware such as smooth lines and line width.
2020-04-12gl_shader_decompiler: Implement merges with bitfieldInsertReinUsesLisp
This also fixes Turing issues but it avoids doing more bitcasts. This should improve the generated code while also avoiding more points where compilers can flush floats.
2020-04-12gl_shader_decompiler: Improve generated code in HMergeH*ReinUsesLisp
Avoiding bitwise expressions, this fixes Turing issues in shaders using half float merges that affected several games.
2020-04-11texture_cache: Remove preserve_contentsReinUsesLisp
preserve_contents was always true. We can't assume we don't have to preserve clears because scissored and color masked clears exist. This removes preserve_contents and assumes it as true at all times.
2020-04-08gl_texture_cache: Attach view instead of base texture for layered attachmentsReinUsesLisp
This way we are not ignoring the base layer of the current texture.
2020-04-08Memory: Address Feedback.Fernando Sahmkow
2020-04-06Shader/Pipeline Cache: Use VAddr instead of physical memory for addressing.Fernando Sahmkow
2020-04-06Query Cache: Use VAddr instead of physical memory for adressing.Fernando Sahmkow
2020-04-06Buffer Cache: Use vAddr instead of physical memory.Fernando Sahmkow
2020-04-06Texture Cache: Use vAddr instead of physical memory for caching.Fernando Sahmkow
2020-04-06GPU: Setup Flush/Invalidate to use VAddr instead of CacheAddrFernando Sahmkow
2020-04-06Merge pull request #3513 from ReinUsesLisp/native-astcFernando Sahmkow
video_core: Use native ASTC when available
2020-04-06shader/memory: Implement RED.E.ADDReinUsesLisp
Implements a reduction operation. It's an atomic operation that doesn't return a value. This commit introduces another primitive because some shading languages might have a primitive for reduction operations.
2020-04-05Merge pull request #3592 from ReinUsesLisp/ipaFernando Sahmkow
shader_decompiler: Remove FragCoord.w hack and change IPA implementation
2020-04-05Merge pull request #3589 from ReinUsesLisp/fix-clearsFernando Sahmkow
gl_rasterizer: Mark cleared textures as dirty
2020-04-02Merge pull request #3552 from jroweboy/single-contextRodrigo Locatti
Refactor Context management (Fixes renderdoc on opengl issues)
2020-04-01shader_decompiler: Remove FragCoord.w hack and change IPA implementationReinUsesLisp
Credits go to gdkchan and Ryujinx. The pull request used for this can be found here: https://github.com/Ryujinx/Ryujinx/pull/1082 yuzu was already using the header for interpolation, but it was missing the FragCoord.w multiplication described in the linked pull request. This commit finally removes the FragCoord.w == 1.0f hack from the shader decompiler. While we are at it, this commit renames some enumerations to match Nvidia's documentation (linked below) and fixes component declaration order in the shader program header (z and w were swapped). https://github.com/NVIDIA/open-gpu-doc/blob/master/Shader-Program-Header/Shader-Program-Header.html
2020-04-01gl_texture_cache: Fix software ASTC fallbackReinUsesLisp
2020-04-01video_core: Use native ASTC when availableReinUsesLisp
2020-04-01gl_device: Detect if ASTC is reported and expose itReinUsesLisp
2020-03-31gl_rasterizer: Mark cleared textures as dirtyReinUsesLisp
Fixes a potential edge case where cleared textures read from the CPU were not flushed.
2020-03-31Merge pull request #3506 from namkazt/patch-9Rodrigo Locatti
shader_decode: Implement partial ATOM/ATOMS instr
2020-03-30gl_decompiler: min/max op not implement yetnamkazy
2020-03-30gl_decompiler: add atomic opNguyen Dac Nam
2020-03-25Address review and fix broken yuzu-tester buildJames Rowe
2020-03-26gl_rasterizer: Update stencil test regardless of it being disabledReinUsesLisp
2020-03-26gl_rasterizer: Synchronize stencil testing on clearsReinUsesLisp
2020-03-25Merge pull request #3520 from ReinUsesLisp/legacy-varyingsbunnei
gl_shader_decompiler: Implement legacy varyings
2020-03-24Frontend/GPU: Refactor context managementJames Rowe
Changes the GraphicsContext to be managed by the GPU core. This eliminates the need for the frontends to fool around with tricky MakeCurrent/DoneCurrent calls that are dependent on the settings (such as async gpu option). This also refactors out the need to use QWidget::fromWindowContainer as that caused issues with focus and input handling. Now we use a regular QWidget and just access the native windowHandle() directly. Another change is removing the debug tool setting in FrameMailbox. Instead of trying to block the frontend until a new frame is ready, the core will now take over presentation and draw directly to the window if the renderer detects that its hooked by NSight or RenderDoc Lastly, since it was in the way, I removed ScopeAcquireWindowContext and replaced it with a simple subclass in GraphicsContext that achieves the same result
2020-03-22gl_rasterizer: Use transformed viewport for depth rangesReinUsesLisp
Implement depth ranges using the transformed viewport instead of the generic one. This matches the current Vulkan implementation but doesn't support negative depth ranges. An update to glad is required for this.
2020-03-18gl_shader_decompiler: Remove deprecated function and its usagesReinUsesLisp
2020-03-18gl_rasterizer: Silence misc warningsReinUsesLisp
2020-03-18gl_shader_decompiler: Don't redeclare gl_VertexID and gl_InstanceIDReinUsesLisp
2020-03-17Merge pull request #3510 from FernandoS27/dirty-writeMat M
DirtyFlags: relax need to set render_targets as dirty
2020-03-17Merge pull request #3498 from ReinUsesLisp/texel-fetch-glslbunnei
gl_shader_decompiler: Add layer component to texelFetch
2020-03-16renderer_opengl: Move some logic to an anonymous namespaceReinUsesLisp
2020-03-16renderer_opengl: Detect Nvidia Nsight as a debugging toolReinUsesLisp
Use getenv to detect Nsight.