util: put vertices_per_primitive function in its proper location
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
|
||||
#include "util/u_debug.h"
|
||||
#include "util/u_memory.h"
|
||||
#include "pipe/p_inlines.h"
|
||||
#include "util/u_prim.h"
|
||||
#include "cso_cache/cso_hash.h"
|
||||
#include "tgsi_sanity.h"
|
||||
#include "tgsi_info.h"
|
||||
@@ -463,8 +463,7 @@ iter_property(
|
||||
|
||||
if (iter->processor.Processor == TGSI_PROCESSOR_GEOMETRY &&
|
||||
prop->Property.PropertyName == TGSI_PROPERTY_GS_INPUT_PRIM) {
|
||||
ctx->implied_array_size =
|
||||
pipe_vertices_per_primitive(prop->u[0].Data);
|
||||
ctx->implied_array_size = u_vertices_per_prim(prop->u[0].Data);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#include "util/u_debug.h"
|
||||
#include "util/u_memory.h"
|
||||
#include "util/u_prim.h"
|
||||
#include "pipe/p_defines.h"
|
||||
#include "pipe/p_inlines.h"
|
||||
#include "tgsi_text.h"
|
||||
@@ -1187,8 +1188,7 @@ static boolean parse_property( struct translate_ctx *ctx )
|
||||
}
|
||||
if (property_name == TGSI_PROPERTY_GS_INPUT_PRIM &&
|
||||
ctx->processor == TGSI_PROCESSOR_GEOMETRY) {
|
||||
ctx->implied_array_size =
|
||||
pipe_vertices_per_primitive(values[0]);
|
||||
ctx->implied_array_size = u_vertices_per_prim(values[0]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -135,6 +135,39 @@ static INLINE unsigned u_reduced_prim( unsigned pipe_prim )
|
||||
}
|
||||
}
|
||||
|
||||
static INLINE unsigned
|
||||
u_vertices_per_prim(int primitive)
|
||||
{
|
||||
switch(primitive) {
|
||||
case PIPE_PRIM_POINTS:
|
||||
return 1;
|
||||
case PIPE_PRIM_LINES:
|
||||
case PIPE_PRIM_LINE_LOOP:
|
||||
case PIPE_PRIM_LINE_STRIP:
|
||||
return 2;
|
||||
case PIPE_PRIM_TRIANGLES:
|
||||
case PIPE_PRIM_TRIANGLE_STRIP:
|
||||
case PIPE_PRIM_TRIANGLE_FAN:
|
||||
return 3;
|
||||
case PIPE_PRIM_LINES_ADJACENCY:
|
||||
case PIPE_PRIM_LINE_STRIP_ADJACENCY:
|
||||
return 4;
|
||||
case PIPE_PRIM_TRIANGLES_ADJACENCY:
|
||||
case PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||
return 6;
|
||||
|
||||
/* following primitives should never be used
|
||||
* with geometry shaders abd their size is
|
||||
* undefined */
|
||||
case PIPE_PRIM_POLYGON:
|
||||
case PIPE_PRIM_QUADS:
|
||||
case PIPE_PRIM_QUAD_STRIP:
|
||||
default:
|
||||
debug_printf("Unrecognized geometry shader primitive");
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
const char *u_prim_name( unsigned pipe_prim );
|
||||
|
||||
#endif
|
||||
|
||||
@@ -192,38 +192,6 @@ pipe_transfer_buffer_flags( struct pipe_transfer *transf )
|
||||
}
|
||||
}
|
||||
|
||||
static INLINE unsigned
|
||||
pipe_vertices_per_primitive(int primitive)
|
||||
{
|
||||
switch(primitive) {
|
||||
case PIPE_PRIM_POINTS:
|
||||
return 1;
|
||||
case PIPE_PRIM_LINES:
|
||||
case PIPE_PRIM_LINE_LOOP:
|
||||
case PIPE_PRIM_LINE_STRIP:
|
||||
return 2;
|
||||
case PIPE_PRIM_TRIANGLES:
|
||||
case PIPE_PRIM_TRIANGLE_STRIP:
|
||||
case PIPE_PRIM_TRIANGLE_FAN:
|
||||
return 3;
|
||||
case PIPE_PRIM_LINES_ADJACENCY:
|
||||
case PIPE_PRIM_LINE_STRIP_ADJACENCY:
|
||||
return 4;
|
||||
case PIPE_PRIM_TRIANGLES_ADJACENCY:
|
||||
case PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||
return 6;
|
||||
|
||||
/* following primitives should never be used
|
||||
* with geometry shaders */
|
||||
case PIPE_PRIM_POLYGON:
|
||||
case PIPE_PRIM_QUADS:
|
||||
case PIPE_PRIM_QUAD_STRIP:
|
||||
default:
|
||||
debug_printf("Unrecognized geometry shader primitive");
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user