aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
AgeCommit message (Collapse)Author
2020-04-21Merge pull request #3714 from lioncash/copiesbunnei
gl_shader_decompiler: Avoid copies where applicable
2020-04-18Merge pull request #3716 from bunnei/fix-another-impl-fallthroughMat M
video_core: gl_shader_decompiler: Fix implicit fallthrough errors.
2020-04-18video_core: gl_shader_decompiler: Fix implicit fallthrough errors.bunnei
2020-04-17gl_shader_decompiler: Avoid copies where applicableLioncash
Avoids unnecessary reference count increments where applicable and also avoids reallocating a vector. Unlikely to make a huge difference, but given how trivial of an amendment it is, why not?
2020-04-17video_code: Fix implicit switch fallthrough.Markus Wick
Since yesterday, this breaks the build on linux. So let's fix it.
2020-04-17Revert "gl_shader_cache: Use CompileDepth::FullDecompile on GLSL"Rodrigo Locatti
2020-04-17Merge pull request #3682 from lioncash/uambunnei
gl_query_cache: Resolve use-after-move in CachedQuery move assignment operator
2020-04-16Merge pull request #3673 from lioncash/extrabunnei
CMakeLists: Specify -Wextra on linux builds
2020-04-16Merge pull request #3600 from ReinUsesLisp/no-pointer-buf-cacheFernando Sahmkow
buffer_cache: Return handles instead of pointer to handles
2020-04-16buffer_cache: Return handles instead of pointer to handlesReinUsesLisp
The original idea of returning pointers is that handles can be moved. The problem is that the implementation didn't take that in mind and made everything harder to work with. This commit drops pointer to handles and returns the handles themselves. While it is still true that handles can be invalidated, this way we get an old handle instead of a dangling pointer. This problem can be solved in the future with sparse buffers.
2020-04-15gl_query_cache: Resolve use-after-move in CachedQuery move assignment operatorLioncash
Avoids potential invalid junk data from being read.
2020-04-15gl_device: Mark stage_swizzle as constexprLioncash
Previously this was mutable even though it shouldn't be.
2020-04-15CMakeLists: Specify -Wextra on linux buildsLioncash
Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
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