:envvar:`MESA_LOG_FILE`
specifies a file name for logging all errors, warnings, etc., rather
than stderr
-:envvar:`MESA_TEX_PROG`
- if set, implement conventional texture environment modes with fragment
- programs (intended for developers only)
-:envvar:`MESA_TNL_PROG`
- if set, implement conventional vertex transformation operations with
- vertex programs (intended for developers only). Setting this variable
- automatically sets the :envvar:`MESA_TEX_PROG` variable as well.
:envvar:`MESA_EXTENSION_OVERRIDE`
can be used to enable/disable extensions. A value such as
``GL_EXT_foo -GL_EXT_bar`` will enable the ``GL_EXT_foo`` extension
ctx->Exec = ctx->OutsideBeginEnd;
ctx->CurrentClientDispatch = ctx->CurrentServerDispatch = ctx->OutsideBeginEnd;
- ctx->FragmentProgram._MaintainTexEnvProgram
- = (getenv("MESA_TEX_PROG") != NULL);
-
- ctx->VertexProgram._MaintainTnlProgram
- = (getenv("MESA_TNL_PROG") != NULL);
- if (ctx->VertexProgram._MaintainTnlProgram) {
- /* this is required... */
- ctx->FragmentProgram._MaintainTexEnvProgram = GL_TRUE;
- _mesa_reset_vertex_processing_mode(ctx);
- }
+ _mesa_reset_vertex_processing_mode(ctx);
/* Mesa core handles all the formats that mesa core knows about.
* Drivers will want to override this list with just the formats
FALLTHROUGH;
case API_OPENGL_CORE:
+ case API_OPENGLES2:
break;
case API_OPENGLES:
/**
texUnit->GenR._ModeBit = TEXGEN_REFLECTION_MAP_NV;
}
break;
- case API_OPENGLES2:
- ctx->FragmentProgram._MaintainTexEnvProgram = GL_TRUE;
- ctx->VertexProgram._MaintainTnlProgram = GL_TRUE;
- _mesa_reset_vertex_processing_mode(ctx);
- break;
}
ctx->FirstTimeCurrent = GL_TRUE;
GLboolean Enabled; /**< User-set GL_VERTEX_PROGRAM_ARB/NV flag */
GLboolean PointSizeEnabled; /**< GL_VERTEX_PROGRAM_POINT_SIZE_ARB/NV */
GLboolean TwoSideEnabled; /**< GL_VERTEX_PROGRAM_TWO_SIDE_ARB/NV */
- /** Should fixed-function T&L be implemented with a vertex prog? */
- GLboolean _MaintainTnlProgram;
/** Whether the fixed-func program is being used right now. */
GLboolean _UsesTnlProgram;
struct gl_fragment_program_state
{
GLboolean Enabled; /**< User-set fragment program enable flag */
- /** Should fixed-function texturing be implemented with a fragment prog? */
- GLboolean _MaintainTexEnvProgram;
/** Whether the fixed-func program is being used right now. */
GLboolean _UsesTexEnvProgram;
_mesa_reference_program(ctx, &ctx->FragmentProgram._TexEnvProgram,
NULL);
}
- else if (ctx->FragmentProgram._MaintainTexEnvProgram) {
+ else {
/* Use fragment program generated from fixed-function state */
struct gl_shader_program *f = _mesa_get_fixed_func_fragment_program(ctx);
_mesa_reference_program(ctx, &ctx->FragmentProgram._TexEnvProgram,
f->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program);
}
- else {
- /* No fragment program */
- _mesa_reference_program(ctx, &ctx->FragmentProgram._Current, NULL);
- _mesa_reference_program(ctx, &ctx->FragmentProgram._TexEnvProgram,
- NULL);
- }
if (gsProg) {
/* Use GLSL geometry shader */
_mesa_reference_program(ctx, &ctx->VertexProgram._Current,
ctx->VertexProgram.Current);
}
- else if (ctx->VertexProgram._MaintainTnlProgram) {
+ else {
/* Use vertex program generated from fixed-function state */
assert(VP_MODE_FF == ctx->VertexProgram._VPMode);
_mesa_reference_program(ctx, &ctx->VertexProgram._Current,
_mesa_reference_program(ctx, &ctx->VertexProgram._TnlProgram,
ctx->VertexProgram._Current);
}
- else {
- /* no vertex program */
- assert(VP_MODE_FF == ctx->VertexProgram._VPMode);
- _mesa_reference_program(ctx, &ctx->VertexProgram._Current, NULL);
- }
if (csProg) {
/* Use GLSL compute shader */
update_fixed_func_program_usage(struct gl_context *ctx)
{
ctx->FragmentProgram._UsesTexEnvProgram =
- ctx->FragmentProgram._MaintainTexEnvProgram &&
!ctx->_Shader->CurrentProgram[MESA_SHADER_FRAGMENT] && /* GLSL*/
!_mesa_arb_fragment_program_enabled(ctx) &&
!(_mesa_ati_fragment_shader_enabled(ctx) &&
ctx->ATIFragmentShader.Current->Program);
ctx->VertexProgram._UsesTnlProgram =
- ctx->VertexProgram._MaintainTnlProgram &&
!ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX] && /* GLSL */
!_mesa_arb_vertex_program_enabled(ctx);
}
* VP_MODE_FF mode and the fixed-func pipeline is emulated by shaders.
*/
ctx->VertexProgram._VPModeOptimizesConstantAttribs =
- m == VP_MODE_FF &&
- ctx->VertexProgram._MaintainTnlProgram &&
- ctx->FragmentProgram._MaintainTexEnvProgram;
+ m == VP_MODE_FF;
/* Set a filter mask for the net enabled vao arrays.
* This is to mask out arrays that would otherwise supersede required current