i965: Split brw_set_prim into brw/gen6 variants
The "slight optimization to avoid the GS program" in brw_set_prim() is not used by Gen 6, since Gen 6 doesn't use a GS program. Also, Gen 6 doesn't use reduced primitives. Also, document that intel_context.reduced_primitive is only used for Gen < 6 Reviewed-by: Eric Anholt <eric@anho.net> Signed-off-by: Chad Versace <chad@chad-versace.us>
This commit is contained in:
parent
95fd5e5aba
commit
9559ca600d
2 changed files with 19 additions and 2 deletions
|
|
@ -115,6 +115,19 @@ static GLuint brw_set_prim(struct brw_context *brw,
|
|||
return prim_to_hw_prim[mode];
|
||||
}
|
||||
|
||||
static GLuint gen6_set_prim(struct brw_context *brw,
|
||||
const struct _mesa_prim *prim)
|
||||
{
|
||||
DBG("PRIM: %s\n", _mesa_lookup_enum_by_nr(prim->mode));
|
||||
|
||||
if (prim->mode != brw->primitive) {
|
||||
brw->primitive = prim->mode;
|
||||
brw->state.dirty.brw |= BRW_NEW_PRIMITIVE;
|
||||
}
|
||||
|
||||
return prim_to_hw_prim[mode];
|
||||
}
|
||||
|
||||
|
||||
static GLuint trim(GLenum prim, GLuint length)
|
||||
{
|
||||
|
|
@ -335,7 +348,11 @@ static GLboolean brw_try_draw_prims( struct gl_context *ctx,
|
|||
*/
|
||||
intel_batchbuffer_require_space(intel, estimated_max_prim_size, false);
|
||||
|
||||
hw_prim = brw_set_prim(brw, &prim[i]);
|
||||
if (intel->gen < 6)
|
||||
hw_prim = brw_set_prim(brw, &prim[i]);
|
||||
else
|
||||
hw_prim = gen6_set_prim(brw, &prim[i]);
|
||||
|
||||
if (brw->state.dirty.brw) {
|
||||
brw_validate_state(brw);
|
||||
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ struct intel_context
|
|||
GLuint RenderIndex;
|
||||
GLmatrix ViewportMatrix;
|
||||
GLenum render_primitive;
|
||||
GLenum reduced_primitive;
|
||||
GLenum reduced_primitive; /*< Only gen < 6 */
|
||||
GLuint vertex_size;
|
||||
GLubyte *verts; /* points to tnl->clipspace.vertex_buf */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue