Mesa (master): freedreno: Clean up tests around ORing in the reloc flags.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri May 8 20:07:28 UTC 2020


Module: Mesa
Branch: master
Commit: e1c74f3facce57555284d23ee11bc009928806f1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1c74f3facce57555284d23ee11bc009928806f1

Author: Eric Anholt <eric at anholt.net>
Date:   Thu May  7 16:34:35 2020 -0700

freedreno: Clean up tests around ORing in the reloc flags.

gcc was surprisingly not seeing through this to just do an AND and an OR.
Improves drawoverhead's few uniforms / 1 change throughput 1.64141% +/-
0.188152% (n=60).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4957>

---

 src/freedreno/drm/msm_ringbuffer_sp.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/freedreno/drm/msm_ringbuffer_sp.c b/src/freedreno/drm/msm_ringbuffer_sp.c
index d8915707c79..ecb102f2535 100644
--- a/src/freedreno/drm/msm_ringbuffer_sp.c
+++ b/src/freedreno/drm/msm_ringbuffer_sp.c
@@ -152,12 +152,11 @@ append_bo(struct msm_submit_sp *submit, struct fd_bo *bo, uint32_t flags)
 		msm_bo->idx = idx;
 	}
 
-	if (flags & FD_RELOC_READ)
-		submit->submit_bos[idx].flags |= MSM_SUBMIT_BO_READ;
-	if (flags & FD_RELOC_WRITE)
-		submit->submit_bos[idx].flags |= MSM_SUBMIT_BO_WRITE;
-	if (flags & FD_RELOC_DUMP)
-		submit->submit_bos[idx].flags |= MSM_SUBMIT_BO_DUMP;
+	STATIC_ASSERT(FD_RELOC_READ == MSM_SUBMIT_BO_READ);
+	STATIC_ASSERT(FD_RELOC_WRITE == MSM_SUBMIT_BO_WRITE);
+	STATIC_ASSERT(FD_RELOC_DUMP == MSM_SUBMIT_BO_DUMP);
+	submit->submit_bos[idx].flags |=
+		flags & (MSM_SUBMIT_BO_READ | MSM_SUBMIT_BO_WRITE | MSM_SUBMIT_BO_DUMP);
 
 	return idx;
 }



More information about the mesa-commit mailing list