summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2015-09-14 14:23:44 -0700
committerIan Romanick <[email protected]>2015-09-23 09:57:08 -0700
commitfd97a055083a8927d1f6458b9015a202f43f8f01 (patch)
tree91a335bcf29b5ee46a4e099c52deec12112138f9 /src
parent22b73f3c2a09375c49bd6202dabdbff368351315 (diff)
t_dd_dmatmp: Require HAVE_TRI_STRIPS
Two drivers use this file, and both support triangle strips. No piglit regressions on i915 (G33) or radeon (Radeon 7500). Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/tnl_dd/t_dd_dmatmp.h36
1 files changed, 8 insertions, 28 deletions
diff --git a/src/mesa/tnl_dd/t_dd_dmatmp.h b/src/mesa/tnl_dd/t_dd_dmatmp.h
index 563875cd75c..42dfd0a57c6 100644
--- a/src/mesa/tnl_dd/t_dd_dmatmp.h
+++ b/src/mesa/tnl_dd/t_dd_dmatmp.h
@@ -39,8 +39,8 @@
* tristrips, lineloops to linestrips), or to indexed vertices.
*/
-#if !HAVE_TRIANGLES || !HAVE_LINES || !HAVE_LINE_STRIPS
-#error "must have lines, line strips, and triangles to use render template"
+#if !HAVE_TRIANGLES || !HAVE_LINES || !HAVE_LINE_STRIPS || !HAVE_TRI_STRIPS
+#error "must have lines, line strips, triangles, and triangle strips to use render template"
#endif
#if HAVE_QUAD_STRIPS || HAVE_QUADS
@@ -281,7 +281,6 @@ static void TAG(render_tri_strip_verts)( struct gl_context *ctx,
GLuint count,
GLuint flags )
{
- if (HAVE_TRI_STRIPS) {
LOCAL_VARS;
GLuint j, nr;
int dmasz = GET_SUBSEQUENT_VB_MAX_VERTS();
@@ -307,11 +306,6 @@ static void TAG(render_tri_strip_verts)( struct gl_context *ctx,
}
FLUSH();
-
- } else {
- fprintf(stderr, "%s - cannot draw primitive\n", __func__);
- return;
- }
}
static void TAG(render_tri_fan_verts)( struct gl_context *ctx,
@@ -399,8 +393,7 @@ static void TAG(render_quad_strip_verts)( struct gl_context *ctx,
{
GLuint j, nr;
- if (HAVE_TRI_STRIPS &&
- ctx->Light.ShadeModel == GL_FLAT &&
+ if (ctx->Light.ShadeModel == GL_FLAT &&
TNL_CONTEXT(ctx)->vb.AttribPtr[_TNL_ATTRIB_COLOR0]->stride) {
if (HAVE_ELTS) {
LOCAL_VARS;
@@ -458,7 +451,7 @@ static void TAG(render_quad_strip_verts)( struct gl_context *ctx,
return;
}
}
- else if (HAVE_TRI_STRIPS) {
+ else {
LOCAL_VARS;
int dmasz = GET_SUBSEQUENT_VB_MAX_VERTS();
int currentsz;
@@ -486,10 +479,6 @@ static void TAG(render_quad_strip_verts)( struct gl_context *ctx,
}
FLUSH();
-
- } else {
- fprintf(stderr, "%s - cannot draw primitive\n", __func__);
- return;
}
}
@@ -795,7 +784,6 @@ static void TAG(render_tri_strip_elts)( struct gl_context *ctx,
GLuint count,
GLuint flags )
{
- if (HAVE_TRI_STRIPS) {
LOCAL_VARS;
GLuint j, nr;
GLuint *elts = TNL_CONTEXT(ctx)->vb.Elts;
@@ -821,11 +809,6 @@ static void TAG(render_tri_strip_elts)( struct gl_context *ctx,
FLUSH();
currentsz = dmasz;
}
- } else {
- /* TODO: try to emit as indexed triangles */
- fprintf(stderr, "%s - cannot draw primitive\n", __func__);
- return;
- }
}
static void TAG(render_tri_fan_elts)( struct gl_context *ctx,
@@ -909,7 +892,6 @@ static void TAG(render_quad_strip_elts)( struct gl_context *ctx,
GLuint count,
GLuint flags )
{
- if (HAVE_TRI_STRIPS) {
LOCAL_VARS;
GLuint *elts = TNL_CONTEXT(ctx)->vb.Elts;
int dmasz = GET_SUBSEQUENT_VB_MAX_ELTS();
@@ -966,7 +948,6 @@ static void TAG(render_quad_strip_elts)( struct gl_context *ctx,
currentsz = dmasz;
}
}
- }
}
@@ -1078,7 +1059,7 @@ static GLboolean TAG(validate_render)( struct gl_context *ctx,
ok = GL_TRUE;
break;
case GL_TRIANGLE_STRIP:
- ok = HAVE_TRI_STRIPS;
+ ok = GL_TRUE;
break;
case GL_TRIANGLE_FAN:
ok = HAVE_TRI_FANS;
@@ -1093,9 +1074,8 @@ static GLboolean TAG(validate_render)( struct gl_context *ctx,
break;
case GL_QUAD_STRIP:
if (VB->Elts) {
- ok = HAVE_TRI_STRIPS;
- } else if (HAVE_TRI_STRIPS &&
- ctx->Light.ShadeModel == GL_FLAT &&
+ ok = GL_TRUE;
+ } else if (ctx->Light.ShadeModel == GL_FLAT &&
VB->AttribPtr[_TNL_ATTRIB_COLOR0]->stride != 0) {
if (HAVE_ELTS) {
ok = (GLint) count < GET_SUBSEQUENT_VB_MAX_ELTS();
@@ -1105,7 +1085,7 @@ static GLboolean TAG(validate_render)( struct gl_context *ctx,
}
}
else
- ok = HAVE_TRI_STRIPS;
+ ok = GL_TRUE;
break;
case GL_QUADS:
if (HAVE_ELTS) {