compiler: Inline mesa_vertices_per_prim

Makes it more easily consumable from the gpu.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26056>
This commit is contained in:
Alyssa Rosenzweig 2023-10-26 08:58:28 -04:00 committed by Marge Bot
parent 7cfe2ecb33
commit 64f7b70763
2 changed files with 37 additions and 39 deletions

View file

@ -433,44 +433,6 @@ gl_frag_result_name(gl_frag_result result)
return NAME(result);
}
unsigned
mesa_vertices_per_prim(enum mesa_prim prim)
{
switch(prim) {
case MESA_PRIM_POINTS:
return 1;
case MESA_PRIM_LINES:
case MESA_PRIM_LINE_LOOP:
case MESA_PRIM_LINE_STRIP:
return 2;
case MESA_PRIM_TRIANGLES:
case MESA_PRIM_TRIANGLE_STRIP:
case MESA_PRIM_TRIANGLE_FAN:
return 3;
case MESA_PRIM_LINES_ADJACENCY:
case MESA_PRIM_LINE_STRIP_ADJACENCY:
return 4;
case MESA_PRIM_TRIANGLES_ADJACENCY:
case MESA_PRIM_TRIANGLE_STRIP_ADJACENCY:
return 6;
case MESA_PRIM_QUADS:
case MESA_PRIM_QUAD_STRIP:
/* These won't be seen from geometry shaders but prim assembly might for
* prim id.
*/
return 4;
/* The following primitives should never be used with geometry or mesh
* shaders and their size is undefined.
*/
case MESA_PRIM_POLYGON:
default:
debug_printf("Unrecognized geometry or mesh shader primitive");
return 3;
}
}
const char *
mesa_scope_name(mesa_scope scope)
{

View file

@ -1197,7 +1197,43 @@ enum ENUM_PACKED mesa_prim
/**
* Number of vertices per primitive as seen by a geometry or mesh shader.
*/
unsigned mesa_vertices_per_prim(enum mesa_prim prim);
static inline unsigned
mesa_vertices_per_prim(enum mesa_prim prim)
{
switch(prim) {
case MESA_PRIM_POINTS:
return 1;
case MESA_PRIM_LINES:
case MESA_PRIM_LINE_LOOP:
case MESA_PRIM_LINE_STRIP:
return 2;
case MESA_PRIM_TRIANGLES:
case MESA_PRIM_TRIANGLE_STRIP:
case MESA_PRIM_TRIANGLE_FAN:
return 3;
case MESA_PRIM_LINES_ADJACENCY:
case MESA_PRIM_LINE_STRIP_ADJACENCY:
return 4;
case MESA_PRIM_TRIANGLES_ADJACENCY:
case MESA_PRIM_TRIANGLE_STRIP_ADJACENCY:
return 6;
case MESA_PRIM_QUADS:
case MESA_PRIM_QUAD_STRIP:
/* These won't be seen from geometry shaders but prim assembly might for
* prim id.
*/
return 4;
/* The following primitives should never be used with geometry or mesh
* shaders and their size is undefined.
*/
case MESA_PRIM_POLYGON:
default:
debug_printf("Unrecognized geometry or mesh shader primitive");
return 3;
}
}
/**
* A compare function enum for use in compiler lowering passes. This is in