nir: Add nir_imm_vec4_16
We already have nir_imm_float16 and nir_imm_vec4; let's add the ability to easily make immediate fp16 vectors as well, now that fp16 support is maturing in NIR/GLSL. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -318,6 +318,20 @@ nir_imm_vec4(nir_builder *build, float x, float y, float z, float w)
|
|||||||
return nir_build_imm(build, 4, 32, v);
|
return nir_build_imm(build, 4, 32, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline nir_ssa_def *
|
||||||
|
nir_imm_vec4_16(nir_builder *build, float x, float y, float z, float w)
|
||||||
|
{
|
||||||
|
nir_const_value v[4];
|
||||||
|
|
||||||
|
memset(v, 0, sizeof(v));
|
||||||
|
v[0].u16 = _mesa_float_to_half(x);
|
||||||
|
v[1].u16 = _mesa_float_to_half(y);
|
||||||
|
v[2].u16 = _mesa_float_to_half(z);
|
||||||
|
v[3].u16 = _mesa_float_to_half(w);
|
||||||
|
|
||||||
|
return nir_build_imm(build, 4, 16, v);
|
||||||
|
}
|
||||||
|
|
||||||
static inline nir_ssa_def *
|
static inline nir_ssa_def *
|
||||||
nir_imm_ivec2(nir_builder *build, int x, int y)
|
nir_imm_ivec2(nir_builder *build, int x, int y)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user