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>
This commit is contained in:
Samuel Pitoiset 2023-05-12 13:04:45 +02:00 committed by Marge Bot
parent d91cb1bbfa
commit 7f47886cf1

View file

@ -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) {