draw: Do not run full pipeline when flatshade_first for point primitives.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user