mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-04 00:08:16 +02:00
The FS compilation needs the VUE map from the previous stage when the FS has more inputs than SBE_SWIZ can remap. Recomputing a VUE map just from FS inputs loses certain slots like multiview slots and extra position slots (for primitive replication), so high-numbered attributes can read the wrong source. When available, pass the previous stage VUE map to the FS compilation and use it. Make sure that the payload is sized based on what is read, in case the previous stage has more outputs than FS reads. Bugs did not surface when there were just 16 or fewer varying inputs, because the driver can program SBE_SWIZ to translate the positions in the previous shader VUE into what the FS wants. For more inputs, this mapping is not used, and the FS must use the exact same slots. Note this is not a problem for pipeline libraries because they use a different fixed layout. This is also not an issue with EXT_shader_object because multiview draws are not allowed with that extension. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41747> |
||
|---|---|---|
| .. | ||
| blorp | ||
| ci | ||
| common | ||
| compiler | ||
| decoder | ||
| dev | ||
| ds | ||
| executor | ||
| genxml | ||
| isl | ||
| mda | ||
| nullhw-layer | ||
| perf | ||
| shaders | ||
| tools | ||
| vulkan | ||
| vulkan_hasvk | ||
| meson.build | ||