nir: Switch to using 1-bit Booleans for almost everything
This is a squash of a few distinct changes: glsl,spirv: Generate 1-bit Booleans Revert "Use 32-bit opcodes in the NIR producers and optimizations" Revert "nir/builder: Generate 32-bit bool opcodes transparently" nir/builder: Generate 1-bit Booleans in nir_build_imm_bool Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:

committed by
Jason Ekstrand

parent
11dc130779
commit
44227453ec
@@ -212,9 +212,9 @@ nir_imm_bool(nir_builder *build, bool x)
|
||||
nir_const_value v;
|
||||
|
||||
memset(&v, 0, sizeof(v));
|
||||
v.u32[0] = x ? NIR_TRUE : NIR_FALSE;
|
||||
v.b[0] = x;
|
||||
|
||||
return nir_build_imm(build, 1, 32, v);
|
||||
return nir_build_imm(build, 1, 1, v);
|
||||
}
|
||||
|
||||
static inline nir_ssa_def *
|
||||
@@ -976,13 +976,13 @@ nir_load_param(nir_builder *build, uint32_t param_idx)
|
||||
static inline nir_ssa_def *
|
||||
nir_f2b(nir_builder *build, nir_ssa_def *f)
|
||||
{
|
||||
return nir_f2b32(build, f);
|
||||
return nir_f2b1(build, f);
|
||||
}
|
||||
|
||||
static inline nir_ssa_def *
|
||||
nir_i2b(nir_builder *build, nir_ssa_def *i)
|
||||
{
|
||||
return nir_i2b32(build, i);
|
||||
return nir_i2b1(build, i);
|
||||
}
|
||||
|
||||
static inline nir_ssa_def *
|
||||
|
Reference in New Issue
Block a user