zink: always unset vertex shader variant key data when changing last vertex stage
ensure that vertex key data is always zeroed when changing last stage since it will be updated before draw anyway and can only cause problems if left alone here fixes the following caselist: dEQP-GLES31.functional.shaders.builtin_constants.tessellation_shader.max_tess_evaluation_texture_image_units dEQP-GLES31.functional.tessellation_geometry_interaction.feedback.tessellation_output_quads_geometry_output_points dEQP-GLES31.functional.ubo.random.all_per_block_buffers.25 cc: mesa-stable Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14482>
This commit is contained in:
committed by
Marge Bot
parent
a9545153a0
commit
d15ff96da2
@@ -919,6 +919,9 @@ bind_last_vertex_stage(struct zink_context *ctx)
|
||||
if (old != PIPE_SHADER_TYPES) {
|
||||
memset(&ctx->gfx_pipeline_state.shader_keys.key[old].key.vs_base, 0, sizeof(struct zink_vs_key_base));
|
||||
ctx->dirty_shader_stages |= BITFIELD_BIT(old);
|
||||
} else {
|
||||
/* always unset vertex shader values when changing to a non-vs last stage */
|
||||
memset(&ctx->gfx_pipeline_state.shader_keys.key[PIPE_SHADER_VERTEX].key.vs_base, 0, sizeof(struct zink_vs_key_base));
|
||||
}
|
||||
ctx->last_vertex_stage_dirty = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user