mesa: Remove miscellaneous remains of NV_vertex_program.
v2: Rebase on top of get.c changes. Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
This commit is contained in:
@@ -826,7 +826,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
|
|||||||
case GL_VERTEX_PROGRAM_ARB:
|
case GL_VERTEX_PROGRAM_ARB:
|
||||||
if (ctx->API != API_OPENGL)
|
if (ctx->API != API_OPENGL)
|
||||||
goto invalid_enum_error;
|
goto invalid_enum_error;
|
||||||
CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap);
|
CHECK_EXTENSION(ARB_vertex_program, cap);
|
||||||
if (ctx->VertexProgram.Enabled == state)
|
if (ctx->VertexProgram.Enabled == state)
|
||||||
return;
|
return;
|
||||||
FLUSH_VERTICES(ctx, _NEW_PROGRAM);
|
FLUSH_VERTICES(ctx, _NEW_PROGRAM);
|
||||||
@@ -838,7 +838,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
|
|||||||
*/
|
*/
|
||||||
if (!_mesa_is_desktop_gl(ctx))
|
if (!_mesa_is_desktop_gl(ctx))
|
||||||
goto invalid_enum_error;
|
goto invalid_enum_error;
|
||||||
CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap);
|
CHECK_EXTENSION(ARB_vertex_program, cap);
|
||||||
if (ctx->VertexProgram.PointSizeEnabled == state)
|
if (ctx->VertexProgram.PointSizeEnabled == state)
|
||||||
return;
|
return;
|
||||||
FLUSH_VERTICES(ctx, _NEW_PROGRAM);
|
FLUSH_VERTICES(ctx, _NEW_PROGRAM);
|
||||||
@@ -847,7 +847,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
|
|||||||
case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
|
case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
|
||||||
if (ctx->API != API_OPENGL)
|
if (ctx->API != API_OPENGL)
|
||||||
goto invalid_enum_error;
|
goto invalid_enum_error;
|
||||||
CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap);
|
CHECK_EXTENSION(ARB_vertex_program, cap);
|
||||||
if (ctx->VertexProgram.TwoSideEnabled == state)
|
if (ctx->VertexProgram.TwoSideEnabled == state)
|
||||||
return;
|
return;
|
||||||
FLUSH_VERTICES(ctx, _NEW_PROGRAM);
|
FLUSH_VERTICES(ctx, _NEW_PROGRAM);
|
||||||
@@ -1479,7 +1479,7 @@ _mesa_IsEnabled( GLenum cap )
|
|||||||
case GL_VERTEX_PROGRAM_ARB:
|
case GL_VERTEX_PROGRAM_ARB:
|
||||||
if (ctx->API != API_OPENGL)
|
if (ctx->API != API_OPENGL)
|
||||||
goto invalid_enum_error;
|
goto invalid_enum_error;
|
||||||
CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program);
|
CHECK_EXTENSION(ARB_vertex_program);
|
||||||
return ctx->VertexProgram.Enabled;
|
return ctx->VertexProgram.Enabled;
|
||||||
case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
|
case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
|
||||||
/* This was added with ARB_vertex_program, but it is also used with
|
/* This was added with ARB_vertex_program, but it is also used with
|
||||||
@@ -1487,12 +1487,12 @@ _mesa_IsEnabled( GLenum cap )
|
|||||||
*/
|
*/
|
||||||
if (!_mesa_is_desktop_gl(ctx))
|
if (!_mesa_is_desktop_gl(ctx))
|
||||||
goto invalid_enum_error;
|
goto invalid_enum_error;
|
||||||
CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program);
|
CHECK_EXTENSION(ARB_vertex_program);
|
||||||
return ctx->VertexProgram.PointSizeEnabled;
|
return ctx->VertexProgram.PointSizeEnabled;
|
||||||
case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
|
case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
|
||||||
if (ctx->API != API_OPENGL)
|
if (ctx->API != API_OPENGL)
|
||||||
goto invalid_enum_error;
|
goto invalid_enum_error;
|
||||||
CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program);
|
CHECK_EXTENSION(ARB_vertex_program);
|
||||||
return ctx->VertexProgram.TwoSideEnabled;
|
return ctx->VertexProgram.TwoSideEnabled;
|
||||||
|
|
||||||
case GL_FRAGMENT_PROGRAM_NV:
|
case GL_FRAGMENT_PROGRAM_NV:
|
||||||
|
@@ -312,8 +312,6 @@ static const struct extension extension_table[] = {
|
|||||||
{ "GL_NV_texture_barrier", o(NV_texture_barrier), GL, 2009 },
|
{ "GL_NV_texture_barrier", o(NV_texture_barrier), GL, 2009 },
|
||||||
{ "GL_NV_texture_env_combine4", o(NV_texture_env_combine4), GLL, 1999 },
|
{ "GL_NV_texture_env_combine4", o(NV_texture_env_combine4), GLL, 1999 },
|
||||||
{ "GL_NV_texture_rectangle", o(NV_texture_rectangle), GLL, 2000 },
|
{ "GL_NV_texture_rectangle", o(NV_texture_rectangle), GLL, 2000 },
|
||||||
{ "GL_NV_vertex_program1_1", o(NV_vertex_program1_1), GLL, 2001 },
|
|
||||||
{ "GL_NV_vertex_program", o(NV_vertex_program), GLL, 2000 },
|
|
||||||
{ "GL_S3_s3tc", o(S3_s3tc), GL, 1999 },
|
{ "GL_S3_s3tc", o(S3_s3tc), GL, 1999 },
|
||||||
{ "GL_SGIS_generate_mipmap", o(dummy_true), GLL, 1997 },
|
{ "GL_SGIS_generate_mipmap", o(dummy_true), GLL, 1997 },
|
||||||
{ "GL_SGIS_texture_border_clamp", o(ARB_texture_border_clamp), GLL, 1997 },
|
{ "GL_SGIS_texture_border_clamp", o(ARB_texture_border_clamp), GLL, 1997 },
|
||||||
|
@@ -305,7 +305,6 @@ EXTRA_EXT(NV_fog_distance);
|
|||||||
EXTRA_EXT(EXT_texture_filter_anisotropic);
|
EXTRA_EXT(EXT_texture_filter_anisotropic);
|
||||||
EXTRA_EXT(IBM_rasterpos_clip);
|
EXTRA_EXT(IBM_rasterpos_clip);
|
||||||
EXTRA_EXT(NV_point_sprite);
|
EXTRA_EXT(NV_point_sprite);
|
||||||
EXTRA_EXT(NV_vertex_program);
|
|
||||||
EXTRA_EXT(NV_fragment_program);
|
EXTRA_EXT(NV_fragment_program);
|
||||||
EXTRA_EXT(NV_texture_rectangle);
|
EXTRA_EXT(NV_texture_rectangle);
|
||||||
EXTRA_EXT(EXT_stencil_two_side);
|
EXTRA_EXT(EXT_stencil_two_side);
|
||||||
@@ -331,7 +330,6 @@ EXTRA_EXT(EXT_pixel_buffer_object);
|
|||||||
EXTRA_EXT(ARB_vertex_program);
|
EXTRA_EXT(ARB_vertex_program);
|
||||||
EXTRA_EXT2(NV_point_sprite, ARB_point_sprite);
|
EXTRA_EXT2(NV_point_sprite, ARB_point_sprite);
|
||||||
EXTRA_EXT2(ARB_fragment_program, NV_fragment_program);
|
EXTRA_EXT2(ARB_fragment_program, NV_fragment_program);
|
||||||
EXTRA_EXT2(ARB_vertex_program, NV_vertex_program);
|
|
||||||
EXTRA_EXT2(ARB_vertex_program, ARB_fragment_program);
|
EXTRA_EXT2(ARB_vertex_program, ARB_fragment_program);
|
||||||
EXTRA_EXT(ARB_geometry_shader4);
|
EXTRA_EXT(ARB_geometry_shader4);
|
||||||
EXTRA_EXT(ARB_color_buffer_float);
|
EXTRA_EXT(ARB_color_buffer_float);
|
||||||
@@ -343,23 +341,6 @@ EXTRA_EXT(ARB_blend_func_extended);
|
|||||||
EXTRA_EXT(ARB_uniform_buffer_object);
|
EXTRA_EXT(ARB_uniform_buffer_object);
|
||||||
EXTRA_EXT(ARB_timer_query);
|
EXTRA_EXT(ARB_timer_query);
|
||||||
|
|
||||||
static const int
|
|
||||||
extra_ARB_vertex_program_ARB_fragment_program_NV_vertex_program[] = {
|
|
||||||
EXT(ARB_vertex_program),
|
|
||||||
EXT(ARB_fragment_program),
|
|
||||||
EXT(NV_vertex_program),
|
|
||||||
EXTRA_END
|
|
||||||
};
|
|
||||||
|
|
||||||
static const int
|
|
||||||
extra_NV_vertex_program_ARB_vertex_program_ARB_fragment_program_NV_vertex_program[] = {
|
|
||||||
EXT(NV_vertex_program),
|
|
||||||
EXT(ARB_vertex_program),
|
|
||||||
EXT(ARB_fragment_program),
|
|
||||||
EXT(NV_vertex_program),
|
|
||||||
EXTRA_END
|
|
||||||
};
|
|
||||||
|
|
||||||
static const int
|
static const int
|
||||||
extra_NV_primitive_restart[] = {
|
extra_NV_primitive_restart[] = {
|
||||||
EXT(NV_primitive_restart),
|
EXT(NV_primitive_restart),
|
||||||
|
@@ -513,9 +513,6 @@ descriptor=[
|
|||||||
[ "POINT_SPRITE_R_MODE_NV", "CONTEXT_ENUM(Point.SpriteRMode), extra_NV_point_sprite" ],
|
[ "POINT_SPRITE_R_MODE_NV", "CONTEXT_ENUM(Point.SpriteRMode), extra_NV_point_sprite" ],
|
||||||
[ "POINT_SPRITE_COORD_ORIGIN", "CONTEXT_ENUM(Point.SpriteOrigin), extra_NV_point_sprite_ARB_point_sprite" ],
|
[ "POINT_SPRITE_COORD_ORIGIN", "CONTEXT_ENUM(Point.SpriteOrigin), extra_NV_point_sprite_ARB_point_sprite" ],
|
||||||
|
|
||||||
# GL_NV_vertex_program
|
|
||||||
[ "VERTEX_PROGRAM_BINDING_NV", "LOC_CUSTOM, TYPE_INT, 0, extra_NV_vertex_program" ],
|
|
||||||
|
|
||||||
# GL_NV_fragment_program
|
# GL_NV_fragment_program
|
||||||
[ "FRAGMENT_PROGRAM_NV", "CONTEXT_BOOL(FragmentProgram.Enabled), extra_NV_fragment_program" ],
|
[ "FRAGMENT_PROGRAM_NV", "CONTEXT_BOOL(FragmentProgram.Enabled), extra_NV_fragment_program" ],
|
||||||
[ "FRAGMENT_PROGRAM_BINDING_NV", "LOC_CUSTOM, TYPE_INT, 0, extra_NV_fragment_program" ],
|
[ "FRAGMENT_PROGRAM_BINDING_NV", "LOC_CUSTOM, TYPE_INT, 0, extra_NV_fragment_program" ],
|
||||||
@@ -550,23 +547,23 @@ descriptor=[
|
|||||||
|
|
||||||
# GL_ARB_vertex_program
|
# GL_ARB_vertex_program
|
||||||
# == GL_VERTEX_PROGRAM_NV
|
# == GL_VERTEX_PROGRAM_NV
|
||||||
[ "VERTEX_PROGRAM_ARB", "CONTEXT_BOOL(VertexProgram.Enabled), extra_ARB_vertex_program_NV_vertex_program" ],
|
[ "VERTEX_PROGRAM_ARB", "CONTEXT_BOOL(VertexProgram.Enabled), extra_ARB_vertex_program" ],
|
||||||
# == GL_VERTEX_PROGRAM_POINT_SIZE_NV
|
# == GL_VERTEX_PROGRAM_POINT_SIZE_NV
|
||||||
[ "VERTEX_PROGRAM_POINT_SIZE_ARB", "CONTEXT_BOOL(VertexProgram.PointSizeEnabled), extra_ARB_vertex_program_NV_vertex_program" ],
|
[ "VERTEX_PROGRAM_POINT_SIZE_ARB", "CONTEXT_BOOL(VertexProgram.PointSizeEnabled), extra_ARB_vertex_program" ],
|
||||||
# == GL_VERTEX_PROGRAM_TWO_SIDE_NV
|
# == GL_VERTEX_PROGRAM_TWO_SIDE_NV
|
||||||
[ "VERTEX_PROGRAM_TWO_SIDE_ARB", "CONTEXT_BOOL(VertexProgram.TwoSideEnabled), extra_ARB_vertex_program_NV_vertex_program" ],
|
[ "VERTEX_PROGRAM_TWO_SIDE_ARB", "CONTEXT_BOOL(VertexProgram.TwoSideEnabled), extra_ARB_vertex_program" ],
|
||||||
# == GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
|
# == GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
|
||||||
[ "MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB", "CONTEXT_INT(Const.MaxProgramMatrixStackDepth), extra_ARB_vertex_program_ARB_fragment_program_NV_vertex_program" ],
|
[ "MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB", "CONTEXT_INT(Const.MaxProgramMatrixStackDepth), extra_ARB_vertex_program_ARB_fragment_program" ],
|
||||||
# == GL_MAX_TRACK_MATRICES_NV
|
# == GL_MAX_TRACK_MATRICES_NV
|
||||||
[ "MAX_PROGRAM_MATRICES_ARB", "CONTEXT_INT(Const.MaxProgramMatrices), extra_ARB_vertex_program_ARB_fragment_program_NV_vertex_program" ],
|
[ "MAX_PROGRAM_MATRICES_ARB", "CONTEXT_INT(Const.MaxProgramMatrices), extra_ARB_vertex_program_ARB_fragment_program" ],
|
||||||
# == GL_CURRENT_MATRIX_STACK_DEPTH_NV
|
# == GL_CURRENT_MATRIX_STACK_DEPTH_NV
|
||||||
[ "CURRENT_MATRIX_STACK_DEPTH_ARB", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_vertex_program_ARB_fragment_program_NV_vertex_program" ],
|
[ "CURRENT_MATRIX_STACK_DEPTH_ARB", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_vertex_program_ARB_fragment_program" ],
|
||||||
# == GL_CURRENT_MATRIX_NV
|
# == GL_CURRENT_MATRIX_NV
|
||||||
[ "CURRENT_MATRIX_ARB", "LOC_CUSTOM, TYPE_MATRIX, 0, extra_ARB_vertex_program_ARB_fragment_program_NV_vertex_program" ],
|
[ "CURRENT_MATRIX_ARB", "LOC_CUSTOM, TYPE_MATRIX, 0, extra_ARB_vertex_program_ARB_fragment_program" ],
|
||||||
# == GL_CURRENT_MATRIX_NV
|
# == GL_CURRENT_MATRIX_NV
|
||||||
[ "TRANSPOSE_CURRENT_MATRIX_ARB", "LOC_CUSTOM, TYPE_MATRIX, 0, extra_ARB_vertex_program_ARB_fragment_program" ],
|
[ "TRANSPOSE_CURRENT_MATRIX_ARB", "LOC_CUSTOM, TYPE_MATRIX, 0, extra_ARB_vertex_program_ARB_fragment_program" ],
|
||||||
# == GL_PROGRAM_ERROR_POSITION_NV
|
# == GL_PROGRAM_ERROR_POSITION_NV
|
||||||
[ "PROGRAM_ERROR_POSITION_ARB", "CONTEXT_INT(Program.ErrorPos), extra_NV_vertex_program_ARB_vertex_program_ARB_fragment_program_NV_vertex_program" ],
|
[ "PROGRAM_ERROR_POSITION_ARB", "CONTEXT_INT(Program.ErrorPos), extra_ARB_vertex_program_ARB_fragment_program" ],
|
||||||
|
|
||||||
# GL_ARB_fragment_program
|
# GL_ARB_fragment_program
|
||||||
[ "FRAGMENT_PROGRAM_ARB", "CONTEXT_BOOL(FragmentProgram.Enabled), extra_ARB_fragment_program" ],
|
[ "FRAGMENT_PROGRAM_ARB", "CONTEXT_BOOL(FragmentProgram.Enabled), extra_ARB_fragment_program" ],
|
||||||
|
@@ -1980,7 +1980,6 @@ struct gl_program
|
|||||||
struct gl_vertex_program
|
struct gl_vertex_program
|
||||||
{
|
{
|
||||||
struct gl_program Base; /**< base class */
|
struct gl_program Base; /**< base class */
|
||||||
GLboolean IsNVProgram; /**< is this a GL_NV_vertex_program program? */
|
|
||||||
GLboolean IsPositionInvariant;
|
GLboolean IsPositionInvariant;
|
||||||
GLboolean UsesClipDistance;
|
GLboolean UsesClipDistance;
|
||||||
};
|
};
|
||||||
@@ -3068,8 +3067,6 @@ struct gl_extensions
|
|||||||
GLboolean NV_texgen_reflection;
|
GLboolean NV_texgen_reflection;
|
||||||
GLboolean NV_texture_env_combine4;
|
GLboolean NV_texture_env_combine4;
|
||||||
GLboolean NV_texture_rectangle;
|
GLboolean NV_texture_rectangle;
|
||||||
GLboolean NV_vertex_program;
|
|
||||||
GLboolean NV_vertex_program1_1;
|
|
||||||
GLboolean SGIS_texture_lod;
|
GLboolean SGIS_texture_lod;
|
||||||
GLboolean TDFX_texture_compression_FXT1;
|
GLboolean TDFX_texture_compression_FXT1;
|
||||||
GLboolean S3_s3tc;
|
GLboolean S3_s3tc;
|
||||||
|
@@ -315,8 +315,7 @@ _mesa_LoadProgramNV(GLenum target, GLuint id, GLsizei len,
|
|||||||
GET_CURRENT_CONTEXT(ctx);
|
GET_CURRENT_CONTEXT(ctx);
|
||||||
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
||||||
|
|
||||||
if (!ctx->Extensions.NV_vertex_program
|
if (!ctx->Extensions.NV_fragment_program) {
|
||||||
&& !ctx->Extensions.NV_fragment_program) {
|
|
||||||
_mesa_error(ctx, GL_INVALID_OPERATION, "glLoadProgramNV()");
|
_mesa_error(ctx, GL_INVALID_OPERATION, "glLoadProgramNV()");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -504,7 +504,6 @@ _mesa_clone_program(struct gl_context *ctx, const struct gl_program *prog)
|
|||||||
const struct gl_vertex_program *vp = gl_vertex_program_const(prog);
|
const struct gl_vertex_program *vp = gl_vertex_program_const(prog);
|
||||||
struct gl_vertex_program *vpc = gl_vertex_program(clone);
|
struct gl_vertex_program *vpc = gl_vertex_program(clone);
|
||||||
vpc->IsPositionInvariant = vp->IsPositionInvariant;
|
vpc->IsPositionInvariant = vp->IsPositionInvariant;
|
||||||
vpc->IsNVProgram = vp->IsNVProgram;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case GL_FRAGMENT_PROGRAM_ARB:
|
case GL_FRAGMENT_PROGRAM_ARB:
|
||||||
|
@@ -231,21 +231,6 @@ init_machine(struct gl_context *ctx, struct gl_program_machine *machine,
|
|||||||
memcpy(machine->VertAttribs, ctx->Current.Attrib,
|
memcpy(machine->VertAttribs, ctx->Current.Attrib,
|
||||||
MAX_VERTEX_GENERIC_ATTRIBS * 4 * sizeof(GLfloat));
|
MAX_VERTEX_GENERIC_ATTRIBS * 4 * sizeof(GLfloat));
|
||||||
|
|
||||||
if (ctx->VertexProgram._Current->IsNVProgram) {
|
|
||||||
GLuint i;
|
|
||||||
/* Output/result regs are initialized to [0,0,0,1] */
|
|
||||||
for (i = 0; i < MAX_NV_VERTEX_PROGRAM_OUTPUTS; i++) {
|
|
||||||
ASSIGN_4V(machine->Outputs[i], 0.0F, 0.0F, 0.0F, 1.0F);
|
|
||||||
}
|
|
||||||
/* Temp regs are initialized to [0,0,0,0] */
|
|
||||||
for (i = 0; i < MAX_NV_VERTEX_PROGRAM_TEMPS; i++) {
|
|
||||||
ASSIGN_4V(machine->Temporaries[i], 0.0F, 0.0F, 0.0F, 0.0F);
|
|
||||||
}
|
|
||||||
for (i = 0; i < MAX_VERTEX_PROGRAM_ADDRESS_REGS; i++) {
|
|
||||||
ASSIGN_4V(machine->AddressReg[i], 0, 0, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
machine->NumDeriv = 0;
|
machine->NumDeriv = 0;
|
||||||
|
|
||||||
/* init condition codes */
|
/* init condition codes */
|
||||||
@@ -420,23 +405,6 @@ run_vp( struct gl_context *ctx, struct tnl_pipeline_stage *stage )
|
|||||||
|
|
||||||
unmap_textures(ctx, program);
|
unmap_textures(ctx, program);
|
||||||
|
|
||||||
/* Fixup fog and point size results if needed */
|
|
||||||
if (program->IsNVProgram) {
|
|
||||||
if (ctx->Fog.Enabled &&
|
|
||||||
(program->Base.OutputsWritten & BITFIELD64_BIT(VERT_RESULT_FOGC)) == 0) {
|
|
||||||
for (i = 0; i < VB->Count; i++) {
|
|
||||||
store->results[VERT_RESULT_FOGC].data[i][0] = 1.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ctx->VertexProgram.PointSizeEnabled &&
|
|
||||||
(program->Base.OutputsWritten & BITFIELD64_BIT(VERT_RESULT_PSIZ)) == 0) {
|
|
||||||
for (i = 0; i < VB->Count; i++) {
|
|
||||||
store->results[VERT_RESULT_PSIZ].data[i][0] = ctx->Point.Size;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (program->IsPositionInvariant) {
|
if (program->IsPositionInvariant) {
|
||||||
/* We need the exact same transform as in the fixed function path here
|
/* We need the exact same transform as in the fixed function path here
|
||||||
* to guarantee invariance, depending on compiler optimization flags
|
* to guarantee invariance, depending on compiler optimization flags
|
||||||
|
Reference in New Issue
Block a user