Use the mesa-provided texenv program rather than rolling our own.

Turn on texture crossbar support.
This commit is contained in:
Keith Whitwell 2006-10-10 08:58:43 +00:00
parent fcd758868b
commit d886423b3c
4 changed files with 21 additions and 1 deletions

View file

@ -50,6 +50,7 @@ static const struct dri_extension i915_extensions[] =
{ "GL_ARB_depth_texture", NULL },
{ "GL_ARB_fragment_program", NULL },
{ "GL_ARB_shadow", NULL },
{ "GL_ARB_texture_env_crossbar", NULL },
{ "GL_EXT_shadow_funcs", NULL },
/* ARB extn won't work if not enabled */
{ "GL_SGIX_depth_texture", NULL },
@ -165,6 +166,7 @@ GLboolean i915CreateContext( const __GLcontextModes *mesaVis,
I915_MAX_TEX_INSN);
ctx->Const.FragmentProgram.MaxNativeTexIndirections = I915_MAX_TEX_INDIRECT;
ctx->Const.FragmentProgram.MaxNativeAddressRegs = 0; /* I don't think we have one */
ctx->_MaintainTexEnvProgram = 1;
driInitExtensions( ctx, i915_extensions, GL_FALSE );

View file

@ -955,6 +955,17 @@ void i915ValidateFragmentProgram( i915ContextPtr i915 )
GLuint s2 = S2_TEXCOORD_NONE;
int i, offset = 0;
if (i915->current_program != p)
{
if (i915->current_program) {
i915->current_program->on_hardware = 0;
i915->current_program->params_uptodate = 0;
}
i915->current_program = p;
}
/* Important:
*/
VB->AttribPtr[VERT_ATTRIB_POS] = VB->NdcPtr;

View file

@ -591,6 +591,11 @@ void i915ValidateTextureProgram( i915ContextPtr i915 )
intel->specoffset = 0;
offset = 0;
if (i915->current_program) {
i915->current_program->on_hardware = 0;
i915->current_program->params_uptodate = 0;
}
if (i915->vertex_fog == I915_FOG_PIXEL) {
EMIT_ATTR( _TNL_ATTRIB_POS, EMIT_4F_VIEWPORT, S4_VFMT_XYZW, 16 );
RENDERINPUTS_CLEAR( index_bitset, _TNL_ATTRIB_FOG );

View file

@ -48,8 +48,10 @@ static void i915_render_start( intelContextPtr intel )
if (ctx->FragmentProgram._Active)
i915ValidateFragmentProgram( i915 );
else
else {
assert(!ctx->_MaintainTexEnvProgram);
i915ValidateTextureProgram( i915 );
}
}