summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Verbeet <[email protected]>2008-06-16 10:40:32 -0600
committerBrian Paul <[email protected]>2008-06-16 10:40:32 -0600
commite9d1889891ce32ffb3d6425f1e70510ea2c3e24b (patch)
treeddbf903fc2c8574c0e5d552ea12cc581c69f41a3
parentec2d0decbd739df99cac4baba57fe0005bf4894d (diff)
Compute/setup fog coordinates even if vertex program is enabled.
Only when fog's enabled, of course. In the usual case, this is just a pass-through operation.
-rw-r--r--src/mesa/tnl/t_pipeline.c2
-rw-r--r--src/mesa/tnl/t_vb_fog.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/src/mesa/tnl/t_pipeline.c b/src/mesa/tnl/t_pipeline.c
index 2a0ed8852a2..357ef1e24b5 100644
--- a/src/mesa/tnl/t_pipeline.c
+++ b/src/mesa/tnl/t_pipeline.c
@@ -199,11 +199,11 @@ const struct tnl_pipeline_stage *_tnl_default_pipeline[] = {
&_tnl_vertex_transform_stage,
&_tnl_normal_transform_stage,
&_tnl_lighting_stage,
- &_tnl_fog_coordinate_stage,
&_tnl_texgen_stage,
&_tnl_texture_transform_stage,
&_tnl_point_attenuation_stage,
&_tnl_vertex_program_stage,
+ &_tnl_fog_coordinate_stage,
&_tnl_render_stage,
NULL
};
diff --git a/src/mesa/tnl/t_vb_fog.c b/src/mesa/tnl/t_vb_fog.c
index d8bca3820bc..99e5a09c755 100644
--- a/src/mesa/tnl/t_vb_fog.c
+++ b/src/mesa/tnl/t_vb_fog.c
@@ -148,11 +148,11 @@ run_fog_stage(GLcontext *ctx, struct tnl_pipeline_stage *stage)
struct fog_stage_data *store = FOG_STAGE_DATA(stage);
GLvector4f *input;
- if (!ctx->Fog.Enabled || ctx->VertexProgram._Current)
- return GL_TRUE;
+ if (!ctx->Fog.Enabled)
+ return GL_TRUE;
- if (ctx->Fog.FogCoordinateSource == GL_FRAGMENT_DEPTH_EXT) {
+ if (ctx->Fog.FogCoordinateSource == GL_FRAGMENT_DEPTH_EXT && !ctx->VertexProgram._Current) {
GLuint i;
GLfloat *coord;
/* Fog is computed from vertex or fragment Z values */