1. 07 Mar, 2018 1 commit
  2. 05 Mar, 2018 1 commit
  3. 28 Feb, 2018 2 commits
  4. 27 Feb, 2018 1 commit
  5. 21 Feb, 2018 2 commits
    • Jason Ekstrand's avatar
      anv/image: Add support for modifiers for WSI · c757fd28
      Jason Ekstrand authored
      This adds support for the modifiers portion of the WSI "extension".
      Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      c757fd28
    • Jason Ekstrand's avatar
      anv/image: Separate modifiers from legacy scanout · adca1e4a
      Jason Ekstrand authored
      For a bit there, we had a bug in i965 where it ignored the tiling of the
      modifier and used the one from the BO instead.  At one point, we though
      this was best fixed by setting a tiling from Vulkan.  However, we've
      decided that i965 was just doing the wrong thing and have fixed it as of
      50485723.
      
      The old assumptions also affected the solution we used for legacy
      scanout in Vulkan.  Instead of treating it specially, we just treated it
      like a modifier like we do in GL.  This commit goes back to making it
      it's own thing so that it's clear in the driver when we're using
      modifiers and when we're using legacy paths.
      
      v2 (Jason Ekstrand):
       - Rename legacy_scanout to needs_set_tiling
      Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      adca1e4a
  6. 20 Feb, 2018 4 commits
  7. 16 Feb, 2018 2 commits
  8. 09 Feb, 2018 5 commits
    • Jason Ekstrand's avatar
      anv/cmd_buffer: Rework aux tracking · de3be618
      Jason Ekstrand authored
      This commit completely reworks aux tracking.  This includes a number of
      somewhat distinct changes:
      
       1) Since we are no longer fast-clearing multiple slices, we only need
          to track one fast clear color and one fast clear type.
      
       2) We store two bits for fast clear instead of one to let us
          distinguish between zero and non-zero fast clear colors.  This is
          needed so that we can do full resolves when transitioning to
          PRESENT_SRC_KHR with gen9 CCS images where we allow zero clear
          values in all sorts of places we wouldn't normally.
      
       3) We now track compression state as a boolean separate from fast clear
          type and this is tracked on a per-slice granularity.
      
      The previous scheme had some issues when it came to individual slices of
      a multi-LOD images.  In particular, we only tracked "needs resolve"
      per-LOD but you could do a vkCmdPipelineBarrier that would only resolve
      a portion of the image and would set "needs resolve" to false anyway.
      Also, any transition from an undefined layout would reset the clear
      color for the entire LOD regardless of whether or not there was some
      clear color on some other slice.
      
      As far as full/partial resolves go, he assumptions of the previous
      scheme held because the one case where we do need a full resolve when
      CCS_E is enabled is for window-system images.  Since we only ever
      allowed X-tiled window-system images, CCS was entirely disabled on gen9+
      and we never got CCS_E.  With the advent of Y-tiled window-system
      buffers, we now need to properly support doing a full resolve of images
      marked CCS_E.
      
      v2 (Jason Ekstrand):
       - Fix an bug in the compressed flag offset calculation
       - Treat 3D images as multi-slice for the purposes of resolve tracking
      
      v3 (Jason Ekstrand):
       - Set the compressed flag whenever we fast-clear
       - Simplify the resolve predicate computation logic
      Reviewed-by: Topi Pohjolainen's avatarTopi Pohjolainen <topi.pohjolainen@intel.com>
      Reviewed-by: Nanley Chery's avatarNanley Chery <nanley.g.chery@intel.com>
      de3be618
    • Jason Ekstrand's avatar
      anv/cmd_buffer: Add a mark_image_written helper · 571ed588
      Jason Ekstrand authored
      Currently, this helper does nothing but we call it every place where an
      image is written through the render pipeline.  This will allow us to
      properly mark the aux state so that we can handle resolves correctly.
      Reviewed-by: Topi Pohjolainen's avatarTopi Pohjolainen <topi.pohjolainen@intel.com>
      Reviewed-by: Nanley Chery's avatarNanley Chery <nanley.g.chery@intel.com>
      571ed588
    • Jason Ekstrand's avatar
      anv/image: Add a helper for determining when fast clears are supported · b09464db
      Jason Ekstrand authored
      v2 (Jason Ekstrand):
       - Return an enum instead of a boolean
      
      v3 (Jason Ekstrand):
       - Return ANV_FAST_CLEAR_NONE instead of false (Topi)
       - Rename ANV_FAST_CLEAR_ANY to ANV_FAST_CLEAR_DEFAULT_VALUE
       - Add documentation for the enum values
      
      v4 (Jason Ekstrand):
       - Remove a dead comment
      Reviewed-by: Topi Pohjolainen's avatarTopi Pohjolainen <topi.pohjolainen@intel.com>
      Reviewed-by: Nanley Chery's avatarNanley Chery <nanley.g.chery@intel.com>
      b09464db
    • Jason Ekstrand's avatar
    • Jason Ekstrand's avatar
      anv/blorp: Rework image clear/resolve helpers · 42f1668a
      Jason Ekstrand authored
      This replaces image_fast_clear and ccs_resolve with two new helpers that
      simply perform an isl_aux_op whatever that may be on CCS or MCS.  This
      is a bit cleaner as it separates performing the aux operation from which
      blorp helper we have to call to do it.
      Reviewed-by: Topi Pohjolainen's avatarTopi Pohjolainen <topi.pohjolainen@intel.com>
      Reviewed-by: Nanley Chery's avatarNanley Chery <nanley.g.chery@intel.com>
      42f1668a
  9. 26 Jan, 2018 5 commits
  10. 24 Jan, 2018 10 commits
  11. 23 Jan, 2018 7 commits