1. 22 Jan, 2021 1 commit
  2. 18 Jan, 2021 1 commit
  3. 13 Jan, 2021 1 commit
  4. 08 Jan, 2021 1 commit
  5. 01 Dec, 2020 1 commit
  6. 05 Nov, 2020 1 commit
  7. 27 Oct, 2020 1 commit
  8. 20 Oct, 2020 1 commit
  9. 19 Oct, 2020 4 commits
    • Caio Marcelo de Oliveira Filho's avatar
    • Kenneth Graunke's avatar
      isl, anv, iris: Add a centralized helper to select MOCS based on usage · 02fe825a
      Kenneth Graunke authored
      On Gen12+, we can enable additional caches in certain usage situations.
      This routes that decision making to a central place in ISL, based on
      surface usage flags, and updates both drivers to use it.  (i965 doesn't
      need to change because it doesn't support Gen12.)
      We continue handling the "external" decision via an anv_mocs() wrapper
      for now, since we store that flag in anv_bo, which isl doesn't know
      about.  (We could introduce an ISL_SURF_USAGE_EXTERNAL, but I'm not
      actually sure that would be cleaner.)
      This patch should not have any functional nor performance effects, as
      we continue selecting the exact same MOCS values for now.
      Reviewed-by: Jason Ekstrand's avatarJason Ekstrand <jason@jlekstrand.net>
      Part-of: <!7104>
    • Jason Ekstrand's avatar
    • Jason Ekstrand's avatar
      anv: Bump the number of update-after-bind descriptors to 1M · dd1971c9
      Jason Ekstrand authored
      It's a bit hard to exactly map our implementation to the limits
      described by Vulkan.  The bindless surface handle in the extended
      message descriptors is 20 bits and it's an index into the table of
      RENDER_SURFACE_STATE structs that starts at bindless surface base
      address.  This means that we can have at must 1M surface states
      allocated at any given time.  Since most image views take two
      descriptors, this means we have a limit of about 500K image views.
      However, since we allocate surface states at vkCreateImageView time,
      this means our limit is actually something on the order of 500K image
      views allocated at any time.  The actual limit describe by Vulkan, on
      the other hand, is a limit of how many you can have in a descriptor set.
      Assuming anyone using 1M descriptors will be using the same image view
      twice a bunch of times (or a bunch of null descriptors), we can safely
      advertise a larger limit.  1M is what's required by D3D12, so let's
      advertise that.
      Closes: #3335
      Reviewed-by: Lionel Landwerlin's avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Part-of: <!7180>
  10. 15 Oct, 2020 2 commits
  11. 09 Oct, 2020 1 commit
  12. 08 Oct, 2020 2 commits
  13. 07 Oct, 2020 2 commits
  14. 06 Oct, 2020 3 commits
  15. 05 Oct, 2020 1 commit
    • Jason Ekstrand's avatar
      anv: Implement VK_EXT_transform_feedback on Gen7 · d82826ad
      Jason Ekstrand authored
      Things work a little different on Gen7 than they do on Gen8+.  In
      particular, SOBufferEnable lives in 3DSTATE_STREAMOUT but BufferPitch
      lives in 3DSTATE_SO_BUFFER.  This leaves us having to marshal data
      around a bit more than we did on Gen8.  Still, it's not too bad.
      Normally, I don't spend much time on Gen7 but XFB just became a hard
      requirement for DXVK so it stopped working for all our Haswell users.
      Let's get them happily playing their games again. 😸
      Closes: #3532
      Reviewed-by: Lionel Landwerlin's avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Part-of: <!6997>
  16. 02 Oct, 2020 2 commits
  17. 28 Sep, 2020 1 commit
    • Emma Anholt's avatar
      mesa: Promote Intel's simple logging façade for Android to util/ · 13ea7db7
      Emma Anholt authored
      I'm bringing up freedreno Vulkan on an Android phone, and my pains are
      exactly what Chad said when working on Intel's vulkan for Android in
      aa716db0 ("intel: Add simple logging façade for Android (v2)"):
          On Android, stdio goes to /dev/null. On Android, remote gdb is even
          more painful than the usual remote gdb. On Android, nothing works like
          you expect and debugging is hell. I need logging.
          This patch introduces a small, simple logging API that can easily wrap
          Android's API. On non-Android platforms, this logger does nothing
          fancy.  It follows the time-honored Unix tradition of spewing
          everything to stderr with minimal fuss.
          My goal here is not perfection. My goal is to make a minimal, clean API,
          that people hate merely a little instead of a lot, and that's good
          enough to let me bring up Android Vulkan.  And it needs to be fast,
          which means it must be small. No one wants to their game to mi...
  18. 16 Sep, 2020 1 commit
  19. 03 Sep, 2020 1 commit
    • Jason Ekstrand's avatar
      anv: Set alignments on UBO/SSBO root derefs · 21fbffc5
      Jason Ekstrand authored
      This doesn't really do anything for us today.  One day, I suppose we
      could use it to do something with wide loads with non-uniform offsets.
      The big reason to do this is to get better testing to make sure that NIR
      doesn't blow up on the deref paths.
      Part-of: <!6472>
  20. 02 Sep, 2020 3 commits
  21. 01 Sep, 2020 2 commits
    • Lionel Landwerlin's avatar
      anv: implement shareable timeline semaphores · 829699ba
      Lionel Landwerlin authored
      This implements timeline semaphores using a new type of dma-fence
      stored into drm-syncobjs. We use a thread to implement delayed
      v2: Drop cloning of temporary semaphores and just transfer their ownership (Jason)
          Drain queue when dealing with binary semaphore
          Ensure we don't submit to the thread as long as we don't need to
      v3: Use __u64 not uintptr_t for kernel pointers
          Fix commented code for INTEL_DEBUG=bat
          Set DRM_I915_GEM_EXECBUFFER_EXT_TIMELINE_FENCES in timeline fence execbuf extension
          Add new anv_queue_set_lost()
          Drop multi queue stuff meant for the fake multi queue patch
          Rework temporary syncobj handling
          Don't use syncobj when not available (DeviceWaitIdle/CreateDevice)
          Use ANV_MULTIALLOC
          And a few more tweaks...
      v4: Drop drained condition helper (Lionel)
          Fix missing EXEC_OBJECT_WRITE on BOs we want to wait on (Jason)
      v5: Add missing device->lost_reported in _anv_device_report_lost (Lionel)
          Fix missing free on submit->simple_bo (Lionel)
          Don't drop setting the device in lost state on QueueSubmit error (Jason)
          Store submit->fence_bos as an array of uintptr_t (Jason)
      v6: condition device->has_thread_submit to i915 & core DRM support (Jason)
      v7: Fix submit->in_fence leakage on error (Jason)
          Keep dummy semaphore with no thread submission (Jason)
      v8: Move ownership of submit->out_fence to submit (Jason)
      v9: Don't forget to read the VkFence's syncobj binary payload (Lionel)
      v10: Take the mutex lock on anv_gem_close() (Jason/Lionel)
      v11: Fix void* -> u64 cast on 32bit (Lionel)
      v12: Rebase after BO backed timeline semaphore (Lionel)
      v13: Fix missing snippets lost after rebase (Lionel)
      v14: Drop update_binary usage (Lionel)
      v15: Use ANV_MULTIALLOC (Lionel)
      v16: Fix some realloc issues (Ivan)
      Signed-off-by: Lionel Landwerlin's avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> (v8)
      Part-of: <!2901>
    • Lionel Landwerlin's avatar
      anv: add new gem/drm helpers · a965ffad
      Lionel Landwerlin authored
      Needed for dealing with the new DRM timeline syncobj ioctls.
      v2: Make use of the anv_gem_get_drm_cap() parameter... (Jason)
      Signed-off-by: Lionel Landwerlin's avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Reviewed-by: Jason Ekstrand's avatarJason Ekstrand <jason@jlekstrand.net>
      Part-of: <!2901>
  22. 18 Aug, 2020 1 commit
  23. 07 Aug, 2020 1 commit
  24. 06 Aug, 2020 1 commit
  25. 04 Aug, 2020 1 commit
  26. 03 Aug, 2020 1 commit
  27. 02 Aug, 2020 1 commit
  28. 21 Jul, 2020 1 commit