summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoland Scheidegger <rscheidegger@gmx.ch>2006-06-10 00:51:54 +0000
committerRoland Scheidegger <rscheidegger@gmx.ch>2006-06-10 00:51:54 +0000
commit5b90cf2f2f3dcda0d674c01859847149b4054608 (patch)
tree5918bb84fd2704a24f8b1122646e5e8a6c297e93 /src
parentda4b01211bb47648f47e04c9600c4bff0783c2ab (diff)
enable arb_vertex_program by default if drm is new enough. Do a fallback when it's a nv_vp as there could be issues.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/r200/r200_context.c3
-rw-r--r--src/mesa/drivers/dri/r200/r200_vertprog.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/r200/r200_context.c b/src/mesa/drivers/dri/r200/r200_context.c
index 3e41d86314..0e85b9680c 100644
--- a/src/mesa/drivers/dri/r200/r200_context.c
+++ b/src/mesa/drivers/dri/r200/r200_context.c
@@ -478,7 +478,8 @@ GLboolean r200CreateContext( const __GLcontextModes *glVisual,
if (rmesa->r200Screen->drmSupportsBlendColor) {
driInitExtensions( ctx, blend_extensions, GL_FALSE );
}
- if(driQueryOptionb(&rmesa->optionCache, "arb_vertex_program"))
+ if(rmesa->r200Screen->drmSupportsVertexProgram ||
+ driQueryOptionb(&rmesa->optionCache, "arb_vertex_program"))
driInitSingleExtension( ctx, ARB_vp_extension );
if(driQueryOptionb(&rmesa->optionCache, "nv_vertex_program"))
driInitSingleExtension( ctx, NV_vp_extension );
diff --git a/src/mesa/drivers/dri/r200/r200_vertprog.c b/src/mesa/drivers/dri/r200/r200_vertprog.c
index dfacdc88cc..615953b610 100644
--- a/src/mesa/drivers/dri/r200/r200_vertprog.c
+++ b/src/mesa/drivers/dri/r200/r200_vertprog.c
@@ -414,6 +414,11 @@ static GLboolean r200_translate_vertex_program(struct r200_vertex_program *vp)
return GL_FALSE;
}
+ if (mesa_vp->IsNVProgram) {
+ /* subtle differences in spec like guaranteed initialized regs could cause
+ headaches. Might want to remove the driconf option to enable it completely */
+ return GL_FALSE;
+ }
/* Initial value should be last tmp reg that hw supports.
Strangely enough r300 doesnt mind even though these would be out of range.
Smart enough to realize that it doesnt need it? */