radv: fix smooth lines with graphics pipeline library

Need to be defensive here.

Fixes recent CTS
dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.*.line_raster_mode_smooth.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23200>
This commit is contained in:
Samuel Pitoiset
2023-05-24 08:20:33 +02:00
committed by Marge Bot
parent 8f88cf3b42
commit d096a3f1a6
+7 -1
View File
@@ -2119,7 +2119,13 @@ radv_generate_graphics_pipeline_key(const struct radv_device *device,
}
if (device->smooth_lines) {
if (pipeline->dynamic_states & RADV_DYNAMIC_LINE_RASTERIZATION_MODE) {
/* For GPL, when the fragment shader is compiled without any pre-rasterization information,
* ensure the line rasterization mode is considered dynamic because we can't know if it's
* going to draw lines or not.
*/
if (pipeline->dynamic_states & RADV_DYNAMIC_LINE_RASTERIZATION_MODE ||
((lib_flags & VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT) &&
!(lib_flags & VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT))) {
key.dynamic_line_rast_mode = true;
} else {
key.ps.line_smooth_enabled =