i915 will use _TexEnvProgram (if active)
This commit is contained in:
@@ -72,11 +72,13 @@ static void i915InvalidateState( GLcontext *ctx, GLuint new_state )
|
|||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
struct i915_fragment_program *p =
|
struct i915_fragment_program *p =
|
||||||
(struct i915_fragment_program *)ctx->FragmentProgram.Current;
|
(struct i915_fragment_program *)ctx->FragmentProgram._Current;
|
||||||
if (p->nr_params)
|
if (p && p->nr_params)
|
||||||
p->params_uptodate = 0;
|
p->params_uptodate = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (new_state & (_NEW_FOG|_NEW_HINT|_NEW_PROGRAM))
|
||||||
|
i915_update_fog(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -309,6 +309,7 @@ extern void i915_print_ureg( const char *msg, GLuint ureg );
|
|||||||
*/
|
*/
|
||||||
extern void i915InitStateFunctions( struct dd_function_table *functions );
|
extern void i915InitStateFunctions( struct dd_function_table *functions );
|
||||||
extern void i915InitState( i915ContextPtr i915 );
|
extern void i915InitState( i915ContextPtr i915 );
|
||||||
|
extern void i915_update_fog( GLcontext *ctx );
|
||||||
|
|
||||||
|
|
||||||
/*======================================================================
|
/*======================================================================
|
||||||
|
@@ -245,7 +245,7 @@ do { \
|
|||||||
*/
|
*/
|
||||||
static void upload_program( struct i915_fragment_program *p )
|
static void upload_program( struct i915_fragment_program *p )
|
||||||
{
|
{
|
||||||
const struct fragment_program *program = p->ctx->FragmentProgram.Current;
|
const struct fragment_program *program = p->ctx->FragmentProgram._Current;
|
||||||
const struct fp_instruction *inst = program->Instructions;
|
const struct fp_instruction *inst = program->Instructions;
|
||||||
|
|
||||||
/* _mesa_debug_fp_inst(program->Base.NumInstructions, inst); */
|
/* _mesa_debug_fp_inst(program->Base.NumInstructions, inst); */
|
||||||
@@ -949,7 +949,7 @@ void i915ValidateFragmentProgram( i915ContextPtr i915 )
|
|||||||
struct vertex_buffer *VB = &tnl->vb;
|
struct vertex_buffer *VB = &tnl->vb;
|
||||||
|
|
||||||
struct i915_fragment_program *p =
|
struct i915_fragment_program *p =
|
||||||
(struct i915_fragment_program *)ctx->FragmentProgram.Current;
|
(struct i915_fragment_program *)ctx->FragmentProgram._Current;
|
||||||
|
|
||||||
GLuint inputsRead = p->FragProg.InputsRead;
|
GLuint inputsRead = p->FragProg.InputsRead;
|
||||||
GLuint s4 = i915->state.Ctx[I915_CTXREG_LIS4] & ~S4_VFMT_MASK;
|
GLuint s4 = i915->state.Ctx[I915_CTXREG_LIS4] & ~S4_VFMT_MASK;
|
||||||
|
@@ -521,17 +521,17 @@ static void i915ShadeModel(GLcontext *ctx, GLenum mode)
|
|||||||
/* =============================================================
|
/* =============================================================
|
||||||
* Fog
|
* Fog
|
||||||
*/
|
*/
|
||||||
static void update_fog( GLcontext *ctx )
|
void i915_update_fog( GLcontext *ctx )
|
||||||
{
|
{
|
||||||
i915ContextPtr i915 = I915_CONTEXT(ctx);
|
i915ContextPtr i915 = I915_CONTEXT(ctx);
|
||||||
GLenum mode;
|
GLenum mode;
|
||||||
GLboolean enabled;
|
GLboolean enabled;
|
||||||
GLboolean try_pixel_fog;
|
GLboolean try_pixel_fog;
|
||||||
|
|
||||||
if (ctx->FragmentProgram.Enabled && ctx->FragmentProgram.Current) {
|
if (ctx->FragmentProgram._Active) {
|
||||||
/* Pull in static fog state from program */
|
/* Pull in static fog state from program */
|
||||||
|
|
||||||
mode = ctx->FragmentProgram.Current->FogOption;
|
mode = ctx->FragmentProgram._Current->FogOption;
|
||||||
enabled = (mode != GL_NONE);
|
enabled = (mode != GL_NONE);
|
||||||
try_pixel_fog = 1;
|
try_pixel_fog = 1;
|
||||||
}
|
}
|
||||||
@@ -623,7 +623,6 @@ static void i915Fogfv(GLcontext *ctx, GLenum pname, const GLfloat *param)
|
|||||||
case GL_FOG_MODE:
|
case GL_FOG_MODE:
|
||||||
case GL_FOG_START:
|
case GL_FOG_START:
|
||||||
case GL_FOG_END:
|
case GL_FOG_END:
|
||||||
update_fog( ctx );
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GL_FOG_DENSITY:
|
case GL_FOG_DENSITY:
|
||||||
@@ -658,7 +657,6 @@ static void i915Hint(GLcontext *ctx, GLenum target, GLenum state)
|
|||||||
{
|
{
|
||||||
switch (target) {
|
switch (target) {
|
||||||
case GL_FOG_HINT:
|
case GL_FOG_HINT:
|
||||||
update_fog( ctx );
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -703,7 +701,6 @@ static void i915Enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case GL_FRAGMENT_PROGRAM_ARB:
|
case GL_FRAGMENT_PROGRAM_ARB:
|
||||||
update_fog( ctx );
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GL_DITHER:
|
case GL_DITHER:
|
||||||
@@ -743,7 +740,6 @@ static void i915Enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case GL_FOG:
|
case GL_FOG:
|
||||||
update_fog( ctx );
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GL_CULL_FACE:
|
case GL_CULL_FACE:
|
||||||
|
@@ -46,7 +46,7 @@ static void i915_render_start( intelContextPtr intel )
|
|||||||
GLcontext *ctx = &intel->ctx;
|
GLcontext *ctx = &intel->ctx;
|
||||||
i915ContextPtr i915 = I915_CONTEXT(intel);
|
i915ContextPtr i915 = I915_CONTEXT(intel);
|
||||||
|
|
||||||
if (ctx->FragmentProgram.Enabled && ctx->FragmentProgram.Current)
|
if (ctx->FragmentProgram._Active)
|
||||||
i915ValidateFragmentProgram( i915 );
|
i915ValidateFragmentProgram( i915 );
|
||||||
else
|
else
|
||||||
i915ValidateTextureProgram( i915 );
|
i915ValidateTextureProgram( i915 );
|
||||||
|
@@ -642,7 +642,7 @@ void intelChooseRenderState(GLcontext *ctx)
|
|||||||
TNLcontext *tnl = TNL_CONTEXT(ctx);
|
TNLcontext *tnl = TNL_CONTEXT(ctx);
|
||||||
intelContextPtr intel = INTEL_CONTEXT(ctx);
|
intelContextPtr intel = INTEL_CONTEXT(ctx);
|
||||||
GLuint flags = ctx->_TriangleCaps;
|
GLuint flags = ctx->_TriangleCaps;
|
||||||
struct fragment_program *program = ctx->FragmentProgram.Current;
|
struct fragment_program *program = ctx->FragmentProgram._Current;
|
||||||
GLboolean have_wpos = (program && (program->InputsRead & FRAG_BIT_WPOS));
|
GLboolean have_wpos = (program && (program->InputsRead & FRAG_BIT_WPOS));
|
||||||
GLuint index = 0;
|
GLuint index = 0;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user