Commit b3e0271b authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

wined3d/glsl: Flush NaN to zero in ftoi.

Ported from 257a351f37b7f17d2e80b5557593a9b0a4998963 in vkd3d.
parent f30418e8
...@@ -4333,11 +4333,11 @@ static void shader_glsl_to_int(const struct wined3d_shader_instruction *ins) ...@@ -4333,11 +4333,11 @@ static void shader_glsl_to_int(const struct wined3d_shader_instruction *ins)
shader_glsl_add_src_param(ins, &ins->src[0], write_mask, &src_param); shader_glsl_add_src_param(ins, &ins->src[0], write_mask, &src_param);
if (mask_size > 1) if (mask_size > 1)
shader_addline(buffer, "mix(ivec%u(max(%s, vec%u(-2147483648.0))), ivec%u(0x7fffffff), greaterThanEqual(%s, vec%u(2147483648.0))));\n", shader_addline(buffer, "mix(mix(ivec%u(max(%s, vec%u(-2147483648.0))), ivec%u(0x7fffffff), greaterThanEqual(%s, vec%u(2147483648.0))), ivec%u(0), isnan(%s)));\n",
mask_size, src_param.param_str, mask_size, mask_size, src_param.param_str, mask_size); mask_size, src_param.param_str, mask_size, mask_size, src_param.param_str, mask_size, mask_size, src_param.param_str);
else else
shader_addline(buffer, "mix(int(max(%s, -2147483648.0)), 0x7fffffff, %s >= 2147483648.0));\n", shader_addline(buffer, "mix(mix(int(max(%s, -2147483648.0)), 0x7fffffff, %s >= 2147483648.0), 0, isnan(%s)));\n",
src_param.param_str, src_param.param_str); src_param.param_str, src_param.param_str, src_param.param_str);
} }
static void shader_glsl_to_uint(const struct wined3d_shader_instruction *ins) static void shader_glsl_to_uint(const struct wined3d_shader_instruction *ins)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment