summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2023-05-12 13:04:45 +0200
committerMarge Bot <emma+marge@anholt.net>2023-05-15 07:09:56 +0000
commit7f47886cf12ab1754b735b43e4962e67fe6d97e1 (patch)
tree8636ceeb0cfdc0e8f9ed22329f611b7f828becc5
parentd91cb1bbfa1eba954f6e86c1acd932f8a53c29bd (diff)
downloadmesa-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.c6
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) {