Module: Mesa Branch: master Commit: 129d390bd8cc50f55b748ae6e95bed8c6074a488 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=129d390bd8cc50f55b748ae6e95bed8c6074a488
Author: Alyssa Rosenzweig <[email protected]> Date: Thu Dec 31 09:57:37 2020 -0500 pan/mdg: Fix bound setting in RA for sources The bound parameter allows us to prevent allocations from crossing particular boundaries (typically 128-bit boundaries). For 16-bit, we don't want to cross 64-bit boundaries, in order to keep swizzles possible to encode. We already handle this for 16-bit destinations, but it _also_ needs to be (redundantly) handled for 16-bit sources, in case types don't match (for example, with a vectorized size conversion instruction). Fixes a few newer dEQP fails. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8282> --- .gitlab-ci/deqp-panfrost-t720-fails.txt | 8 -------- .gitlab-ci/deqp-panfrost-t760-fails.txt | 8 -------- .gitlab-ci/deqp-panfrost-t860-fails.txt | 8 -------- src/panfrost/midgard/midgard_ra.c | 6 ++++++ 4 files changed, 6 insertions(+), 24 deletions(-) diff --git a/.gitlab-ci/deqp-panfrost-t720-fails.txt b/.gitlab-ci/deqp-panfrost-t720-fails.txt index 940b0a7164e..97c764f4ea4 100644 --- a/.gitlab-ci/deqp-panfrost-t720-fails.txt +++ b/.gitlab-ci/deqp-panfrost-t720-fails.txt @@ -47,11 +47,3 @@ dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.62,Fail dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.73,Fail dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.81,Fail dEQP-GLES2.functional.fragment_ops.random.43,Fail -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_loop_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_loop_read_vertex,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_read_vertex,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_loop_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_loop_read_vertex,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_read_vertex,Crash \ No newline at end of file diff --git a/.gitlab-ci/deqp-panfrost-t760-fails.txt b/.gitlab-ci/deqp-panfrost-t760-fails.txt index 262eeb06dfe..e69de29bb2d 100644 --- a/.gitlab-ci/deqp-panfrost-t760-fails.txt +++ b/.gitlab-ci/deqp-panfrost-t760-fails.txt @@ -1,8 +0,0 @@ -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_loop_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_loop_read_vertex,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_read_vertex,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_loop_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_loop_read_vertex,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_read_vertex,Crash \ No newline at end of file diff --git a/.gitlab-ci/deqp-panfrost-t860-fails.txt b/.gitlab-ci/deqp-panfrost-t860-fails.txt index fc0d7e088f3..a17561c17fa 100644 --- a/.gitlab-ci/deqp-panfrost-t860-fails.txt +++ b/.gitlab-ci/deqp-panfrost-t860-fails.txt @@ -12,13 +12,5 @@ dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_dst_x,Fa dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_dst_y,Fail dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_x,Fail dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_y,Fail -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_loop_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_loop_read_vertex,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.float_const_write_dynamic_read_vertex,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_loop_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_loop_read_vertex,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_read_fragment,Crash -dEQP-GLES2.functional.shaders.indexing.tmp_array.vec2_const_write_dynamic_read_vertex,Crash dEQP-GLES3.functional.shaders.matrix.inverse.dynamic.lowp_mat2_float_vertex,Fail dEQP-GLES3.functional.shaders.matrix.inverse.dynamic.mediump_mat2_float_vertex,Fail diff --git a/src/panfrost/midgard/midgard_ra.c b/src/panfrost/midgard/midgard_ra.c index 1dd56c876a4..22477014a22 100644 --- a/src/panfrost/midgard/midgard_ra.c +++ b/src/panfrost/midgard/midgard_ra.c @@ -489,6 +489,12 @@ allocate_registers(compiler_context *ctx, bool *spilled) if (size == 16) min_bound[dest] = 8; + mir_foreach_src(ins, s) { + unsigned src_size = nir_alu_type_get_type_size(ins->src_types[s]); + if (src_size == 16 && ins->src[s] < SSA_FIXED_MINIMUM) + min_bound[ins->src[s]] = MAX2(min_bound[ins->src[s]], 8); + } + /* We don't have a swizzle for the conditional and we don't * want to muck with the conditional itself, so just force * alignment for now */ _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
