nir: Split the flag for lowering of fabs and fneg to source modifiers.
i915 and r300 have fneg source modifier but not fabs, and doing it in NIR can save us some backend pain. Reviewed-by: Matt Turner <mattst88@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14938>
This commit is contained in:
parent
bd24f418c3
commit
f4ee7146f9
|
@ -5070,12 +5070,14 @@ bool nir_lower_atomics_to_ssbo(nir_shader *shader);
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
nir_lower_int_source_mods = 1 << 0,
|
nir_lower_int_source_mods = 1 << 0,
|
||||||
nir_lower_float_source_mods = 1 << 1,
|
nir_lower_fabs_source_mods = 1 << 1,
|
||||||
nir_lower_64bit_source_mods = 1 << 2,
|
nir_lower_fneg_source_mods = 1 << 2,
|
||||||
nir_lower_triop_abs = 1 << 3,
|
nir_lower_64bit_source_mods = 1 << 3,
|
||||||
nir_lower_all_source_mods = (1 << 4) - 1
|
nir_lower_triop_abs = 1 << 4,
|
||||||
|
nir_lower_all_source_mods = (1 << 5) - 1
|
||||||
} nir_lower_to_source_mods_flags;
|
} nir_lower_to_source_mods_flags;
|
||||||
|
|
||||||
|
#define nir_lower_float_source_mods (nir_lower_fabs_source_mods | nir_lower_fneg_source_mods)
|
||||||
|
|
||||||
bool nir_lower_to_source_mods(nir_shader *shader, nir_lower_to_source_mods_flags options);
|
bool nir_lower_to_source_mods(nir_shader *shader, nir_lower_to_source_mods_flags options);
|
||||||
|
|
||||||
|
|
|
@ -78,8 +78,10 @@ nir_lower_to_source_mods_block(nir_block *block,
|
||||||
case nir_type_float:
|
case nir_type_float:
|
||||||
if (!(options & nir_lower_float_source_mods))
|
if (!(options & nir_lower_float_source_mods))
|
||||||
continue;
|
continue;
|
||||||
if (parent->op != nir_op_fabs && parent->op != nir_op_fneg)
|
if (!(parent->op == nir_op_fabs && (options & nir_lower_fabs_source_mods)) &&
|
||||||
|
!(parent->op == nir_op_fneg && (options & nir_lower_fneg_source_mods))) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case nir_type_int:
|
case nir_type_int:
|
||||||
if (!(options & nir_lower_int_source_mods))
|
if (!(options & nir_lower_int_source_mods))
|
||||||
|
|
Loading…
Reference in New Issue