Module: Mesa
Branch: main
Commit: 8e7df505fc8537ea58e25b31d6d132db81b066f6
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8e7df505fc8537ea58e25b31d6d132db81b066f6

Author: Connor Abbott <cwabbo...@gmail.com>
Date:   Mon Nov  6 17:39:32 2023 +0100

tu: Fix order of rasterizer_discard check

Don't check the rasterization state if it might be NULL.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26076>

---

 src/freedreno/ci/freedreno-a618-fails.txt | 13 -------------
 src/freedreno/ci/freedreno-a630-fails.txt |  4 ----
 src/freedreno/ci/freedreno-a660-fails.txt | 14 --------------
 src/freedreno/vulkan/tu_pipeline.cc       |  4 ++--
 4 files changed, 2 insertions(+), 33 deletions(-)

diff --git a/src/freedreno/ci/freedreno-a618-fails.txt 
b/src/freedreno/ci/freedreno-a618-fails.txt
index ffba7648cfb..b570f935477 100644
--- a/src/freedreno/ci/freedreno-a618-fails.txt
+++ b/src/freedreno/ci/freedreno-a618-fails.txt
@@ -1297,13 +1297,6 @@ 
dEQP-VK.api.maintenance3_check.support_count_uniform_buffer_dynamic_extra_bindin
 dEQP-VK.api.maintenance3_check.support_count_uniform_buffer_extra_bindings,Fail
 
dEQP-VK.api.maintenance3_check.support_count_uniform_buffer_no_variable_size,Fail
 dEQP-VK.api.version_check.unavailable_entry_points,Fail
-dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.two_draws_dynamic.null_rasterization_state,Crash
-dEQP-VK.pipeline.monolithic.extended_dynamic_state.before_draw.null_rasterization_state,Crash
-dEQP-VK.pipeline.monolithic.extended_dynamic_state.two_draws_static.null_rasterization_state,Crash
-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.before_good_static.null_rasterization_state,Crash
-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.between_pipelines.null_rasterization_state,Crash
-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.two_draws_dynamic.null_rasterization_state,Crash
-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.two_draws_static.null_rasterization_state,Crash
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.32bit.line_list.indirect,Fail
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.32bit.line_list_with_adjacency.indirect,Fail
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.32bit.line_strip.draw,Fail
@@ -1447,8 +1440,6 @@ 
gmem-dEQP-VK.glsl.derivate.fwidthfine.dynamic_loop.vec2_highp,Crash
 gmem-dEQP-VK.glsl.derivate.fwidthfine.dynamic_switch.float_highp,Crash
 gmem-dEQP-VK.glsl.derivate.fwidthfine.dynamic_switch.vec2_highp,Crash
 gmem-dEQP-VK.glsl.derivate.fwidthfine.dynamic_switch.vec2_mediump,Crash
-gmem-dEQP-VK.pipeline.monolithic.extended_dynamic_state.two_draws_static.null_rasterization_state,Crash
-gmem-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.before_good_static.null_rasterization_state,Crash
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.32bit.point_list.indirect,Fail
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.32bit.triangle_fan.draw,Fail
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.32bit.triangle_strip_with_adjacency.draw,Fail
@@ -1641,9 +1632,6 @@ 
dEQP-VK.api.maintenance3_check.support_count_uniform_buffer_extra_bindings_no_va
 
dEQP-VK.api.maintenance3_check.support_count_uniform_texel_buffer_extra_bindings_no_variable_size,Fail
 
dEQP-VK.api.maintenance3_check.support_count_uniform_texel_buffer_no_variable_size,Fail
 
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil,Fail
-dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.before_good_static.null_rasterization_state,Crash
-dEQP-VK.pipeline.monolithic.extended_dynamic_state.two_draws_dynamic.null_rasterization_state,Crash
-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.cmd_buffer_start.null_rasterization_state,Crash
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.64bit.line_list.draw,Fail
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.64bit.line_strip.draw,Fail
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.64bit.point_list.draw,Fail
@@ -1699,7 +1687,6 @@ 
gmem-dEQP-VK.glsl.derivate.dfdx.dynamic_if.vec4_mediump,Crash
 gmem-dEQP-VK.glsl.derivate.dfdxcoarse.dynamic_if.vec3_highp,Crash
 gmem-dEQP-VK.glsl.derivate.dfdxcoarse.dynamic_if.vec4_highp,Crash
 gmem-dEQP-VK.glsl.derivate.dfdyfine.dynamic_loop.vec2_highp,Crash
