diff --git a/src/broadcom/compiler/vir.c b/src/broadcom/compiler/vir.c index 5ab6300b8bb..719cb2ab9e5 100644 --- a/src/broadcom/compiler/vir.c +++ b/src/broadcom/compiler/vir.c @@ -1563,10 +1563,10 @@ v3d_attempt_compile(struct v3d_compile *c) NIR_PASS(_, c->s, v3d_nir_lower_txf_ms, c); NIR_PASS(_, c->s, v3d_nir_lower_image_load_store); nir_lower_idiv_options idiv_options = { - .imprecise_32bit_lowering = true, .allow_fp16 = true, }; NIR_PASS(_, c->s, nir_lower_idiv, &idiv_options); + NIR_PASS(_, c->s, nir_lower_alu); if (c->key->robust_buffer_access) { /* v3d_nir_lower_robust_buffer_access assumes constant buffer diff --git a/src/gallium/drivers/v3d/v3d_screen.c b/src/gallium/drivers/v3d/v3d_screen.c index 6b79a4978cb..83fe69b31ca 100644 --- a/src/gallium/drivers/v3d/v3d_screen.c +++ b/src/gallium/drivers/v3d/v3d_screen.c @@ -732,6 +732,7 @@ static const nir_shader_compiler_options v3d_nir_options = { .lower_int64_options = nir_lower_imul_2x32_64, .has_fsub = true, .has_isub = true, + .lower_mul_high = true, .divergence_analysis_options = nir_divergence_multiple_workgroup_per_compute_subgroup, /* This will enable loop unrolling in the state tracker so we won't