Skip to content
Snippets Groups Projects
  1. Dec 25, 2019
  2. Dec 23, 2019
    • ReinUsesLisp's avatar
      fixed_pipeline_state: Define structure and loaders · 4a3026b1
      ReinUsesLisp authored
      The intention behind this hasheable structure is to describe the state
      of fixed function pipeline state that gets compiled to a single graphics
      pipeline state object. This is all dynamic state in OpenGL but Vulkan
      wants it in an immutable state, even if hardware can edit it freely.
      
      In this commit the structure is defined in an optimized state (it uses
      booleans, has paddings and many data entries that can be packed to
      single integers). This is intentional as an initial implementation that
      is easier to debug, implement and review. It will be optimized in later
      stages, or it might change if Vulkan gets more dynamic states.
  3. Nov 23, 2019
  4. Nov 14, 2019
  5. Nov 11, 2019
  6. Nov 08, 2019
  7. Oct 27, 2019
  8. Oct 25, 2019
  9. Oct 04, 2019
  10. Aug 21, 2019
    • ReinUsesLisp's avatar
      shader_ir: Implement VOTE · 4e35177e
      ReinUsesLisp authored
      Implement VOTE using Nvidia's intrinsics. Documentation about these can
      be found here
      https://developer.nvidia.com/reading-between-threads-shader-intrinsics
      
      Instead of using portable ARB instructions I opted to use Nvidia
      intrinsics because these are the closest we have to how Tegra X1
      hardware renders.
      
      To stub VOTE on non-Nvidia drivers (including nouveau) this commit
      simulates a GPU with a warp size of one, returning what is meaningful
      for the instruction being emulated:
      
      * anyThreadNV(value) -> value
      * allThreadsNV(value) -> value
      * allThreadsEqualNV(value) -> true
      
      ballotARB, also known as "uint64_t(activeThreadsNV())", emits
      
      VOTE.ANY Rd, PT, PT;
      
      on nouveau's compiler. This doesn't match exactly to Nvidia's code
      
      VOTE.ALL Rd, PT, PT;
      
      Which is emulated with activeThreadsNV() by this commit. In theory this
      shouldn't really matter since .ANY, .ALL and .EQ affect the predicates
      (set to PT on those cases) and not the registers.
      4e35177e
    • Fernando Sahmkow's avatar
      862bec00
  11. Jul 09, 2019
  12. Jul 06, 2019
  13. Jun 21, 2019
  14. Jun 07, 2019
  15. Jun 06, 2019
  16. Jun 05, 2019
  17. May 30, 2019
  18. Apr 22, 2019
  19. Apr 10, 2019
  20. Apr 08, 2019
  21. Apr 02, 2019
  22. Mar 29, 2019
  23. Mar 22, 2019
    • ReinUsesLisp's avatar
      video_core: Implement API agnostic view based texture cache · d708d03d
      ReinUsesLisp authored
      Implements an API agnostic texture view based texture cache. Classes
      defined here are intended to be inherited by the API implementation and
      used in API-specific code.
      
      This implementation exposes protected virtual functions to be called
      from the implementer.
      
      Before executing any surface copies methods (defined in API-specific code)
      it tries to detect if the overlapping surface is a superset and if it
      is, it creates a view. Views are references of a subset of a surface, it
      can be a superset view (the same as referencing the whole texture).
      Current code manages 1D, 1D array, 2D, 2D array, cube maps and cube map
      arrays with layer and mipmap level views. Texture 3D slices views are
      not implemented.
      
      If the view attempt fails, the fast path is invoked with the overlapping
      textures (defined in the implementer). If that one fails (returning
      nullptr) it will flush and reload the texture.
      d708d03d
  24. Mar 12, 2019
  25. Mar 07, 2019
  26. Mar 04, 2019
Loading