1. 03 Aug, 2021 2 commits
  2. 29 Apr, 2021 1 commit
  3. 24 Dec, 2020 1 commit
  4. 16 Dec, 2019 1 commit
    • Iago Toral's avatar
      v3d: fix primitive queries for geometry shaders · a1b7c084
      Iago Toral authored
      
      
      With geometry shaders the number of emitted primitived is decided
      at run time, so we cannot precompute it in the CPU and we need to
      use the PRIMITIVE_COUNTS_FEEDBACK commands to have the GPU provide
      the number like we do for the number of primitives written to
      transform feedback. This may have a performance impact though, since
      it requires a sync wait for the draw to complete, so we only do
      it when geometry shaders are present.
      
      v2: remove '> 0' comparison for ponter type (Alejandro)
      Reviewed-by: Alejandro Piñeiro's avatarAlejandro Piñeiro <apinheiro@igalia.com>
      a1b7c084
  5. 08 Aug, 2019 3 commits
    • Iago Toral's avatar
    • Iago Toral's avatar
      v3d: use the GPU to record primitives written to transform feedback · 0f2d1dfe
      Iago Toral authored
      
      
      We can use the PRIMITIVE_COUNTS_FEEDBACK packet to write various primitive
      counts to a buffer, including the number of primives written to transform
      feedback buffers, which will handle buffer overflow correctly.
      
      There are a couple of caveats with this:
      
      Primitive counters are reset when we emit a 'Tile Binning Mode Configuration'
      packet, which can happen in the middle of a primitives query, so we need to
      read the buffer when we submit a job and accumulate the counts in the context
      so we don't lose them.
      
      We also need to do the same when we switch primitive type during transform
      feedback so we can compute the correct number of recorded vertices from
      the number of primitives. This is necessary so we can provide an accurate
      vertex count for draw from transform feedback.
      
      v2:
       - When computing the number of vertices for a primitive, pass in the base
         primitive, since that is what the hardware will count.
       - No need to update primitive counts when switching primitive types if
         the base primitives are the same.
       - Log perf warning when mapping the primitive counts BO for readback (Eric).
       - Only emit the primitive counts packet once at job end (Eric).
       - Use u_upload mechanism for the primitive counts buffer (Eric).
       - Use the XML to generate indices into the primitive counters buffer (Eric).
      
      Fixes piglit tests:
      spec/ext_transform_feedback/overflow-edge-cases
      spec/ext_transform_feedback/query-primitives_written-bufferrange
      spec/ext_transform_feedback/query-primitives_written-bufferrange-discard
      spec/ext_transform_feedback/change-size base-shrink
      spec/ext_transform_feedback/change-size base-grow
      spec/ext_transform_feedback/change-size offset-shrink
      spec/ext_transform_feedback/change-size offset-grow
      spec/ext_transform_feedback/change-size range-shrink
      spec/ext_transform_feedback/change-size range-grow
      spec/ext_transform_feedback/intervening-read prims-written
      Reviewed-by: Emma Anholt's avatarEric Anholt <eric@anholt.net>
      0f2d1dfe
    • Iago Toral's avatar
      9eb8699e
  6. 23 Jul, 2019 1 commit
  7. 18 Jun, 2019 1 commit
  8. 16 May, 2018 2 commits
  9. 27 Mar, 2018 1 commit
  10. 07 Nov, 2017 2 commits
  11. 10 Oct, 2017 1 commit
    • Emma Anholt's avatar
      broadcom: Add V3D 3.3 gallium driver called "vc5", for BCM7268. · 45bb8f29
      Emma Anholt authored
      V3D 3.3 is a continuation of the 3D implementation in VC4 (v2.1 and v2.6).
      V3D 3.3 introduces an MMU (no more CMA allocations) and support for
      GLES3.1.  This driver is not currently conformant, though that will be a
      target as soon as possible.
      
      V3D 3.x parts use a new texture tiling layout common across many Broadcom
      graphics parts including and the HVS scanout engine.  It also massively
      changes the QPU instructions, introducing a common physical register file
      (no more A/B split) and half-float instructions, while removing the 4x8
      unorm instructions in favor of half-float for talking to fixed function
      interfaces.  Because so much has changed, vc5 is implemented in a separate
      gallium driver, using only the XML code-generation support from vc4.
      
      v2: Fix tile layout for 64bpp textures.  Fix texture swizzling for 32-bit
          returns.  Fix up a bit of MRT setup.  Sync the simulator to kernel
          behavior a bit more.  Improve uniform debugging code.  Rebase on
          QIR->VIR rename.  Move texture state mostly to the CSOs.  Improve
          cache flushing on the simulator.  Fix program deletion
          use-after-frees.
      
      Acked-by: Dave Airlie <airlied@gmail.com> (uabi plan)
      Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> (uabi plan)
      45bb8f29
  12. 22 Apr, 2016 1 commit
  13. 12 Apr, 2016 1 commit
  14. 28 May, 2015 1 commit
  15. 29 Sep, 2014 1 commit
    • Emma Anholt's avatar
      vc4: Add the necessary stubs for occlusion queries. · b65761f7
      Emma Anholt authored
      We have to expose them for GL 2.0, but we just always return a value of 0.
      We should be advertising 0 query bits instead of 64, but gallium doesn't
      have plumbing for that yet.  At least this stops the segfaults.
      b65761f7