mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 02:20:11 +01:00
Fix useabs logic in build_fog().
We always need to compute the absolute value of the fogcoord if we're passing it through for per-fragment fog.
This commit is contained in:
parent
b4deb73fab
commit
b1f136dba2
1 changed files with 5 additions and 2 deletions
|
|
@ -1110,8 +1110,6 @@ static void build_fog( struct tnl_program *p )
|
||||||
{
|
{
|
||||||
struct ureg fog = register_output(p, VERT_RESULT_FOGC);
|
struct ureg fog = register_output(p, VERT_RESULT_FOGC);
|
||||||
struct ureg input;
|
struct ureg input;
|
||||||
GLuint useabs = p->state->fog_source_is_depth && p->state->fog_mode &&
|
|
||||||
(p->state->fog_mode != FOG_EXP2);
|
|
||||||
|
|
||||||
if (p->state->fog_source_is_depth) {
|
if (p->state->fog_source_is_depth) {
|
||||||
input = swizzle1(get_eye_position(p), Z);
|
input = swizzle1(get_eye_position(p), Z);
|
||||||
|
|
@ -1125,6 +1123,8 @@ static void build_fog( struct tnl_program *p )
|
||||||
STATE_FOG_PARAMS_OPTIMIZED);
|
STATE_FOG_PARAMS_OPTIMIZED);
|
||||||
struct ureg tmp = get_temp(p);
|
struct ureg tmp = get_temp(p);
|
||||||
|
|
||||||
|
GLboolean useabs = (p->state->fog_mode != FOG_EXP2);
|
||||||
|
|
||||||
if (useabs) {
|
if (useabs) {
|
||||||
emit_op1(p, OPCODE_ABS, tmp, 0, input);
|
emit_op1(p, OPCODE_ABS, tmp, 0, input);
|
||||||
}
|
}
|
||||||
|
|
@ -1156,7 +1156,10 @@ static void build_fog( struct tnl_program *p )
|
||||||
/* results = incoming fog coords (compute fog per-fragment later)
|
/* results = incoming fog coords (compute fog per-fragment later)
|
||||||
*
|
*
|
||||||
* KW: Is it really necessary to do anything in this case?
|
* KW: Is it really necessary to do anything in this case?
|
||||||
|
* BP: Yes, we always need to compute the absolute value, unless
|
||||||
|
* we want to push that down into the fragment program...
|
||||||
*/
|
*/
|
||||||
|
GLboolean useabs = GL_TRUE;
|
||||||
emit_op1(p, useabs ? OPCODE_ABS : OPCODE_MOV, fog, WRITEMASK_X, input);
|
emit_op1(p, useabs ? OPCODE_ABS : OPCODE_MOV, fog, WRITEMASK_X, input);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue