lavapipe: avoid uniformly unsetting gs_output_lines

instead fix the conditional now that it's possible to tell whether
a gs is bound

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21866>
This commit is contained in:
Mike Blumenkrantz
2023-03-13 13:36:30 -04:00
committed by Marge Bot
parent ddf8917b2d
commit 38e3132dfa

View File

@@ -443,7 +443,7 @@ static void emit_state(struct rendering_state *state)
bool ms = state->rs_state.multisample;
if (state->disable_multisample &&
(state->gs_output_lines == GS_OUTPUT_LINES ||
(state->gs_output_lines == GS_OUTPUT_NONE && u_reduced_prim(state->info.mode) == PIPE_PRIM_LINES)))
(!state->shaders[MESA_SHADER_GEOMETRY] && u_reduced_prim(state->info.mode) == PIPE_PRIM_LINES)))
state->rs_state.multisample = false;
assert(offsetof(struct pipe_rasterizer_state, offset_clamp) - offsetof(struct pipe_rasterizer_state, offset_units) == sizeof(float) * 2);
if (state->depth_bias.enabled) {
@@ -656,8 +656,6 @@ update_samples(struct rendering_state *state, VkSampleCountFlags samples)
static void
handle_graphics_stages(struct rendering_state *state, VkShaderStageFlagBits shader_stages, bool dynamic_tess_origin)
{
state->gs_output_lines = GS_OUTPUT_NONE;
u_foreach_bit(b, shader_stages) {
VkShaderStageFlagBits vk_stage = (1 << b);
gl_shader_stage stage = vk_to_mesa_shader_stage(vk_stage);