Module: Mesa
Branch: staging/20.0
Commit: 8191b916955ae1ab72f013b1505ee701e08beb99
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8191b916955ae1ab72f013b1505ee701e08beb99

Author: Eric Anholt <[email protected]>
Date:   Fri Apr 17 10:45:17 2020 -0700

freedreno: Fix calculation of the const buffer cmdstream size.

The HW packet requires padding the number of pointers you emit, and we
would assertion fail about running out of buffer space if the number of
UBOs to be uploaded was odd.

Fixes: b4df115d3f3c ("freedreno/a6xx: pre-calculate userconst stateobj size")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4621>
(cherry picked from commit 69c8dfd49f565283f599b3be9af3f1327ea78803)

---

 .pick_status.json                                | 2 +-
 src/gallium/drivers/freedreno/a6xx/fd6_program.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index bb929589dde..eb657f4a04d 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -535,7 +535,7 @@
         "description": "freedreno: Fix calculation of the const buffer 
cmdstream size.",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": "b4df115d3f3c7e5a1f6105c3737d0fe9a80dfcf2"
     },
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_program.c 
b/src/gallium/drivers/freedreno/a6xx/fd6_program.c
index 96bed761579..4411357ffa2 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_program.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_program.c
@@ -1030,7 +1030,7 @@ fd6_shader_state_create(struct pipe_context *pctx, const 
struct pipe_shader_stat
 
        /* also account for UBO addresses: */
        packets += 1;
-       size += 2 * shader->const_state.num_ubos;
+       size += 2 * align(shader->const_state.num_ubos, 2);
 
        unsigned sizedwords = (4 * packets) + size;
        shader->ubo_state.cmdstream_size = sizedwords * 4;

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

Reply via email to