mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 04:58:05 +02:00
nir/gather_info: clear interpolation qualifiers only in fragment stage
Asahi wants the the interpolation qualifiers from the shader info in the vertex shader. Clear them only in the fragment stage so they can propagate back. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15288 Backport-to: 26.0 Fixes:a72704d0fb("nir/gather_info: clear interpolation qualifiers before gathering") Signed-off-by: Janne Grunau <j@jannau.net> (cherry picked from commit98a97cb413) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41269>
This commit is contained in:
parent
d10e31b725
commit
64f8339209
3 changed files with 8 additions and 3 deletions
|
|
@ -4494,7 +4494,7 @@
|
|||
"description": "nir/gather_info: clear interpolation qualifiers only in fragment stage",
|
||||
"nominated": true,
|
||||
"nomination_type": 4,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "a72704d0fbd0dc594570ae2c97b7a8015a944b8e",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -1067,8 +1067,6 @@ nir_shader_gather_info(nir_shader *shader, nir_function_impl *entrypoint)
|
|||
shader->info.patch_outputs_written_indirectly = 0;
|
||||
shader->info.per_primitive_inputs = 0;
|
||||
shader->info.per_primitive_outputs = 0;
|
||||
shader->info.linear_varyings = 0;
|
||||
shader->info.perspective_varyings = 0;
|
||||
|
||||
shader->info.uses_resource_info_query = false;
|
||||
|
||||
|
|
@ -1086,6 +1084,8 @@ nir_shader_gather_info(nir_shader *shader, nir_function_impl *entrypoint)
|
|||
|
||||
/* By definition the fragment shader knows, unless we fail to gather. */
|
||||
shader->info.known_interpolation_qualifiers = true;
|
||||
shader->info.linear_varyings = 0;
|
||||
shader->info.perspective_varyings = 0;
|
||||
}
|
||||
if (shader->info.stage == MESA_SHADER_TESS_CTRL) {
|
||||
shader->info.tess.tcs_same_invocation_inputs_read = 0;
|
||||
|
|
|
|||
|
|
@ -1800,6 +1800,11 @@ agx_shader_initialize(struct agx_device *dev, struct agx_uncompiled_shader *so,
|
|||
nir_lower_io_lower_64bit_to_32 |
|
||||
nir_lower_io_use_interpolated_input_intrinsics);
|
||||
|
||||
/* Regather shader info after nir_lower_io. This recalculates interpolation
|
||||
* qualifiers which got lost when mesa/st lowered I/O back to vars.
|
||||
*/
|
||||
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
|
||||
|
||||
if (nir->info.stage == MESA_SHADER_FRAGMENT) {
|
||||
so->info.uses_fbfetch = nir->info.fs.uses_fbfetch_output;
|
||||
so->info.inputs_linear_shaded = nir->info.linear_varyings;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue