1. 26 May, 2020 3 commits
    • ReinUsesLisp's avatar
      gl_rasterizer: Port front face flip check from Vulkan · 606a62d4
      ReinUsesLisp authored
      While Vulkan was assuming we had no negative viewports, OpenGL code
      was assuming we had them. Port the old code from Vulkan to OpenGL,
      checking if the first viewport is negative before flipping faces.
      
      This is not a complete implementation since we only check for the first
      viewport to be negative. That said, unless a game is using Vulkan,
      OpenGL and NVN games should be fine here, and we can always compare with
      our Vulkan backend to see if there's a difference.
      606a62d4
    • ReinUsesLisp's avatar
      fixed_pipeline_state: Remove unnecessary check for front faces flip · efe7b748
      ReinUsesLisp authored
      The check to flip faces when viewports are negative were a left over
      from the old OpenGL code. This is not required on Vulkan where we have
      negative viewports.
      efe7b748
    • bunnei's avatar
      Merge pull request #3978 from ReinUsesLisp/write-rz · 86345c12
      bunnei authored
      shader_decompiler: Visit source nodes even when they assign to RZ
      86345c12
  2. 24 May, 2020 4 commits
  3. 22 May, 2020 5 commits
  4. 21 May, 2020 8 commits
  5. 20 May, 2020 1 commit
  6. 19 May, 2020 3 commits
    • ReinUsesLisp's avatar
      renderer_opengl: Add assembly program code paths · 420cc132
      ReinUsesLisp authored
      Add code required to use OpenGL assembly programs based on
      NV_gpu_program5. Decompilation for ARB programs is intended to be added
      in a follow up commit. This does **not** include ARB decompilation and
      it's not in an usable state.
      
      The intention behind assembly programs is to reduce shader stutter
      significantly on drivers supporting NV_gpu_program5 (and other required
      extensions). Currently only Nvidia's proprietary driver supports these
      extensions.
      
      Add a UI option hidden for now to avoid people enabling this option
      accidentally.
      
      This code path has some limitations that OpenGL compatibility doesn't
      have:
      - NV_shader_storage_buffer_object is limited to 16 entries for a single
      OpenGL context state (I don't know if this is an intended limitation, an
      specification issue or I am missing something). Currently causes issues
      on The Legend of Zelda: Link's Awakening.
      - NV_parameter_buffer_object can't bind buffers using an offset
      different to zero. The used workaround is to copy to a temporary buffer
      (this doesn't happen often so it's not an issue).
      
      On the other hand, it has the following advantages:
      - Shaders build a lot faster.
      - We have control over how floating point rounding is done over
      individual instructions (SPIR-V on Vulkan can't do this).
      - Operations on shared memory can be unsigned and signed.
      - Transform feedbacks are dynamic state (not yet implemented).
      - Parameter buffers (uniform buffers) are per stage, matching NVN and
      hardware's behavior.
      - The API to bind and create assembly programs makes sense, unlike
      ARB_separate_shader_objects.
      420cc132
    • ReinUsesLisp's avatar
      yuzu: Add frontend settings for assembly shaders · 47a7c4f4
      ReinUsesLisp authored
      Add settings for assembly shaders. Currently hidden to avoid users from
      accidentally enabled them.
      47a7c4f4
    • bunnei's avatar
      Merge pull request #3926 from ogniK5377/keyboard-states · cf4ee279
      bunnei authored
      hid: Clear keyboard states & fix logic issue
      cf4ee279
  7. 16 May, 2020 7 commits
  8. 15 May, 2020 2 commits
  9. 14 May, 2020 3 commits
  10. 13 May, 2020 1 commit
  11. 12 May, 2020 3 commits