There's no need to use a clip flag for NEGW on these gens, so no reason we can't just enable 8 planes.
V2: Bump (and document!) MAX_VERTS in the clip code. Signed-off-by: Chris Forbes <chr...@ijw.co.nz> --- src/mesa/drivers/dri/i965/brw_clip.h | 6 +++++- src/mesa/drivers/dri/i965/brw_clip_tri.c | 4 ++-- src/mesa/drivers/dri/i965/brw_context.c | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_clip.h b/src/mesa/drivers/dri/i965/brw_clip.h index 2b02f85..671d3a9 100644 --- a/src/mesa/drivers/dri/i965/brw_clip.h +++ b/src/mesa/drivers/dri/i965/brw_clip.h @@ -36,7 +36,11 @@ #include "brw_context.h" #include "brw_eu.h" -#define MAX_VERTS (3+6+6) +/* Initial 3 verts, plus at most 6 additional verts from intersections + * with fixed planes, plus at most 8 additional verts from intersections + * with user clip planes + */ +#define MAX_VERTS (3+6+8) /* Note that if unfilled primitives are being emitted, we have to fix * up polygon offset and flatshading at this point: diff --git a/src/mesa/drivers/dri/i965/brw_clip_tri.c b/src/mesa/drivers/dri/i965/brw_clip_tri.c index 19179c1..b37c8c9 100644 --- a/src/mesa/drivers/dri/i965/brw_clip_tri.c +++ b/src/mesa/drivers/dri/i965/brw_clip_tri.c @@ -273,9 +273,9 @@ void brw_clip_tri( struct brw_clip_compile *c ) brw_MOV(p, get_addr_reg(freelist_ptr), brw_address(c->reg.vertex[3]) ); /* Set the initial vertex source mask: The first 6 planes are the bounds - * of the view volume; the next 6 planes are the user clipping planes. + * of the view volume; the next 8 planes are the user clipping planes. */ - brw_MOV(p, c->reg.vertex_src_mask, brw_imm_ud(0xfc0)); + brw_MOV(p, c->reg.vertex_src_mask, brw_imm_ud(0x3fc0)); brw_DO(p, BRW_EXECUTE_1); { diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 1669a23..f7d3b71 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -190,7 +190,7 @@ brw_initialize_context_constants(struct brw_context *brw) ctx->Const.MaxPointSizeAA = 255.0; ctx->Const.PointSizeGranularity = 1.0; - if (brw->gen >= 6) + if (brw->gen >= 5 || brw->is_g4x) ctx->Const.MaxClipPlanes = 8; ctx->Const.VertexProgram.MaxNativeInstructions = 16 * 1024; -- 1.8.3.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev