radv: determine the last VGT api stage also for GPL

When compiling the pre-rasterization stages, we need to know this.

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/18776>
This commit is contained in:
Samuel Pitoiset
2022-09-23 13:47:41 +02:00
parent e053f6feb3
commit e364670e83

View File

@@ -3962,10 +3962,17 @@ radv_create_shaders(struct radv_pipeline *pipeline, struct radv_pipeline_layout
radv_pipeline_load_retained_shaders(pipeline, stages); radv_pipeline_load_retained_shaders(pipeline, stages);
if (pipeline->type == RADV_PIPELINE_GRAPHICS) { if (pipeline->type == RADV_PIPELINE_GRAPHICS ||
struct radv_graphics_pipeline *graphics_pipeline = radv_pipeline_to_graphics(pipeline); pipeline->type == RADV_PIPELINE_GRAPHICS_LIB) {
VkShaderStageFlags active_stages;
radv_foreach_stage(s, graphics_pipeline->active_stages) { if (pipeline->type == RADV_PIPELINE_GRAPHICS) {
active_stages = radv_pipeline_to_graphics(pipeline)->active_stages;
} else {
active_stages = radv_pipeline_to_graphics_lib(pipeline)->base.active_stages;
}
radv_foreach_stage(s, active_stages) {
if (s < MESA_SHADER_FRAGMENT || s == MESA_SHADER_MESH) if (s < MESA_SHADER_FRAGMENT || s == MESA_SHADER_MESH)
*last_vgt_api_stage = s; *last_vgt_api_stage = s;
} }