1578: Fix destruction of resources r=kvark a=kvark
**Connections**
Fixes#1552
Also fixes the VVL about swapchain frame destruction.
**Description**
Swapchain view was never registered in the device's root Hub. So the old logic of adding it to "suspected resources" didn't fire up correctly. The new logic goes straight into the submission tracker.
This path will cease to exist when either Hubs are removed, or API changes of https://github.com/webgpu-native/webgpu-headers/issues/89 are accepted.
The other resource destruction errors happened because we gathered all the resources that were abandoned by the user, and held alive only by the submitted command buffers, and we added them to the suspected list. Then we'd scan the list in `maintain`, see that they can be removed, and try to associate their destruction with one of the submissions. But the current submission was not added yet! So the logic thinks it can just remove the resources right away in this case, assuming the submission is not found because it's long gone in past.
**Testing**
Tested on our examples.
Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
1576: Switch all bitflag names to plural r=cwfitzgerald a=kvark
**Connections**
#1471 added a lot of singular bitflag names. Previously, we weren't really consistent.
**Description**
This PR changes all of the names to be plural, except for a few that don't imply singularity, and are matching WebGPU upstream. Maybe we need to convert them too?
**Testing**
self-tested
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
1510: OpenGL ES3 backend r=cwfitzgerald,Gordon-F,kvark a=kvark
**Connections**
Follow-up to #1471
**Description**
The new wgpu-hal backend for GLES3 ~~and WebGL2~~
Edit: WebGL2 is not included here
**Testing**
Examples!
Current status:
- all examples work, minus the next issue
- "mipmap" is buggy because we don't have a good way to do mipmap/layer selection
- automated testing?
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
1571: Removed feature="spirv" requirements from SPIRV_PASSTHROUGH support. r=cwfitzgerald a=ElectronicRU
.__________________________________________________________________.
Co-authored-by: Alex S <alex0player@gmail.com>
1568: fix conservative rasterization for vulkan r=cwfitzgerald a=Wumpf
**Connections**
Fixes#1553
**Testing**
image comparison test passes now
Co-authored-by: Andreas Reich <r_andreas2@web.de>
1522: Reduce feature flag surface for descriptor arrays. r=cwfitzgerald a=ElectronicRU
DYNAMIC_INDEXING is checked by default, since WGPU doesn't allow
for any kind of specialization constants and constant indexing is
nigh useless.
STORAGE_RESOURCE_BINDING_ARRAY is enabled iff the device supports:
- both or neither of uniform and buffer arrays with dynamic indexing;
- both or neither of sampled and storage images with dynamic indexing.
NONUNIFORM_INDEXING is enabled iff for ALL types of descriptor arrays
*that are supported for dynamic indexing*, nonuniform indexing is
also allowed.
These flags have a limitation in that some platforms
(eg.
https://vulkan.gpuinfo.org/displayreport.php?id=11692#features_core_12)
may support a strange subset of those features (example device
supporting non-uniform indexing for textures and storage buffers,
but NOT for storage textures or uniform buffers). In that case feature
will be reported as missing, even though it is partially present.
In the author's opinion, this flag set is convenient for the
users to query; however, due to aforementioned limitations, it would be
desirable to obtain statistics about "edge-case" platforms and what
percentage of reports they comprise.
**Connections**
Implementation of proposal outlined in #1515.
Co-authored-by: Alex S <alex0player@gmail.com>
DYNAMIC_INDEXING is checked by default, since WGPU doesn't allow
for any kind of specialization constants and constant indexing is
nigh useless.
STORAGE_RESOURCE_BINDING_ARRAY is enabled iff the device supports:
- both or neither of uniform and buffer arrays with dynamic indexing;
- both or neither of sampled and storage images with dynamic indexing.
NONUNIFORM_INDEXING is enabled iff for ALL types of descriptor arrays
*that are supported for dynamic indexing*, nonuniform indexing is
also allowed.
These flags have a limitation in that some platforms
(eg.
https://vulkan.gpuinfo.org/displayreport.php?id=11692#features_core_12)
may support a strange subset of those features (example device
supporting non-uniform indexing for textures and storage buffers,
but NOT for storage textures or uniform buffers). In that case feature
will be reported as missing, even though it is partially present.
In the author's opinion, this flag set is convenient for the
users to query; however, due to aforementioned limitations, it would be
desirable to obtain statistics about "edge-case" platforms and what
percentage of reports they comprise.
1563: Fix stray header in changelog r=cwfitzgerald a=HalfVoxel
It's definitely released by now. I'm guessing it was part of 0.8.1.
Co-authored-by: Aron Granberg <aron.granberg@gmail.com>