Commit 0d2d8479 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Don't clamp texture lookups in the GLSL fixed function fragment pipe.

parent 50e2ee73
...@@ -5507,7 +5507,7 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf ...@@ -5507,7 +5507,7 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf
{ {
const char *texture_function, *coord_mask; const char *texture_function, *coord_mask;
char tex_reg_name[8]; char tex_reg_name[8];
BOOL proj, clamp; BOOL proj;
if (!(tex_map & (1 << stage))) if (!(tex_map & (1 << stage)))
continue; continue;
...@@ -5527,12 +5527,6 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf ...@@ -5527,12 +5527,6 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf
proj = TRUE; proj = TRUE;
} }
if (settings->op[stage].cop == WINED3D_TOP_BUMPENVMAP
|| settings->op[stage].cop == WINED3D_TOP_BUMPENVMAP_LUMINANCE)
clamp = FALSE;
else
clamp = TRUE;
switch (settings->op[stage].tex_type) switch (settings->op[stage].tex_type)
{ {
case tex_1d: case tex_1d:
...@@ -5624,12 +5618,8 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf ...@@ -5624,12 +5618,8 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf
shader_addline(buffer, "ret = gl_TexCoord[%u] + ret.xyxy;\n", stage); shader_addline(buffer, "ret = gl_TexCoord[%u] + ret.xyxy;\n", stage);
} }
if (clamp) shader_addline(buffer, "tex%u = %s(ps_sampler%u, ret.%s);\n",
shader_addline(buffer, "tex%u = clamp(%s(ps_sampler%u, ret.%s), 0.0, 1.0);\n", stage, texture_function, stage, coord_mask);
stage, texture_function, stage, coord_mask);
else
shader_addline(buffer, "tex%u = %s(ps_sampler%u, ret.%s);\n",
stage, texture_function, stage, coord_mask);
if (settings->op[stage - 1].cop == WINED3D_TOP_BUMPENVMAP_LUMINANCE) if (settings->op[stage - 1].cop == WINED3D_TOP_BUMPENVMAP_LUMINANCE)
shader_addline(buffer, "tex%u *= clamp(tex%u.z * bumpenv_lum_scale%u + bumpenv_lum_offset%u, 0.0, 1.0);\n", shader_addline(buffer, "tex%u *= clamp(tex%u.z * bumpenv_lum_scale%u + bumpenv_lum_offset%u, 0.0, 1.0);\n",
...@@ -5637,21 +5627,13 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf ...@@ -5637,21 +5627,13 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf
} }
else if (settings->op[stage].projected == proj_count3) else if (settings->op[stage].projected == proj_count3)
{ {
if (clamp) shader_addline(buffer, "tex%u = %s(ps_sampler%u, gl_TexCoord[%u].xyz);\n",
shader_addline(buffer, "tex%u = clamp(%s(ps_sampler%u, gl_TexCoord[%u].xyz), 0.0, 1.0);\n", stage, texture_function, stage, stage);
stage, texture_function, stage, stage);
else
shader_addline(buffer, "tex%u = %s(ps_sampler%u, gl_TexCoord[%u].xyz);\n",
stage, texture_function, stage, stage);
} }
else else
{ {
if (clamp) shader_addline(buffer, "tex%u = %s(ps_sampler%u, gl_TexCoord[%u].%s);\n",
shader_addline(buffer, "tex%u = clamp(%s(ps_sampler%u, gl_TexCoord[%u].%s), 0.0, 1.0);\n", stage, texture_function, stage, stage, coord_mask);
stage, texture_function, stage, stage, coord_mask);
else
shader_addline(buffer, "tex%u = %s(ps_sampler%u, gl_TexCoord[%u].%s);\n",
stage, texture_function, stage, stage, coord_mask);
} }
sprintf(tex_reg_name, "tex%u", stage); sprintf(tex_reg_name, "tex%u", stage);
......
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