mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 09:18:04 +02:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
Four linked D3D12 pipeline-validation problems with GLSL TCS on DXIL: 1) dxil_nir_kill_unused_outputs killed TCS outputs read back by the patch-constant function after a barrier, zeroing the tess factors. Keep shader_out locations with any intra-shader load_deref live regardless of next_stage_read_mask. 2) is_dead_in_variable dropped TES padding placeholders (no local uses) in nir_remove_dead_variables. Also honor prev_stage_written_mask so padded TES inputs stay alive. 3) Preserving (1) leaves HS with outputs the DS doesn't declare, breaking pipeline validation (e.g. piglit's barrier.shader_test). Add dxil_nir_pad_tes_input_signature, called from both link paths, to synthesize matching TES inputs (reusing each TCS output's type so sig shape and stride match byte-for-byte) plus the tess-level inputs -- subsuming the tess-level-only block previously in dxil_spirv_nir_link. Scope the per-variable padding to TCS outputs that TCS itself reads back via load_deref: outputs that neither TES nor TCS consumes get killed from the HS signature, so padding them into DS would make the DS input signature longer than HS output and break validation for SSO pipelines whose TCS declares unused per-patch writes (arb_separate_shader_objects/ mix-and-match-tcs-tes). 4) remove_hs_intrinsics rewrote load_output but not load_per_vertex_output in HS main. With (1) keeping outputs alive, GLSL reads of outputs in main whose result survives DCE (UAV atomics, non-tess per-vertex output writes) left LoadOutputControlPoint in the control-point function, which dxil.dll rejects outside the PCF (CreatePipelineState then fails with E_INVALIDARG). Treat load_per_vertex_output like load_output. Validated on piglit arb_tessellation_shader/execution (WARP + DXC 1.8.2403): barrier now passes; the previously-crashing tcs-output-unmatched and variable-indexing/tcs-output-array-* fail gracefully matching baseline; isoline/isoline-no-tcs remain flakes (pre-existing canary corruption, unrelated). d3d12-quick_shader.txt drops barrier; d3d12-flakes.txt adds isoline-no-tcs alongside isoline. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41028> |
||
|---|---|---|
| .ci-farms | ||
| .ci-farms-disabled | ||
| .github/workflows | ||
| .gitlab | ||
| .gitlab-ci | ||
| .marge/hooks | ||
| android | ||
| bin | ||
| build-support | ||
| docs | ||
| include | ||
| licenses | ||
| src | ||
| subprojects | ||
| .clang-format | ||
| .clang-format-ignore | ||
| .clang-format-include | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .graphqlrc.yml | ||
| .mailmap | ||
| .mr-label-maker.yml | ||
| .shellcheckrc | ||
| clippy.toml | ||
| CODEOWNERS | ||
| meson.build | ||
| meson.options | ||
| README.rst | ||
| rustfmt.toml | ||
| VERSION | ||
`Mesa <https://mesa3d.org>`_ - The 3D Graphics Library ====================================================== Source ------ This repository lives at https://gitlab.freedesktop.org/mesa/mesa. Other repositories are likely forks, and code found there is not supported. Build & install --------------- You can find more information in our documentation (`docs/install.rst <https://docs.mesa3d.org/install.html>`_), but the recommended way is to use Meson (`docs/meson.rst <https://docs.mesa3d.org/meson.html>`_): .. code-block:: sh $ meson setup build $ ninja -C build/ $ sudo ninja -C build/ install Support ------- Many Mesa devs hang on IRC; if you're not sure which channel is appropriate, you should ask your question on `OFTC's #dri-devel <irc://irc.oftc.net/dri-devel>`_, someone will redirect you if necessary. Remember that not everyone is in the same timezone as you, so it might take a while before someone qualified sees your question. To figure out who you're talking to, or which nick to ping for your question, check out `Who's Who on IRC <https://dri.freedesktop.org/wiki/WhosWho/>`_. The next best option is to ask your question in an email to the mailing lists: `mesa-dev\@lists.freedesktop.org <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`_ Bug reports ----------- If you think something isn't working properly, please file a bug report (`docs/bugs.rst <https://docs.mesa3d.org/bugs.html>`_). Contributing ------------ Contributions are welcome, and step-by-step instructions can be found in our documentation (`docs/submittingpatches.rst <https://docs.mesa3d.org/submittingpatches.html>`_). Note that Mesa uses gitlab for patches submission, review and discussions.