pan/bi: Add helpers to get vertex/instance ID
These are preloaded in different places across Bifrost and Valhall. Abstract that away so code using the builder isn't littered with "is Valhall?" checks. Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15461>
This commit is contained in:

committed by
Marge Bot

parent
76a09b8cd3
commit
1e37113ede
@@ -1277,6 +1277,23 @@ bi_word_node(bi_index idx)
|
|||||||
return (idx.value << 2) | idx.offset;
|
return (idx.value << 2) | idx.offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Vertex ID and Instance ID are preloaded registers. Where they are preloaded
|
||||||
|
* changed from Bifrost to Valhall. Provide helpers that smooth over the
|
||||||
|
* architectural difference.
|
||||||
|
*/
|
||||||
|
static inline bi_index
|
||||||
|
bi_vertex_id(bi_builder *b)
|
||||||
|
{
|
||||||
|
return bi_register((b->shader->arch >= 9) ? 60 : 61);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline bi_index
|
||||||
|
bi_instance_id(bi_builder *b)
|
||||||
|
{
|
||||||
|
return bi_register((b->shader->arch >= 9) ? 61 : 62);
|
||||||
|
}
|
||||||
|
|
||||||
/* NIR passes */
|
/* NIR passes */
|
||||||
|
|
||||||
bool bi_lower_divergent_indirects(nir_shader *shader, unsigned lanes);
|
bool bi_lower_divergent_indirects(nir_shader *shader, unsigned lanes);
|
||||||
|
Reference in New Issue
Block a user