URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cbd6e5f2e592a9834a03004a473537f25aea4336
Author: Rob Clark <[email protected]>
Date: Wed Apr 28 08:37:59 2021 -0700
freedreno/ci: Skip texsubmimage cube_map_array
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1d19325483a58faccba9da2d8dc2e927f5c9540f
Author: Rob Clark <[email protected]>
Date: Wed Apr 28 07:19:13 2021 -0700
freedreno/ci: Disable counterstrike trace on a306 for now
The combination of removing bottlenecks in userspace (userspace fences,
etc) and slow GPU results in hitting full ringbuffer on a306. Haven't
figured out a reasonable way to work around that in userspace until a
kernel fix is in place, so disable this one for now.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f92f31455a45e49354d083da088a8e17cef8bf11
Author: Rob Clark <[email protected]>
Date: Tue Apr 20 08:57:54 2021 -0700
freedreno/drm: Assume explicit fences if in_fence_fd
If we ever see explicit fencing used, then we can disable implicit
fencing, even for internal or unfenced batches.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e9a9ac6f77fe876b84edfb638c3075d6a149c812
Author: Rob Clark <[email protected]>
Date: Mon Apr 19 15:20:15 2021 -0700
freedreno/drm: Async submit support
Move the submit ioctl to it's own thread to unblock the driver thread
and let it move on to the next frame.
Note that I did experiment with doing the append_bo() parts
synchronously on the theory that we should be more likely to hit the
fast path if we did that part of submit merging before the bo was
potentially re-used in the next batch/submit. It helped some things
by a couple percent, but hurt more things.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2c9e8db28d3572db7aedf89dc693dd8987d357ab
Author: Rob Clark <[email protected]>
Date: Thu Apr 22 16:17:17 2021 -0700
freedreno/drm: pipe should hold reference to device
A more direct solution would be for bo's to have a reference to the
device. But bo's are ref/unrefd more frequently.
This avoids async submits unrefing a bo after the device handle-
table is freed.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ad9654a4c153c6dbe93ce9b8459837a9c008a138
Author: Rob Clark <[email protected]>
Date: Thu Apr 22 08:02:49 2021 -0700
freedreno/drm: fd_submit should hold ref to fd_pipe
Also, move this into the base class, no reason for it to be in backend.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=55eb75d3e6d70f6ebbe973679867aa7001479e83
Author: Rob Clark <[email protected]>
Date: Sat Apr 17 12:56:58 2021 -0700
freedreno: Avoid flushing deferred submits for u_trace
This is a bit ugly, but with userspace fences and deferred submits it is
better to poll until the timestamp buffer is ready. Otherwise we could
be triggering deferred submits to flush sooner than they normally would,
changing the behavior of what we are trying to measure.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cccdc513e3ee58b4119e9686c3086b606500d6a9
Author: Rob Clark <[email protected]>
Date: Sat Apr 17 12:51:02 2021 -0700
freedreno/drm/sp: Implement deferred submit merging
For submits flushed with (a) no required fence, and (b) no externally
visible effects (ie. imported/exported bo), we can defer flushing the
submit and merge it into a later submit.
This is a bit more work in userspace, but it cuts down the number of
submit ioctls. And a common case is that later submits overlap in the
bo's used (for example, blit upload to a buffer, which is then used in
the following draw pass), so it reduces the net amount of work needed
to be done in the kernel to handle the submit ioctl.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/19
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c7dc5cf3cb3b9f4c73d51f234e3c09dc4eca22a5
Author: Rob Clark <[email protected]>
Date: Sat Apr 17 12:09:42 2021 -0700
freedreno/drm/sp: Split submit prep and finish
For deferred submits, we still need to do the prep steps immediately,
but the ioctl construction can be deferred.. prepare for that by
splitting the prep out.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=62a6773d804977ff9d4589d075838eedfba87413
Author: Rob Clark <[email protected]>
Date: Sat Apr 17 11:37:06 2021 -0700
freedreno/drm: Add pipe tracking for deferred submits
Now that we have some bo state tracking for userspace fences, we can
build on this to add a way for the pipe implementation to defer a submit
flush in order to merge submits into a single ioctl.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=aafcd8aacb8feda179017ba9064272ff6573a78e
Author: Rob Clark <[email protected]>
Date: Mon Apr 19 13:03:21 2021 -0700
freedreno: Re-work fd_submit fence interface
Move everything into a struct assocated with the pipe_fence_handle, so
that the drm layer can fill in the seqn/fd fences directly.
This will give us a comvenient place to insert a util_queue_fence in the
next commit.
While we're at it, extract the uint32_t fence (previously called
'timestamp' in place, a kgsl legacy) into a struct that encapsulates
both the kernel fence and the userspace fence.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d531c8d22a52fa08209069c70dbaf6650682a24e
Author: Rob Clark <[email protected]>
Date: Sat Apr 17 11:23:27 2021 -0700
freedreno/drm: Reference count submits
To merge submits, we'll need drm to internally hold an extra reference
to the submit.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9cb264f966cecbe4aa1e9373c9104dd374475db5
Author: Rob Clark <[email protected]>
Date: Wed Apr 21 13:45:57 2021 -0700
freedreno: Drop unused create_fence() arg
It was always zero.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7f4b85c7cfdd089128e75ef31ca38ae26fed2517
Author: Rob Clark <[email protected]>
Date: Mon Apr 19 11:43:02 2021 -0700
freedreno: Move fence struct to header
Just a bit of code-motion to prep for later patches.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c3f4835b99cfb6bb1fa677a6a86debbaeb590101
Author: Rob Clark <[email protected]>
Date: Sun Apr 18 15:29:32 2021 -0700
freedreno: last_fence optimization for TC async flushes
Without deferred flushes, we would track the last_fence any time when
there had be no rendering/etc since the last flush, to avoid creating
empty batches simply for the purpose of getting a fence. We can do the
same thing with deferred flushes, where the fence is created from the
frontend thread before we know what will be flushed, by repopulating
the pre-created fence.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=807bfa6be8915b44032d77c8ea74fe3ca9a658dc
Author: Rob Clark <[email protected]>
Date: Sat Apr 17 11:15:50 2021 -0700
freedreno/batch: Don't create fences for every batch
We only need fences for batches flushed via pctx->flush(). This will
serve as a useful signal about submits that can be merged.
v2. disable this optimization pre-a6xx until I can debug issues that
submit merging exposes
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=49852ace2a734dde8f157769a841f15892361b11
Author: Rob Clark <[email protected]>
Date: Mon Apr 26 13:39:04 2021 -0700
freedreno/drm: Inline the fence-table
In the common case, a bo will have no more than a single fence attached.
We can inline the storage to avoid a separate allocation in this case.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7dabd62464982e545a094f22d9ca23a77730c536
Author: Rob Clark <[email protected]>
Date: Wed Apr 21 09:37:05 2021 -0700
freedreno/drm: Userspace fences
Add a per-fd_pipe fence "timeline" so we can detect cases where we don't
need to call into the kernel to determine if a fd_bo is still busy.
This reuses table_lock, rather than introducing a per-bo lock to protect
fence state updates because (a) the common / hotpath pattern is to
update fences on a lot of objects, but checking the fence state of a
single object is less common, and (b) because we already hold the table
lock in common spots where we need to check the bo's fence state (ie.
allocations from the bo-cache).
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=df78934cdf98c399b217d58f73c1d8d876f1585b
Author: Rob Clark <[email protected]>
Date: Thu Apr 22 13:30:35 2021 -0700
freedreno/drm: Add locked version fd_{bo,pipe}_del()
This will be needed in the next patch, so we can reuse the bo table_lock
for fence related locking.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8f5c89350f0b3becb1ae525b35e497559927c382
Author: Rob Clark <[email protected]>
Date: Thu Apr 22 11:25:11 2021 -0700
freedreno/drm: Move the growable array helper
We'll need this to track userspace fences attached to a fd_bo.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c98ada6ad122e218136fa73f3fce9f3430d8a3c8
Author: Rob Clark <[email protected]>
Date: Thu Apr 22 15:17:37 2021 -0700
freedreno/drm: Add FD_BO_PREP_FLUSH
There are a couple cases where we want to use _NOSYNC, but at the same
time we want to ensure that rendering related to a bo is actually
flushed.
This doesn't do anything yet, but when we start deferring/merging
submits we'll need a way to trigger anything deferred to flush.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8ab227c3738b30357799130ebe4587222b8c91f7
Author: Rob Clark <[email protected]>
Date: Thu Apr 22 15:11:46 2021 -0700
freedreno/drm: Cleanup bo cpu_prep flags
Also add some STATIC_ASSERT()
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7f0abd9048b6fbe54a500cbe89ebdf749877113c
Author: Rob Clark <[email protected]>
Date: Thu Apr 22 11:09:56 2021 -0700
freedreno/drm: Cleanup bo allocation flags
Most of them were actually unused. The memory type (KMEM vs SMI) only
applied to very old a2xx era devices that had a small/fast stacked
memory (SMI) vs normal memory (KMEM). And the cache flags are ignored
(ie. everything is writecombine), but we can add new cache flags later
when they actually do something.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ef0c5007f25786619f2fd20277419def613a7c25
Author: Rob Clark <[email protected]>
Date: Wed Apr 21 09:22:14 2021 -0700
freedreno/drm: Move submit->primary to base class
Gets rid of a bit of duplication between the two current
implementations, and will be needed in next patch.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c64bc095e715b744991621c4ae4ae1a379fcafde
Author: Rob Clark <[email protected]>
Date: Mon Apr 19 11:07:15 2021 -0700
freedreno: Allow resource shadowing for TC
TC_TRANSFER_MAP_NO_INVALIDATE just means we can't invalidate. It
doesn't preclude the resource shadow path.
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ecd4793d6cb673ac44d9f959e9a150b72a7b993c
Author: Rob Clark <[email protected]>
Date: Mon Apr 19 11:05:57 2021 -0700
freedreno: Add a couple debug traces
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a8d43028251100c750674a64c0f34e7d7761d159
Author: Rob Clark <[email protected]>
Date: Wed Apr 21 19:28:31 2021 -0700
freedreno: Make sure we actually flush if we need a fence
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cb058a89223295db91382fffc1f1d4ae24f1c076
Author: Rob Clark <[email protected]>
Date: Fri Apr 23 16:47:47 2021 -0700
freedreno: Avoid staging blits with stencil on older gens
This avoids infinite recursion with fallback to
util_resource_copy_region()
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=224dbd77d5d3e8bce890a3906466b0e0790f3ae0
Author: Rob Clark <[email protected]>
Date: Sat Apr 24 13:11:48 2021 -0700
freedreno: Small indent fix
Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit