mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-22 03:20:43 +01:00
intel/fs: Mark source 0 of bcsel as needing Boolean resolve
The other sources of the bcsel behave like the sources of an and or other logical operation. However, source zero behaves differently. It is evaluated as a Boolean, so it needs to be resolved. No shader-db changes, but the tests mentioned in the bug get a couple instructions added back. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110857 Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
This commit is contained in:
parent
f9f89df8bc
commit
39f4dc23a5
1 changed files with 6 additions and 0 deletions
|
|
@ -145,6 +145,12 @@ analyze_boolean_resolves_block(nir_block *block)
|
|||
uint8_t src0_status = get_resolve_status_for_src(&alu->src[first + 0].src);
|
||||
uint8_t src1_status = get_resolve_status_for_src(&alu->src[first + 1].src);
|
||||
|
||||
/* src0 of a bcsel is evaluated as a Boolean with the expectation
|
||||
* that it has already been resolved. Mark it as such.
|
||||
*/
|
||||
if (alu->op == nir_op_b32csel)
|
||||
src_mark_needs_resolve(&alu->src[0].src, NULL);
|
||||
|
||||
if (src0_status == src1_status) {
|
||||
resolve_status = src0_status;
|
||||
} else if (src0_status == BRW_NIR_NON_BOOLEAN ||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue