126 lines
4.2 KiB
Diff
126 lines
4.2 KiB
Diff
Index: src/mesa/drivers/dri/i915/i915_context.h
|
|
===================================================================
|
|
RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/i915/i915_context.h,v
|
|
retrieving revision 1.7
|
|
diff -u -r1.7 i915_context.h
|
|
--- src/mesa/drivers/dri/i915/i915_context.h 18 Aug 2006 09:04:48 -0000 1.7
|
|
+++ src/mesa/drivers/dri/i915/i915_context.h 16 Sep 2006 02:07:05 -0000
|
|
@@ -170,7 +176,7 @@
|
|
|
|
/* Helpers for i915_texprog.c:
|
|
*/
|
|
- GLuint src_texture; /* Reg containing sampled texture color,
|
|
+ GLuint src_texture[8]; /* Reg containing sampled texture color,
|
|
* else UREG_BAD.
|
|
*/
|
|
|
|
Index: src/mesa/drivers/dri/i915/i915_program.c
|
|
===================================================================
|
|
RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/i915/i915_program.c,v
|
|
retrieving revision 1.6
|
|
diff -u -r1.6 i915_program.c
|
|
--- src/mesa/drivers/dri/i915/i915_program.c 18 Aug 2006 09:04:48 -0000 1.6
|
|
+++ src/mesa/drivers/dri/i915/i915_program.c 16 Sep 2006 02:07:09 -0000
|
|
@@ -405,7 +422,7 @@
|
|
p->depth_written = 0;
|
|
p->nr_params = 0;
|
|
|
|
- p->src_texture = UREG_BAD;
|
|
+ for (int u = 0; u < 8; u++) p->src_texture[u] = UREG_BAD;
|
|
p->src_previous = UREG(REG_TYPE_T, T_DIFFUSE);
|
|
p->last_tex_stage = 0;
|
|
p->VB = &tnl->vb;
|
|
Index: src/mesa/drivers/dri/i915/i915_texprog.c
|
|
===================================================================
|
|
RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/i915/i915_texprog.c,v
|
|
retrieving revision 1.6
|
|
diff -u -r1.6 i915_texprog.c
|
|
--- src/mesa/drivers/dri/i915/i915_texprog.c 11 Apr 2006 11:41:11 -0000 1.6
|
|
+++ src/mesa/drivers/dri/i915/i915_texprog.c 16 Sep 2006 02:07:09 -0000
|
|
@@ -55,8 +55,18 @@
|
|
GLenum src, GLuint unit )
|
|
{
|
|
switch (src) {
|
|
+ /* Crossbar: */
|
|
+ case GL_TEXTURE0:
|
|
+ case GL_TEXTURE1:
|
|
+ case GL_TEXTURE2:
|
|
+ case GL_TEXTURE3:
|
|
+ case GL_TEXTURE4:
|
|
+ case GL_TEXTURE5:
|
|
+ case GL_TEXTURE6:
|
|
+ case GL_TEXTURE7:
|
|
+ unit = src - GL_TEXTURE0;
|
|
case GL_TEXTURE:
|
|
- if (p->src_texture == UREG_BAD) {
|
|
+ if (p->src_texture[unit] == UREG_BAD) {
|
|
|
|
/* TODO: Use D0_CHANNEL_XY where possible.
|
|
*/
|
|
@@ -69,23 +79,10 @@
|
|
if (p->VB->TexCoordPtr[unit]->size == 4)
|
|
op = T0_TEXLDP;
|
|
|
|
- p->src_texture = i915_emit_texld( p, tmp, A0_DEST_CHANNEL_ALL,
|
|
+ p->src_texture[unit] = i915_emit_texld( p, tmp, A0_DEST_CHANNEL_ALL,
|
|
sampler, texcoord, op );
|
|
}
|
|
-
|
|
- return p->src_texture;
|
|
-
|
|
- /* Crossbar: */
|
|
- case GL_TEXTURE0:
|
|
- case GL_TEXTURE1:
|
|
- case GL_TEXTURE2:
|
|
- case GL_TEXTURE3:
|
|
- case GL_TEXTURE4:
|
|
- case GL_TEXTURE5:
|
|
- case GL_TEXTURE6:
|
|
- case GL_TEXTURE7: {
|
|
- return UREG_BAD;
|
|
- }
|
|
+ return p->src_texture[unit];
|
|
|
|
case GL_CONSTANT:
|
|
return i915_emit_const4fv( p, p->ctx->Texture.Unit[unit].EnvColor );
|
|
@@ -555,9 +552,12 @@
|
|
for (unit = 0 ; unit < ctx->Const.MaxTextureUnits; unit++)
|
|
if (ctx->Texture.Unit[unit]._ReallyEnabled) {
|
|
p->src_previous = emit_texenv( p, unit );
|
|
- p->src_texture = UREG_BAD;
|
|
p->temp_flag = 0xffff000;
|
|
p->temp_flag |= 1 << GET_UREG_NR(p->src_previous);
|
|
+ /* FIXME: This could be cleverer. */
|
|
+ for (int u = 0; u < 8; u++)
|
|
+ if (p->src_texture[u] != UREG_BAD)
|
|
+ p->temp_flag |= 1 << GET_UREG_NR(p->src_texture[u]);
|
|
}
|
|
}
|
|
|
|
Index: src/mesa/drivers/dri/i915/intel_context.c
|
|
===================================================================
|
|
RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/i915/intel_context.c,v
|
|
retrieving revision 1.30
|
|
diff -u -r1.30 intel_context.c
|
|
--- src/mesa/drivers/dri/i915/intel_context.c 1 Sep 2006 23:36:30 -0000 1.30
|
|
+++ src/mesa/drivers/dri/i915/intel_context.c 16 Sep 2006 02:07:10 -0000
|
|
@@ -158,10 +158,6 @@
|
|
|
|
/**
|
|
* Extension strings exported by the intel driver.
|
|
- *
|
|
- * \note
|
|
- * It appears that ARB_texture_env_crossbar has "disappeared" compared to the
|
|
- * old i830-specific driver.
|
|
*/
|
|
const struct dri_extension card_extensions[] =
|
|
{
|
|
@@ -173,6 +169,7 @@
|
|
{ "GL_ARB_texture_cube_map", NULL },
|
|
{ "GL_ARB_texture_env_add", NULL },
|
|
{ "GL_ARB_texture_env_combine", NULL },
|
|
+ { "GL_ARB_texture_env_crossbar", NULL },
|
|
{ "GL_ARB_texture_env_dot3", NULL },
|
|
{ "GL_ARB_texture_mirrored_repeat", NULL },
|
|
{ "GL_ARB_texture_rectangle", NULL },
|