mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-25 11:10:42 +01:00
For VS/TES/GS, we lower all outputs to temporaries and emit copies at the end of the shader (or for GS, at each EmitVertex() call) from those temporaries back to real outputs. We use vec8 URB writes without writemasking, since our output area's contents are undefined anyhow. This is simpler than what TCS and Mesh do, which allow for output variables to be read/written at a per-component level at any time, with the output memory being used for cross-thread communication. Rather than using the complicated TCS/Mesh handling and relying on vectorization, we port the emit_urb_writes() approach to NIR. This also takes care of emitting the VUE header with default values when fields aren't explicitly written by the shader. We also handle multiview in the process. It simplifies things, and also drops another case of non-semantic IO in brw. Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39666> |
||
|---|---|---|
| .. | ||
| amd | ||
| android_stub | ||
| asahi | ||
| broadcom | ||
| c11 | ||
| compiler | ||
| drm-shim | ||
| egl | ||
| etnaviv | ||
| freedreno | ||
| gallium | ||
| gbm | ||
| getopt | ||
| gfxstream | ||
| glx | ||
| gtest | ||
| imagination | ||
| imgui | ||
| intel | ||
| kosmickrisp | ||
| loader | ||
| mesa | ||
| microsoft | ||
| nouveau | ||
| panfrost | ||
| poly | ||
| tool | ||
| util | ||
| virtio | ||
| vulkan | ||
| x11 | ||
| .clang-format | ||
| meson.build | ||