-gmem-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.between_pipelines.null_rasterization_state,Crash
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.32bit.triangle_list.draw,Fail
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.64bit.triangle_fan.indirect,Fail
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.pgq_64bit_xfb_32bit.triangle_strip_with_adjacency.draw,Fail
diff --git a/src/freedreno/ci/freedreno-a630-fails.txt 
b/src/freedreno/ci/freedreno-a630-fails.txt
index 19ebf60e931..001c1505085 100644
--- a/src/freedreno/ci/freedreno-a630-fails.txt
+++ b/src/freedreno/ci/freedreno-a630-fails.txt
@@ -863,7 +863,6 @@ 
dEQP-VK.api.maintenance3_check.support_count_uniform_buffer_dynamic_no_variable_
 
dEQP-VK.api.maintenance3_check.support_count_uniform_buffer_no_variable_size,Fail
 dEQP-VK.api.version_check.unavailable_entry_points,Fail
 
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil,Fail
-dEQP-VK.pipeline.monolithic.extended_dynamic_state.two_draws_dynamic.null_rasterization_state,Crash
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.32bit.point_list.draw,Fail
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.32bit.triangle_list_with_adjacency.indirect,Fail
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.32bit.triangle_strip_with_adjacency.draw,Fail
@@ -899,7 +898,6 @@ 
gmem-dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.all_formats.c
 
gmem-dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.all_formats.color.2d_to_3d.r8g8_uint.r16_sfloat.optimal_optimal,Fail
 
gmem-dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.all_formats.color.2d_to_3d.r8g8_unorm.r16_sfloat.general_general,Fail
 gmem-dEQP-VK.glsl.derivate.dfdy.dynamic_loop.vec4_mediump,Crash
-gmem-dEQP-VK.pipeline.monolithic.extended_dynamic_state.two_draws_static.null_rasterization_state,Crash
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.32bit.triangle_fan.draw,Fail
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.64bit.line_list_with_adjacency.indirect,Fail
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.pgq_64bit_xfb_32bit.triangle_strip_with_adjacency.draw,Fail
@@ -911,7 +909,6 @@ 
stale-regs-dEQP-VK.api.copy_and_blit.core.image_to_image.all_formats.color.2d_to
 
stale-regs-dEQP-VK.api.copy_and_blit.core.image_to_image.dimensions.src4x8192_dst4x8192.r4g4b4a4_unorm_pack16.r16_sfloat.general_optimal,Fail
 
stale-regs-dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.all_formats.color.2d_to_2d.r16g16b16a16_unorm.r16g16b16a16_sfloat.optimal_general,Fail
 stale-regs-dEQP-VK.glsl.derivate.dfdy.dynamic_if.vec4_highp,Crash
-stale-regs-dEQP-VK.pipeline.monolithic.extended_dynamic_state.two_draws_static.null_rasterization_state,Crash
 
stale-regs-dEQP-VK.transform_feedback.primitives_generated_query.copy.host_reset.64bit.tese.no_xfb.rast.patch_list.pgq_default.two_draws.pqg_first.before_2_queries,Fail
 
stale-regs-dEQP-VK.transform_feedback.primitives_generated_query.copy.host_reset.pgq_64bit_xfb_32bit.geom.xfb.rast.line_list.pgq_default_xfb_0.two_draws.xfbq_first.none,Fail
 
stale-regs-dEQP-VK.transform_feedback.primitives_generated_query.copy.queue_reset.pgq_32bit_xfb_64bit.geom.xfb.rast.line_list_with_adjacency.pgq_default_xfb_0.two_draws.xfbq_first.before_2_queries,Fail
@@ -963,7 +960,6 @@ 
dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.all_formats.color.
 
dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.all_formats.color.2d_to_3d.r16g16b16a16_unorm.r16g16b16a16_sfloat.general_optimal,Fail
 
dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.dimensions.src6x8192_dst6x8192.r4g4b4a4_unorm_pack16.r16_sfloat.optimal_general,Fail
 
dEQP-VK.api.maintenance3_check.support_count_uniform_texel_buffer_no_variable_size,Fail
-dEQP-VK.pipeline.monolithic.extended_dynamic_state.cmd_buffer_start.null_rasterization_state,Crash
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.32bit.triangle_strip.draw,Fail
 
