intel/compiler/fs: Still attempt simd32 when INTEL_DEBUG=no16 is used
If INTEL_DEBUG=no16 is used, then simd16 will not be attempted. This, in turn prevents simd32 from running, because we attempt to skip simd32 when simd16 fails to compile. This change more accurately recognizes when we attempted simd16, but simd16 failed. One easy way to cause an issue is to set both no8 and no16. Before this change, we would be left with no FS program, even though simd32 could still be generated in some cases. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5269>
This commit is contained in:
@@ -8657,10 +8657,12 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,
|
||||
}
|
||||
}
|
||||
|
||||
const bool simd16_failed = v16 && !simd16_cfg;
|
||||
|
||||
/* Currently, the compiler only supports SIMD32 on SNB+ */
|
||||
if (!has_spilled &&
|
||||
v8->max_dispatch_width >= 32 && !use_rep_send &&
|
||||
devinfo->gen >= 6 && simd16_cfg &&
|
||||
devinfo->gen >= 6 && !simd16_failed &&
|
||||
!(INTEL_DEBUG & DEBUG_NO32)) {
|
||||
/* Try a SIMD32 compile */
|
||||
v32 = new fs_visitor(compiler, log_data, mem_ctx, &key->base,
|
||||
|
||||
Reference in New Issue
Block a user