lavapipe: store whether the geometry shader outputs GL_LINES
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Fri, 2 Jul 2021 14:36:38 +0000 (10:36 -0400)
committerMarge Bot <eric+marge@anholt.net>
Mon, 5 Jul 2021 07:14:29 +0000 (07:14 +0000)
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11066>

src/gallium/frontends/lavapipe/lvp_pipeline.c
src/gallium/frontends/lavapipe/lvp_private.h

index 2231299..f01f7b0 100644 (file)
@@ -835,6 +835,9 @@ lvp_graphics_pipeline_init(struct lvp_pipeline *pipeline,
          pipeline->pipeline_nir[MESA_SHADER_TESS_EVAL]->info.tess.ccw = !pipeline->pipeline_nir[MESA_SHADER_TESS_EVAL]->info.tess.ccw;
    }
 
+   pipeline->gs_output_lines = pipeline->pipeline_nir[MESA_SHADER_GEOMETRY] &&
+                               pipeline->pipeline_nir[MESA_SHADER_GEOMETRY]->info.gs.output_primitive == GL_LINES;
+
 
    bool has_fragment_shader = false;
    for (uint32_t i = 0; i < pCreateInfo->stageCount; i++) {
index 46b84ff..35f2f07 100644 (file)
@@ -483,6 +483,7 @@ struct lvp_pipeline {
    uint16_t line_stipple_pattern;
    bool line_stipple_enable;
    bool line_smooth;
+   bool gs_output_lines;
    bool provoking_vertex_last;
 };