Mesa (master): nir/lower_io: Use b2b for shader and function temporaries
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jul 22 23:59:01 UTC 2020
Module: Mesa
Branch: master
Commit: 4815ae51d72837b174e44acf70e41e464c2d1286
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4815ae51d72837b174e44acf70e41e464c2d1286
Author: Jason Ekstrand <jason at jlekstrand.net>
Date: Wed Jul 15 14:09:06 2020 -0500
nir/lower_io: Use b2b for shader and function temporaries
This way we can avoid some unnecessary conversions because there's no
need to sanitize to 0/1 for scratch.
Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5927>
---
src/compiler/nir/nir_lower_io.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/compiler/nir/nir_lower_io.c b/src/compiler/nir/nir_lower_io.c
index 90bfe8a3dac..8018bab9cd0 100644
--- a/src/compiler/nir/nir_lower_io.c
+++ b/src/compiler/nir/nir_lower_io.c
@@ -920,7 +920,9 @@ build_explicit_io_load(nir_builder *b, nir_intrinsic_instr *intrin,
* standard encoding for booleans rather than forcing a 0/1 boolean.
* This should save an instruction or two.
*/
- if (mode == nir_var_mem_shared)
+ if (mode == nir_var_mem_shared ||
+ mode == nir_var_shader_temp ||
+ mode == nir_var_function_temp)
result = nir_b2b1(b, result);
else
result = nir_i2b(b, result);
@@ -970,7 +972,9 @@ build_explicit_io_store(nir_builder *b, nir_intrinsic_instr *intrin,
*
* TODO: Make the native bool bit_size an option.
*/
- if (mode == nir_var_mem_shared)
+ if (mode == nir_var_mem_shared ||
+ mode == nir_var_shader_temp ||
+ mode == nir_var_function_temp)
value = nir_b2b32(b, value);
else
value = nir_b2i(b, value, 32);
More information about the mesa-commit
mailing list