diff options
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/nouveau/nv10_context.c | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/nouveau/nv10_state_frag.c | 16 | ||||
-rw-r--r-- | src/mesa/drivers/dri/nouveau/nv20_context.c | 1 |
3 files changed, 17 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/nouveau/nv10_context.c b/src/mesa/drivers/dri/nouveau/nv10_context.c index 00a935880e0..7a86ba2358d 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_context.c +++ b/src/mesa/drivers/dri/nouveau/nv10_context.c @@ -448,6 +448,7 @@ nv10_context_create(struct nouveau_screen *screen, gl_api api, ctx->Extensions.ARB_texture_env_crossbar = true; ctx->Extensions.ARB_texture_env_combine = true; ctx->Extensions.ARB_texture_env_dot3 = true; + ctx->Extensions.EXT_texture_env_dot3 = true; ctx->Extensions.NV_fog_distance = true; ctx->Extensions.NV_texture_rectangle = true; if (ctx->Mesa_DXTn) { diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_frag.c b/src/mesa/drivers/dri/nouveau/nv10_state_frag.c index e78eac353bd..c6e4bb0d587 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_frag.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_frag.c @@ -276,6 +276,20 @@ setup_combiner(struct combiner_state *rc) rc->out = RC_OUT_DOT_AB; break; + case GL_DOT3_RGB_EXT: + case GL_DOT3_RGBA_EXT: + INPUT_ARG(rc, A, 0, NORMALIZE); + INPUT_ARG(rc, B, 1, NORMALIZE); + + rc->out = RC_OUT_DOT_AB; + + /* The EXT version of the DOT3 extension does not support the + * scale factor, but the ARB version (and the version in + * OpenGL 1.3) does. + */ + rc->logscale = 0; + break; + default: assert(0); } @@ -305,7 +319,7 @@ nv10_get_general_combiner(struct gl_context *ctx, int i, if (ctx->Texture.Unit[i]._Current) { INIT_COMBINER(RGB, ctx, &rc_c, i); - if (rc_c.mode == GL_DOT3_RGBA) + if (rc_c.mode == GL_DOT3_RGBA || rc_c.mode == GL_DOT3_RGBA_EXT) rc_a = rc_c; else INIT_COMBINER(A, ctx, &rc_a, i); diff --git a/src/mesa/drivers/dri/nouveau/nv20_context.c b/src/mesa/drivers/dri/nouveau/nv20_context.c index 14329a2326c..ec638c036b1 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_context.c +++ b/src/mesa/drivers/dri/nouveau/nv20_context.c @@ -459,6 +459,7 @@ nv20_context_create(struct nouveau_screen *screen, gl_api api, ctx->Extensions.ARB_texture_env_crossbar = true; ctx->Extensions.ARB_texture_env_combine = true; ctx->Extensions.ARB_texture_env_dot3 = true; + ctx->Extensions.EXT_texture_env_dot3 = true; ctx->Extensions.NV_fog_distance = true; ctx->Extensions.NV_texture_rectangle = true; if (ctx->Mesa_DXTn) { |