mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-08 03:30:26 +01:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
We can express any-hit/intersection shaders as functions, too. Any-hit/Intersection shaders need the usual parameters like launch IDs/descriptor data/ray properties, origin, direction/etc., but also some special parameters related to traversal state. Any-hit/intersection shaders need to return whether the hit was accepted and/or traversal should be terminated, as well as the intersection T value (for intersection shaders). Both any-hit and intersection shaders also need to be passed hit attributes via parameters. Closest-Hit shaders need those too, but we pass them out-of-band via LDS. LDS is used for the traversal stack when any-hit/intersection shaders, so we need to pass them via parameters. Hit attributes are similar to ray payloads in the sense that they're dynamically sized depending on how much space the application uses. However, unlike ray payloads, hit attribute sizes have a strict upper bound of 8 dwords. To make managing parameters easier, we put all hit attributes in a single vector parameter with 0-8 components. This prevents having a function with two sets of arbitrary numbers of parameters. This commit sets up ahit/isec function signatures and implements lowering for ahit/isec-specific intrinsics in the context of these functions. Subsequent commits will merely have to call into these functions to execute a separate-compiled any-hit/intersection shader. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39314> |
||
|---|---|---|
| .ci-farms | ||
| .ci-farms-disabled | ||
| .github/workflows | ||
| .gitlab | ||
| .gitlab-ci | ||
| .marge/hooks | ||
| android | ||
| bin | ||
| build-support | ||
| docs | ||
| include | ||
| licenses | ||
| src | ||
| subprojects | ||
| .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.