mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-10 12:30:11 +01:00
read-only mirror of https://gitlab.freedesktop.org/mesa/mesa
If the framebuffer has no attachments then multisample rasterization is enabled based on the rasterizationSamples multisample state of the pipelines. It should be noted that since we don't support the variableMultisampleRate feature, all pipelines in the same subpass must have matching number of samples. V3D requires that we specifically setup our frames to enable multisampling or not, and we do this when we create jobs inside a subpass. Since we create the first job for a subpass as soon as the subpas starts, this is problematic: if we don't have any attachments, we don't won't enable MSAA at this point, but later on we might bind an MSAA pipeline, since pipelines can be bound at any point in the lifespan of a command buffer. Here, we fix this by testing if the first draw call in a job uses an MSAA pipeline but the job the was setup to not use MSAA, and in that case we re-start the job with MSAA enabled. We also take care of a corner case that seems to be tested by CTS where a framebuffer with no attachments doesn't bind any pipelines with MSAA enabled (so according to the Vulkan spec, multisample rasterization must be disabled) but the fragment shader in use reads gl_SampleID (which enables per-sample shading). This would lead to enabling per-sample shading with single-sample rasterization, which doesn't make sense and makes the simulator complain, so we just disable per-sample shading in that case. Fixes: dEQP-VK.pipeline.multisample.mixed_count.* Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766> |
||
|---|---|---|
| .appveyor | ||
| .gitlab/issue_templates | ||
| .gitlab-ci | ||
| bin | ||
| build-support | ||
| docs | ||
| doxygen | ||
| include | ||
| scons | ||
| src | ||
| subprojects | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .mailmap | ||
| .travis.yml | ||
| Android.common.mk | ||
| Android.mk | ||
| appveyor.yml | ||
| CleanSpec.mk | ||
| common.py | ||
| meson.build | ||
| meson_options.txt | ||
| README.rst | ||
| REVIEWERS | ||
| SConstruct | ||
| 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://mesa3d.org/install.html>`_), but the recommended way is to use Meson (`docs/meson.rst <https://mesa3d.org/meson.html>`_): .. code-block:: sh $ mkdir build $ cd build $ meson .. $ sudo ninja install Support ------- Many Mesa devs hang on IRC; if you're not sure which channel is appropriate, you should ask your question on `Freenode's #dri-devel <irc://chat.freenode.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://mesa3d.org/bugs.html>`_). Contributing ------------ Contributions are welcome, and step-by-step instructions can be found in our documentation (`docs/submittingpatches.rst <https://mesa3d.org/submittingpatches.html>`_). Note that Mesa uses gitlab for patches submission, review and discussions.