diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2023-05-12 13:04:45 +0200 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-05-15 07:09:56 +0000 |
commit | 7f47886cf12ab1754b735b43e4962e67fe6d97e1 (patch) | |
tree | 8636ceeb0cfdc0e8f9ed22329f611b7f828becc5 | |
parent | d91cb1bbfa1eba954f6e86c1acd932f8a53c29bd (diff) | |
download | mesa-7f47886cf12ab1754b735b43e4962e67fe6d97e1.tar.gz |
radv: allow to determine NGG settings with a NULL fragment shader
This shouldn't change anything because a noop FS doesn't read any
inputs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22848>
-rw-r--r-- | src/amd/vulkan/radv_shader_info.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/amd/vulkan/radv_shader_info.c b/src/amd/vulkan/radv_shader_info.c index 7da74cc8714..508b92fb7eb 100644 --- a/src/amd/vulkan/radv_shader_info.c +++ b/src/amd/vulkan/radv_shader_info.c @@ -1402,9 +1402,9 @@ radv_determine_ngg_settings(struct radv_device *device, struct radv_pipeline_sta const struct radv_pipeline_key *pipeline_key) { assert(es_stage->stage == MESA_SHADER_VERTEX || es_stage->stage == MESA_SHADER_TESS_EVAL); - assert(fs_stage->stage == MESA_SHADER_FRAGMENT); + assert(!fs_stage || fs_stage->stage == MESA_SHADER_FRAGMENT); - uint64_t ps_inputs_read = fs_stage->nir->info.inputs_read; + uint64_t ps_inputs_read = fs_stage ? fs_stage->nir->info.inputs_read : 0; unsigned num_vertices_per_prim = 0; if (es_stage->stage == MESA_SHADER_VERTEX) { @@ -1488,7 +1488,7 @@ radv_link_shaders_info(struct radv_device *device, gfx10_get_ngg_query_info(device, producer, gs_stage, pipeline_key); /* Determine other NGG settings like culling for VS or TES without GS. */ - if (!gs_stage && consumer) { + if (!gs_stage) { radv_determine_ngg_settings(device, producer, consumer, pipeline_key); } } else if (consumer && consumer->stage == MESA_SHADER_GEOMETRY) { |