Mesa (staging/19.1): freedreno: Fix up end range of unaligned UBO loads.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Jun 28 08:18:42 UTC 2019
Module: Mesa
Branch: staging/19.1
Commit: e9660d3c3f2f671b0a29e53be3c49e80f8c1eac0
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e9660d3c3f2f671b0a29e53be3c49e80f8c1eac0
Author: Eric Anholt <eric at anholt.net>
Date: Thu Jun 6 14:27:13 2019 -0700
freedreno: Fix up end range of unaligned UBO loads.
We need the constants uploaded to cover the NIR offset plus the size,
not the aligned-down start of our upload range plus the size. Fixes
mistaken UBO analysis with mat3 loads.
Fixes: 893425a607a6 ("freedreno/ir3: Push UBOs to constant file")
Reviewed-by: Kristian H. Kristensen <hoegsberg at google.com>
Reviewed-by: Rob Clark <robdclark at gmail.com>
(cherry picked from commit 56842d33d53f3ea76b9359e8ead2ea4487e62dc1)
---
src/freedreno/ir3/ir3_nir_analyze_ubo_ranges.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/freedreno/ir3/ir3_nir_analyze_ubo_ranges.c b/src/freedreno/ir3/ir3_nir_analyze_ubo_ranges.c
index aaf962977b3..46216a6f862 100644
--- a/src/freedreno/ir3/ir3_nir_analyze_ubo_ranges.c
+++ b/src/freedreno/ir3/ir3_nir_analyze_ubo_ranges.c
@@ -32,10 +32,11 @@ get_ubo_load_range(nir_intrinsic_instr *instr)
{
struct ir3_ubo_range r;
+ const int offset = nir_src_as_uint(instr->src[1]);
const int bytes = nir_intrinsic_dest_components(instr) * 4;
- r.start = ROUND_DOWN_TO(nir_src_as_uint(instr->src[1]), 16 * 4);
- r.end = ALIGN(r.start + bytes, 16 * 4);
+ r.start = ROUND_DOWN_TO(offset, 16 * 4);
+ r.end = ALIGN(offset + bytes, 16 * 4);
return r;
}
More information about the mesa-commit
mailing list