diff options
author | Matt Turner <[email protected]> | 2018-12-10 11:01:39 -0800 |
---|---|---|
committer | Matt Turner <[email protected]> | 2019-01-09 16:42:40 -0800 |
commit | ecb115eb3f2eb876a294b66737c91e195e54532a (patch) | |
tree | f188d0ab57901c9550908b6e9d59e008291fa6bb | |
parent | 41f3e9e5f5de5309821c266b76ccdd1b4d016ce8 (diff) |
nir: Add and set info::uses_64bit
Will be used to communicate that a shader uses 64-bit operations to the
concerned lowering passes.
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
-rw-r--r-- | src/compiler/nir/nir_gather_info.c | 5 | ||||
-rw-r--r-- | src/compiler/shader_info.h | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c index 7eaa4c27c1f..18a74a135d9 100644 --- a/src/compiler/nir/nir_gather_info.c +++ b/src/compiler/nir/nir_gather_info.c @@ -307,6 +307,11 @@ gather_alu_info(nir_alu_instr *instr, nir_shader *shader) shader->info.uses_fddx_fddy = true; break; default: + shader->info.uses_64bit |= instr->dest.dest.ssa.bit_size == 64; + unsigned num_srcs = nir_op_infos[instr->op].num_inputs; + for (unsigned i = 0; i < num_srcs; i++) { + shader->info.uses_64bit |= nir_src_bit_size(instr->src[i].src) == 64; + } break; } } diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h index dc47cd7656d..87a2c805d37 100644 --- a/src/compiler/shader_info.h +++ b/src/compiler/shader_info.h @@ -121,6 +121,11 @@ typedef struct shader_info { */ bool uses_fddx_fddy; + /** + * True if this shader uses 64-bit ALU operations + */ + bool uses_64bit; + /* The size of the gl_ClipDistance[] array, if declared. */ unsigned clip_distance_array_size; |