aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
AgeCommit message (Collapse)Author
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-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.
2020-03-15Merge pull request #3501 from ReinUsesLisp/rgba16-snormRodrigo Locatti
video_core: Implement RGBA16_SNORM
2020-03-15gl_shader_decompiler: Implement legacy varyingsReinUsesLisp
Legacy varyings are special attributes carried over in hardware from the OpenGL 1 and OpenGL 2 days. These were generally used instead of the generic attributes we use today. They are deprecated or removed from most APIs, but Nvidia still ships them in hardware. To implement these, this commit maps them 1:1 to OpenGL compatibility.
2020-03-14renderer_opengl: Keep presentation frames in lock-step when GPU debugging.bunnei
- Fixes renderdoc with OpenGL renderer.
2020-03-14gl_device: Add option to check GL_EXT_debug_tool.bunnei
2020-03-14DirtyFlags: relax need to set render_targets as dirty Fernando Sahmkow
The texture cache already takes care of setting a render target to dirty when invalidated.
2020-03-13vk/gl_shader_decompiler: Silence assertion on computeReinUsesLisp
2020-03-13gl_shader_decompiler: Fix implicit conversion errorsReinUsesLisp
2020-03-13shader/transform_feedback: Expose buffer strideReinUsesLisp
2020-03-13gl_rasterizer: Implement transform feedback bindingsReinUsesLisp
2020-03-13gl_shader_decompiler: Decorate output attributes with XFB layoutReinUsesLisp
We sometimes have to slice attributes in different parts. This is needed for example in instances where the game feedbacks 3 components but writes 4 from the shader (something that is possible with GL_NV_transform_feedback).
2020-03-13Merge branch 'master' into shader-purgeRodrigo Locatti