gmem-dEQP-VK.api.copy_and_blit.copy_commands2.image_to_image.dimensions.src4x8192_dst4x8192.r4g4b4a4_unorm_pack16.r16_sfloat.general_optimal,Fail
 
gmem-dEQP-VK.api.copy_and_blit.core.image_to_image.all_formats.color.2d_to_2d.a8b8g8r8_srgb_pack32.r16g16_sfloat.optimal_optimal,Fail
diff --git a/src/freedreno/ci/freedreno-a660-fails.txt 
b/src/freedreno/ci/freedreno-a660-fails.txt
index 7c1c56cd200..2b2e070a46f 100644
--- a/src/freedreno/ci/freedreno-a660-fails.txt
+++ b/src/freedreno/ci/freedreno-a660-fails.txt
@@ -955,19 +955,6 @@ 
dEQP-VK.api.maintenance3_check.support_count_uniform_texel_buffer_extra_bindings
 
dEQP-VK.api.maintenance3_check.support_count_uniform_texel_buffer_no_variable_size,Fail
 dEQP-VK.api.version_check.unavailable_entry_points,Fail
 
dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.partial_binding_depth_stencil,Fail
-dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.after_pipelines.null_rasterization_state,Crash
-dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.before_draw.null_rasterization_state,Crash
-dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.before_good_static.null_rasterization_state,Crash
-dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.cmd_buffer_start.null_rasterization_state,Crash
-dEQP-VK.pipeline.monolithic.extended_dynamic_state.before_draw.null_rasterization_state,Crash
-dEQP-VK.pipeline.monolithic.extended_dynamic_state.between_pipelines.null_rasterization_state,Crash
-dEQP-VK.pipeline.monolithic.extended_dynamic_state.cmd_buffer_start.null_rasterization_state,Crash
-dEQP-VK.pipeline.monolithic.extended_dynamic_state.two_draws_dynamic.null_rasterization_state,Crash
-dEQP-VK.pipeline.monolithic.extended_dynamic_state.two_draws_static.null_rasterization_state,Crash
-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.after_pipelines.null_rasterization_state,Crash
-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.before_draw.null_rasterization_state,Crash
-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.cmd_buffer_start.null_rasterization_state,Crash
-dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.two_draws_dynamic.null_rasterization_state,Crash
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.32bit.line_list.draw,Fail
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.32bit.line_list.indirect,Fail
 
dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_3.32bit.line_list_with_adjacency.draw,Fail
@@ -1130,7 +1117,6 @@ 
gmem-dEQP-VK.api.maintenance3_check.support_count_storage_buffer_extra_bindings_
 
gmem-dEQP-VK.api.maintenance3_check.support_count_storage_image_extra_bindings,Fail
 
gmem-dEQP-VK.api.maintenance3_check.support_count_uniform_buffer_extra_bindings,Fail
 
gmem-dEQP-VK.dynamic_rendering.complete_secondary_cmd_buff.suballocation.load_store_op_none.depthstencil_d32_sfloat_s8_uint_load_op_depth_load_stencil_none_store_op_depth_store_stencil_none_stencil_write_off,Fail
-gmem-dEQP-VK.pipeline.monolithic.extended_dynamic_state.two_draws_static.null_rasterization_state,Crash
 gmem-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_ivec2_fragment,Fail
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.32bit.triangle_fan.draw,Fail
 
gmem-dEQP-VK.transform_feedback.primitives_generated_query.concurrent.pipeline_statistics_1.32bit.triangle_list.draw,Fail
diff --git a/src/freedreno/vulkan/tu_pipeline.cc 
b/src/freedreno/vulkan/tu_pipeline.cc
index 93ef4df36b9..28910feac2a 100644
--- a/src/freedreno/vulkan/tu_pipeline.cc
+++ b/src/freedreno/vulkan/tu_pipeline.cc
@@ -4086,8 +4086,8 @@ tu_pipeline_builder_init_graphics(
 
    builder->rasterizer_discard =
       (builder->state & 
VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT) &&
-      builder->create_info->pRasterizationState->rasterizerDiscardEnable &&
-      !rasterizer_discard_dynamic;
+      !rasterizer_discard_dynamic &&
+      builder->create_info->pRasterizationState->rasterizerDiscardEnable;
 
    struct vk_render_pass_state rp_state = {};
    const struct vk_render_pass_state *driver_rp = NULL;

Reply via email to