From 4ed3b1ae6b3503970cfebaa1319ff01f71734edb Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Thu, 13 Apr 2023 19:34:15 +0300 Subject: [PATCH] intel/vec4: force exec_all on float control instruction Applying the same rule as the fs backend so that generation code doesn't assert. Signed-off-by: Lionel Landwerlin Fixes: daa8003e45 ("intel/fs: use nomask for setting cr0 for float controls") Reviewed-by: Emma Anholt Part-of: (cherry picked from commit 08cf224c4a1ab4efd17488522518995ecc49e23e) --- .pick_status.json | 2 +- src/intel/compiler/brw_vec4_visitor.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 6bfa5ebdb14..9810731617d 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -589,7 +589,7 @@ "description": "intel/vec4: force exec_all on float control instruction", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "daa8003e45c37d13f81958c0a74222e259d18538" }, diff --git a/src/intel/compiler/brw_vec4_visitor.cpp b/src/intel/compiler/brw_vec4_visitor.cpp index 82076cd1c8a..9d399a66ef5 100644 --- a/src/intel/compiler/brw_vec4_visitor.cpp +++ b/src/intel/compiler/brw_vec4_visitor.cpp @@ -1363,7 +1363,8 @@ vec4_visitor::emit_shader_float_controls_execution_mode() unsigned execution_mode = this->nir->info.float_controls_execution_mode; if (nir_has_any_rounding_mode_enabled(execution_mode)) { brw_rnd_mode rnd = brw_rnd_mode_from_execution_mode(execution_mode); - emit(SHADER_OPCODE_RND_MODE, dst_null_ud(), brw_imm_d(rnd)); + const vec4_builder bld = vec4_builder(this).at_end(); + bld.exec_all().emit(SHADER_OPCODE_RND_MODE, dst_null_ud(), brw_imm_d(rnd)); } }