From f023ab01e936f632789a5dbe285b3a7cfa5f522e Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 28 Feb 2023 09:03:52 +0100 Subject: [PATCH] nir: add nir_intrinsic_load_poly_line_smooth_enabled To lower smooth lines conditionally in fragment shaders for RADV because the line rasterization mode in Vulkan can be dynamic. Signed-off-by: Samuel Pitoiset Part-of: --- src/compiler/nir/nir_divergence_analysis.c | 1 + src/compiler/nir/nir_intrinsics.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index c10350583fd..5e9bb142c5c 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -209,6 +209,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr) case nir_intrinsic_load_ssbo_uniform_block_intel: case nir_intrinsic_load_shared_uniform_block_intel: case nir_intrinsic_load_barycentric_optimize_amd: + case nir_intrinsic_load_poly_line_smooth_enabled: is_divergent = false; break; diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index 871ae5a2676..b88ab97144d 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -849,6 +849,8 @@ system_value("xfb_index_buffer", 1, bit_sizes=[32,64]) system_value("frag_size", 2) system_value("frag_invocation_count", 1) +# Whether smooth lines or polygon smoothing is enabled +system_value("poly_line_smooth_enabled", 1, bit_sizes=[1]) # System values for ray tracing. system_value("ray_launch_id", 3)