nir/glsl: set cast mode for image during function inlining
Fixes: d681cf96fb ("nir/glsl: set deref cast mode during function inlining")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11980
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31554>
This commit is contained in:
committed by
Marge Bot
parent
b0a378374b
commit
46facf9037
@@ -62,9 +62,14 @@ static void
|
||||
fixup_cast_deref_mode(nir_deref_instr *deref)
|
||||
{
|
||||
nir_deref_instr *parent = nir_src_as_deref(deref->parent);
|
||||
if (parent && parent->modes & nir_var_uniform &&
|
||||
deref->modes & nir_var_function_temp) {
|
||||
deref->modes |= nir_var_uniform;
|
||||
if (parent && deref->modes & nir_var_function_temp) {
|
||||
if (parent->modes & nir_var_uniform) {
|
||||
deref->modes |= nir_var_uniform;
|
||||
} else if (parent->modes & nir_var_image) {
|
||||
deref->modes |= nir_var_image;
|
||||
} else
|
||||
return;
|
||||
|
||||
deref->modes ^= nir_var_function_temp;
|
||||
|
||||
nir_foreach_use(use, &deref->def) {
|
||||
|
||||
Reference in New Issue
Block a user