diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-06-05 15:12:58 +0000 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-06-05 17:59:27 +0000 |
commit | c51312bc94046846d691810ef53551e9d10aa904 (patch) | |
tree | e12ed7639acba009902b0b2e97f33e7b68f35f2a /src | |
parent | 88c59798fe1c21061ba99db5b3337d69c3fb7004 (diff) |
panfrost/midgard: Lower integer division
We use the shared nir_lower_idiv pass to lower integer division, fixing
144 dEQP tests. This pass was not applied in the past due to breakage
from iabs fixed earlier in the series.
Signed-off-by: Alyssa Rosenzweig <[email protected]>
Reviewed-By: Ryan Houdek <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/panfrost/ci/expected-failures.txt | 144 | ||||
-rw-r--r-- | src/gallium/drivers/panfrost/midgard/midgard_compile.c | 1 |
2 files changed, 1 insertions, 144 deletions
diff --git a/src/gallium/drivers/panfrost/ci/expected-failures.txt b/src/gallium/drivers/panfrost/ci/expected-failures.txt index 762ceaffd5a..0ae11321ff4 100644 --- a/src/gallium/drivers/panfrost/ci/expected-failures.txt +++ b/src/gallium/drivers/panfrost/ci/expected-failures.txt @@ -763,150 +763,6 @@ dEQP-GLES2.functional.shaders.matrix.unary_addition.dynamic_mediump_mat3_fragmen dEQP-GLES2.functional.shaders.matrix.unary_addition.dynamic_mediump_mat3_vertex dEQP-GLES2.functional.shaders.matrix.unary_addition.dynamic_mediump_mat4_fragment dEQP-GLES2.functional.shaders.matrix.unary_addition.dynamic_mediump_mat4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_int_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_int_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_int_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_int_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_int_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_int_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec2_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec2_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec3_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec3_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec4_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec4_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.highp_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_int_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_int_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_int_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_int_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_int_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_int_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec2_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec2_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec3_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec3_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec4_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec4_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.lowp_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_int_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_int_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_int_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_int_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_int_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_int_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec2_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec2_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec3_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec3_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec4_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec4_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div.mediump_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec2_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec2_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec3_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec3_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec4_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec4_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.highp_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec2_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec2_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec3_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec3_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec4_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec4_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.lowp_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec2_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec2_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec3_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec3_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec4_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec4_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_effect.mediump_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec2_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec2_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec3_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec3_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec4_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec4_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.highp_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec2_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec2_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec3_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec3_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec4_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec4_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.lowp_ivec4_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec2_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec2_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec2_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec2_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec3_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec3_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec3_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec3_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec4_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec4_int_fragment -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec4_int_vertex -dEQP-GLES2.functional.shaders.operator.binary_operator.div_assign_result.mediump_ivec4_vertex dEQP-GLES2.functional.shaders.preprocessor.predefined_macros.line_2_fragment dEQP-GLES2.functional.shaders.preprocessor.predefined_macros.line_2_vertex dEQP-GLES2.functional.shaders.random.all_features.fragment.0 diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost/midgard/midgard_compile.c index 99a648788ef..69e9cdcc145 100644 --- a/src/gallium/drivers/panfrost/midgard/midgard_compile.c +++ b/src/gallium/drivers/panfrost/midgard/midgard_compile.c @@ -351,6 +351,7 @@ optimise_nir(nir_shader *nir) NIR_PASS(progress, nir, nir_lower_regs_to_ssa); NIR_PASS(progress, nir, midgard_nir_lower_fdot2); + NIR_PASS(progress, nir, nir_lower_idiv); nir_lower_tex_options lower_tex_options = { .lower_rect = true |