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

Author: Eric Anholt <[email protected]>
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;
 }

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to