GLES uses a sample count of 0 to indicate non-multisampling, and a
sample count of 1 or greater to indicate multisampling. While the
Vulkan specification seems to support multisampling with a sample count
of 1, the following spec language effectively disallows it (even when
the underlying Vulkan driver supports it):
If the image was created with VkImageCreateInfo::samples equal to
VK_SAMPLE_COUNT_1_BIT, the instruction must have MS = 0.
The following GLES 3.1 dEQP tests use shaders that look for the sample
position, with a sample count of 1:
dEQP-GLES31.functional.texture.multisample.samples_1.*
For Vulkan drivers that fully support multisampling with a sample count
of 1, these tests pass, but get Vulkan validation errors because of the
above spec language.
This was discussed in the Khronos-private issue tracker (see:
https://gitlab.khronos.org/vulkan/vulkan/issues/1925). The Vulkan
working group wondered if ANGLE could live with not supporting a sample
count of 1 (but upgrading such requests to the next-largest supported
sample count, per the GLES specification). This change implements that
approach.
Bug: angleproject:4197
Bug: angleproject:4212
Change-Id: I009ba47b48efe5af464011c7c15022fc01f45e76
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1974842Reviewed-by:
Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| android | Loading commit data... | |
| build_overrides | Loading commit data... | |
| doc | Loading commit data... | |
| extensions | Loading commit data... | |
| gni | Loading commit data... | |
| include | Loading commit data... | |
| infra | Loading commit data... | |
| samples | Loading commit data... | |
| scripts | Loading commit data... | |
| src | Loading commit data... | |
| third_party | Loading commit data... | |
| tools | Loading commit data... | |
| util | Loading commit data... | |
| .clang-format | Loading commit data... | |
| .gitattributes | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .gn | Loading commit data... | |
| .style.yapf | Loading commit data... | |
| .yapfignore | Loading commit data... | |
| AUTHORS | Loading commit data... | |
| BUILD.gn | Loading commit data... | |
| CONTRIBUTORS | Loading commit data... | |
| DEPS | Loading commit data... | |
| LICENSE | Loading commit data... | |
| OWNERS | Loading commit data... | |
| PRESUBMIT.py | Loading commit data... | |
| README.chromium | Loading commit data... | |
| README.md | Loading commit data... | |
| WATCHLISTS | Loading commit data... | |
| additional_readme_paths.json | Loading commit data... | |
| codereview.settings | Loading commit data... | |
| dotfile_settings.gni | Loading commit data... |