From: Jonathan Marek Date: Mon, 12 Nov 2018 22:00:08 +0000 (-0500) Subject: glsl/nir: ftrunc for native_integers=false float to int cast X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b27ad171158a89758662294072398745b2f5d623;p=mesa.git glsl/nir: ftrunc for native_integers=false float to int cast out_type in the default cast case is always GLSL_TYPE_FLOAT, so we get a mov otherwise. Signed-off-by: Jonathan Marek Reviewed-by: Jason Ekstrand --- diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index 8a19399d890..00380f482d0 100644 --- a/src/compiler/glsl/glsl_to_nir.cpp +++ b/src/compiler/glsl/glsl_to_nir.cpp @@ -1643,7 +1643,11 @@ nir_visitor::visit(ir_expression *ir) result = supports_ints ? nir_b2f32(&b, srcs[0]) : nir_fmov(&b, srcs[0]); break; case ir_unop_f2i: + result = supports_ints ? nir_f2i32(&b, srcs[0]) : nir_ftrunc(&b, srcs[0]); + break; case ir_unop_f2u: + result = supports_ints ? nir_f2u32(&b, srcs[0]) : nir_ftrunc(&b, srcs[0]); + break; case ir_unop_f2b: case ir_unop_i2b: case ir_unop_b2i: