draw: Do not run full pipeline when flatshade_first for point primitives.

This commit is contained in:
Michal Krol
2008-03-30 23:21:20 +02:00
parent fc98880144
commit 63950b11b6
3 changed files with 11 additions and 1 deletions
-1
View File
@@ -594,7 +594,6 @@ draw_arrays(struct draw_context *draw, unsigned prim,
/* drawing done here: */
if (!draw->rasterizer->bypass_vs ||
(draw->rasterizer->flatshade && draw->rasterizer->flatshade_first) ||
!draw_pt_arrays(draw, prim, start, count)) {
/* we have to run the whole pipeline */
draw_prim(draw, prim, start, count);
+3
View File
@@ -36,6 +36,9 @@
#include "draw/draw_pt.h"
/* XXX: Shouldn't those two functions below use the '>' operator???
*/
static boolean too_many_verts( struct draw_context *draw,
unsigned verts )
{
@@ -76,6 +76,10 @@ draw_need_pipeline(const struct draw_context *draw,
/* AA lines */
if (draw->rasterizer->line_smooth && draw->pipeline.aaline)
return TRUE;
/* first-vertex driven flatshading */
if (draw->rasterizer->flatshade && draw->rasterizer->flatshade_first)
return TRUE;
}
if (points(prim))
@@ -112,6 +116,10 @@ draw_need_pipeline(const struct draw_context *draw,
/* two-side lighting */
if (draw->rasterizer->light_twoside)
return TRUE;
/* first-vertex driven flatshading */
if (draw->rasterizer->flatshade && draw->rasterizer->flatshade_first)
return TRUE;
}
/* polygon cull - this is difficult - hardware can cull just fine