glsl: fix function inlining for images
Here we skip replacing parameters with their actual values for
images as glsl_to_nir() expects them to be copied to temps first.
Tree grafting has a similiar rule to avoid this happening also.
Fixes: 8d10a6835f
("glsl: dont create temps for builtin function inputs")
Tested-by: Martin Roukala <martin.roukala@mupuf.org>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20274>
This commit is contained in:

committed by
Marge Bot

parent
92959061a9
commit
9e9b8dc7f8
@@ -140,6 +140,12 @@ should_replace_variable(ir_variable *sig_param, ir_rvalue *param,
|
||||
sig_param->data.mode != ir_var_const_in)
|
||||
return false;
|
||||
|
||||
/* Some places in glsl_to_nir() expect images to always be copied to a temp
|
||||
* first.
|
||||
*/
|
||||
if (sig_param->type->without_array()->is_image() && !param->is_dereference())
|
||||
return false;
|
||||
|
||||
/* SSBO and shared vars might be passed to a built-in such as an atomic
|
||||
* memory function, where copying these to a temp before passing to the
|
||||
* atomic function is not valid so we must replace these instead. Also,
|
||||
|
Reference in New Issue
Block a user