mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
zink: don't remove psiz from linked shaders if the consumer reads it
it's valid for psiz to be piped through successive stages, so don't
delete it unnecessarily
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23240>
(cherry picked from commit 09678079c3)
This commit is contained in:
parent
91d6a4dec6
commit
979ed4f722
2 changed files with 2 additions and 2 deletions
|
|
@ -2497,7 +2497,7 @@
|
|||
"description": "zink: don't remove psiz from linked shaders if the consumer reads it",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2707,7 +2707,7 @@ zink_compiler_assign_io(struct zink_screen *screen, nir_shader *producer, nir_sh
|
|||
if (consumer->info.stage != MESA_SHADER_FRAGMENT) {
|
||||
/* remove injected pointsize from all but the last vertex stage */
|
||||
nir_variable *var = nir_find_variable_with_location(producer, nir_var_shader_out, VARYING_SLOT_PSIZ);
|
||||
if (var && !var->data.explicit_location) {
|
||||
if (var && !var->data.explicit_location && !nir_find_variable_with_location(consumer, nir_var_shader_in, VARYING_SLOT_PSIZ)) {
|
||||
var->data.mode = nir_var_shader_temp;
|
||||
nir_fixup_deref_modes(producer);
|
||||
NIR_PASS_V(producer, nir_remove_dead_variables, nir_var_shader_temp, NULL);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue