draw: front-face injection must check geometry shader primitive type

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32306>
This commit is contained in:
Aleksi Sapon
2024-11-21 11:44:04 -05:00
committed by Marge Bot
parent cdf822632a
commit 0812a8bccc
2 changed files with 6 additions and 3 deletions
+4 -1
View File
@@ -1271,7 +1271,10 @@ draw_stats_clipper_primitives(struct draw_context *draw,
bool
draw_will_inject_frontface(const struct draw_context *draw)
{
unsigned reduced_prim = u_reduced_prim(draw->pt.prim);
/* The geometry shader can change the primitive type. */
enum mesa_prim prim = draw->gs.geometry_shader ?
draw->gs.geometry_shader->output_primitive : draw->pt.prim;
enum mesa_prim reduced_prim = u_reduced_prim(prim);
const struct pipe_rasterizer_state *rast = draw->rasterizer;
if (reduced_prim != MESA_PRIM_TRIANGLES) {
+2 -2
View File
@@ -81,8 +81,8 @@ struct draw_geometry_shader {
unsigned max_output_vertices;
unsigned primitive_boundary;
unsigned input_primitive;
unsigned output_primitive;
enum mesa_prim input_primitive;
enum mesa_prim output_primitive;
unsigned vertex_size;
struct draw_vertex_stream stream[TGSI_MAX_VERTEX_STREAMS];