ir3: Call nir_lower_wrmask() again after lowering scratch

I forgot that after rebasing on large_consts support that this is now
called after the first time nir_lower_wrmask is called and can generate
partial writemasks that need to be lowered. While we're here, also call
the main optimization loop if things are lowered to scratch because it
generates address arithmetic that may need to be cleaned up.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10922>
This commit is contained in:
Connor Abbott 2021-05-20 18:26:55 +02:00 committed by Marge Bot
parent 738b12a492
commit 0ab01f4215
2 changed files with 6 additions and 6 deletions

View File

@ -553,10 +553,13 @@ ir3_nir_lower_variant(struct ir3_shader_variant *so, nir_shader *s)
* expensive.
*/
if (so->shader->compiler->has_pvtmem) {
NIR_PASS_V(s, nir_lower_vars_to_scratch, nir_var_function_temp,
16 * 16 /* bytes */, glsl_get_natural_size_align_bytes);
progress |=
OPT(s, nir_lower_vars_to_scratch, nir_var_function_temp,
16 * 16 /* bytes */, glsl_get_natural_size_align_bytes);
}
/* Lower scratch writemasks */
progress |= OPT(s, nir_lower_wrmasks, should_split_wrmask, s);
OPT_V(s, nir_lower_amul, ir3_glsl_type_size);

View File

@ -482,9 +482,6 @@ spec@arb_tessellation_shader@execution@vs-tes-max-in-out-components,Fail
spec@arb_tessellation_shader@execution@vs-tes-tessinner-tessouter-inputs-quads,Fail
spec@arb_tessellation_shader@execution@vs-tes-tessinner-tessouter-inputs-tris,Fail
spec@arb_tessellation_shader@execution@vs-tes-vertex,Fail
spec@glsl-1.30@execution@fs-large-local-array-vec2,Crash
spec@glsl-1.30@execution@fs-large-local-array-vec3,Crash
spec@glsl-1.30@execution@fs-large-local-array-vec4,Crash
spec@glsl-1.50@execution@compatibility@clipping@gs-clip-vertex-const-accept,Fail
spec@glsl-1.50@execution@compatibility@clipping@gs-clip-vertex-different-from-position,Fail
spec@glsl-1.50@execution@compatibility@clipping@gs-clip-vertex-enables,Fail
@ -512,7 +509,7 @@ spec@glsl-1.50@execution@primitive-id-no-gs-quad-strip,Fail
spec@glsl-1.50@execution@primitive-id-no-gs-quads,Fail
spec@glsl-1.50@execution@variable-indexing@gs-input-array-float-index-rd,Fail
spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec2-index-rd,Fail
spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec3-index-rd,Crash
spec@glsl-1.50@execution@variable-indexing@gs-input-array-vec3-index-rd,Fail
spec@glsl-1.50@execution@variable-indexing@gs-output-array-vec3-index-wr,Fail
spec@glsl-1.50@execution@variable-indexing@gs-output-array-vec4-index-wr,Crash
spec@glsl-1.50@execution@variable-indexing@vs-output-array-vec3-index-wr-before-gs,Fail