Skip to content
Snippets Groups Projects
  1. Apr 25, 2018
  2. Apr 24, 2018
  3. Mar 18, 2018
  4. Mar 17, 2018
  5. Feb 12, 2018
  6. Jan 13, 2018
  7. Oct 15, 2017
  8. Oct 04, 2017
  9. Sep 23, 2017
  10. Sep 11, 2017
    • James Rowe's avatar
      GPU: Add draw for immediate and batch modes · ad0b57f4
      James Rowe authored
      PR #1461 introduced a regression where some games would change configuration
      even while in the poorly named "drawing" mode, which broke the heuristic
      citra was using to determine when to draw the batch. This change adds
      back in a draw call for batching, and also adds in a draw call in
      immediate mode each time it adds a triangle.
      ad0b57f4
  11. Aug 19, 2017
    • wwylele's avatar
      pica/command_processor: build geometry pipeline and run geometry shader · 0f357555
      wwylele authored
      The geometry pipeline manages data transfer between VS, GS and primitive assembler. It has known four modes:
       - no GS mode: sends VS output directly to the primitive assembler (what citra currently does)
       - GS mode 0: sends VS output to GS input registers, and sends GS output to primitive assembler
       - GS mode 1: sends VS output to GS uniform registers, and sends GS output to primitive assembler. It also takes an index from the index buffer at the beginning of each primitive for determine the primitive size.
       - GS mode 2: similar to mode 1, but doesn't take the index and uses a fixed primitive size.
      hwtest shows that immediate mode also supports GS (at least for mode 0), so the geometry pipeline gets refactored into its own class for supporting both drawing mode.
      In the immediate mode, some games don't set the pipeline registers to a valid value until the first attribute input, so a geometry pipeline reset flag is set in `pipeline.vs_default_attributes_setup.index` trigger, and the actual pipeline reconfigure is triggered in the first attribute input.
      In the normal drawing mode with index buffer, the vertex cache is a little bit modified to support the geometry pipeline. Instead of OutputVertex, it now holds AttributeBuffer, which is the input to the geometry pipeline. The AttributeBuffer->OutputVertex conversion is done inside the pipeline vertex handler. The actual hardware vertex cache is believed to be implemented in a similar way (because this is the only way that makes sense).
      Both geometry pipeline and GS unit rely on states preservation across drawing call, so they are put into the global state. In the future, the other three vertex shader units should be also placed in the global state, and a scheduler should be implemented on top of the four units. Note that the current gs_unit already allows running VS on it in the future.
      0f357555
  12. Aug 07, 2017
  13. May 20, 2017
  14. May 17, 2017
  15. May 12, 2017
    • Jannik Vogel's avatar
      Pica: Write GS registers · ba722be2
      Jannik Vogel authored
      This adds the handlers for the geometry shader register writes which will call the functions from the previous commit to update registers for the GS.
      ba722be2
    • Jannik Vogel's avatar
      Pica: Write shader registers in functions · 3fd3775d
      Jannik Vogel authored
      The commit after this one adds GS register writes, so this moves the VS handlers into functions so they can be re-used and extended more easily.
      3fd3775d
  16. Feb 09, 2017
  17. Feb 04, 2017
  18. Jan 30, 2017
  19. Jan 26, 2017
  20. Dec 16, 2016
  21. Dec 15, 2016
Loading