radv: determine the last VGT api stage from the active_stages bitfield

With GPL, we can get binaries from libs directly, so this would fail.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18672>
This commit is contained in:
Samuel Pitoiset
2022-09-19 14:24:32 +02:00
committed by Marge Bot
parent c08ba6a76c
commit 456543e6d8

View File

@@ -3962,12 +3962,13 @@ radv_create_shaders(struct radv_pipeline *pipeline, struct radv_pipeline_layout
radv_pipeline_load_retained_shaders(pipeline, stages);
for (unsigned s = 0; s < MESA_VULKAN_SHADER_STAGES; s++) {
if (!stages[s].entrypoint)
continue;
if (pipeline->type == RADV_PIPELINE_GRAPHICS) {
struct radv_graphics_pipeline *graphics_pipeline = radv_pipeline_to_graphics(pipeline);
if (stages[s].stage < MESA_SHADER_FRAGMENT || stages[s].stage == MESA_SHADER_MESH)
*last_vgt_api_stage = stages[s].stage;
radv_foreach_stage(s, graphics_pipeline->active_stages) {
if (s < MESA_SHADER_FRAGMENT || s == MESA_SHADER_MESH)
*last_vgt_api_stage = s;
}
}
ASSERTED bool primitive_shading =