Skip to content
Snippets Groups Projects
  1. Jun 01, 2020
  2. May 31, 2020
    • Morph's avatar
      gl_device: Enable compute shaders for Intel proprietary drivers · bb8ef381
      Morph authored
      Previously we were disabling compute shaders on Intel's proprietary driver due to broken compute. This has been fixed in the latest Intel drivers. Re-enable compute for Intel proprietary drivers and remove the check for broken compute.
      bb8ef381
  3. May 30, 2020
  4. May 28, 2020
  5. May 27, 2020
  6. May 26, 2020
  7. May 22, 2020
  8. May 21, 2020
  9. May 19, 2020
    • 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
  10. May 18, 2020
  11. May 17, 2020
  12. May 16, 2020
  13. May 15, 2020
  14. May 13, 2020
    • ReinUsesLisp's avatar
      vk_rasterizer: Implement constant attributes · 91dddca2
      ReinUsesLisp authored
      Constant attributes (in OpenGL known disabled attributes) are not
      supported on Vulkan, even with extensions. To emulate this behavior we
      return zero on reads from disabled vertex attributes in shader code.
      This has no caching cost because attribute formats are not dynamic state
      on Vulkan and we have to store it in the pipeline cache anyway.
      
      - Fixes Animal Crossing: New Horizons terrain borders
      91dddca2
Loading