i965: Move get_hw_prim_for_gl_prim to brw_util.c
It's used by brw_compile_gs in brw_vec4_gs_visitor.cpp so it needs to be in a file that's linked into libi965_compiler.la. Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -54,23 +54,6 @@
|
||||
|
||||
#define FILE_DEBUG_FLAG DEBUG_PRIMS
|
||||
|
||||
static const GLuint prim_to_hw_prim[GL_TRIANGLE_STRIP_ADJACENCY+1] = {
|
||||
[GL_POINTS] =_3DPRIM_POINTLIST,
|
||||
[GL_LINES] = _3DPRIM_LINELIST,
|
||||
[GL_LINE_LOOP] = _3DPRIM_LINELOOP,
|
||||
[GL_LINE_STRIP] = _3DPRIM_LINESTRIP,
|
||||
[GL_TRIANGLES] = _3DPRIM_TRILIST,
|
||||
[GL_TRIANGLE_STRIP] = _3DPRIM_TRISTRIP,
|
||||
[GL_TRIANGLE_FAN] = _3DPRIM_TRIFAN,
|
||||
[GL_QUADS] = _3DPRIM_QUADLIST,
|
||||
[GL_QUAD_STRIP] = _3DPRIM_QUADSTRIP,
|
||||
[GL_POLYGON] = _3DPRIM_POLYGON,
|
||||
[GL_LINES_ADJACENCY] = _3DPRIM_LINELIST_ADJ,
|
||||
[GL_LINE_STRIP_ADJACENCY] = _3DPRIM_LINESTRIP_ADJ,
|
||||
[GL_TRIANGLES_ADJACENCY] = _3DPRIM_TRILIST_ADJ,
|
||||
[GL_TRIANGLE_STRIP_ADJACENCY] = _3DPRIM_TRISTRIP_ADJ,
|
||||
};
|
||||
|
||||
|
||||
static const GLenum reduced_prim[GL_POLYGON+1] = {
|
||||
[GL_POINTS] = GL_POINTS,
|
||||
@@ -85,18 +68,6 @@ static const GLenum reduced_prim[GL_POLYGON+1] = {
|
||||
[GL_POLYGON] = GL_TRIANGLES
|
||||
};
|
||||
|
||||
uint32_t
|
||||
get_hw_prim_for_gl_prim(int mode)
|
||||
{
|
||||
if (mode >= BRW_PRIM_OFFSET)
|
||||
return mode - BRW_PRIM_OFFSET;
|
||||
else {
|
||||
assert(mode < ARRAY_SIZE(prim_to_hw_prim));
|
||||
return prim_to_hw_prim[mode];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* When the primitive changes, set a state bit and re-validate. Not
|
||||
* the nicest and would rather deal with this by having all the
|
||||
* programs be immune to the active primitive (ie. cope with all
|
||||
|
||||
@@ -98,3 +98,31 @@ GLuint brw_translate_blend_factor( GLenum factor )
|
||||
unreachable("not reached");
|
||||
}
|
||||
}
|
||||
|
||||
static const GLuint prim_to_hw_prim[GL_TRIANGLE_STRIP_ADJACENCY+1] = {
|
||||
[GL_POINTS] =_3DPRIM_POINTLIST,
|
||||
[GL_LINES] = _3DPRIM_LINELIST,
|
||||
[GL_LINE_LOOP] = _3DPRIM_LINELOOP,
|
||||
[GL_LINE_STRIP] = _3DPRIM_LINESTRIP,
|
||||
[GL_TRIANGLES] = _3DPRIM_TRILIST,
|
||||
[GL_TRIANGLE_STRIP] = _3DPRIM_TRISTRIP,
|
||||
[GL_TRIANGLE_FAN] = _3DPRIM_TRIFAN,
|
||||
[GL_QUADS] = _3DPRIM_QUADLIST,
|
||||
[GL_QUAD_STRIP] = _3DPRIM_QUADSTRIP,
|
||||
[GL_POLYGON] = _3DPRIM_POLYGON,
|
||||
[GL_LINES_ADJACENCY] = _3DPRIM_LINELIST_ADJ,
|
||||
[GL_LINE_STRIP_ADJACENCY] = _3DPRIM_LINESTRIP_ADJ,
|
||||
[GL_TRIANGLES_ADJACENCY] = _3DPRIM_TRILIST_ADJ,
|
||||
[GL_TRIANGLE_STRIP_ADJACENCY] = _3DPRIM_TRISTRIP_ADJ,
|
||||
};
|
||||
|
||||
uint32_t
|
||||
get_hw_prim_for_gl_prim(int mode)
|
||||
{
|
||||
if (mode >= BRW_PRIM_OFFSET)
|
||||
return mode - BRW_PRIM_OFFSET;
|
||||
else {
|
||||
assert(mode < ARRAY_SIZE(prim_to_hw_prim));
|
||||
return prim_to_hw_prim[mode];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user