In upstream WebGPU, error scopes do not wait for queue operations or
async operations like create*PipelineAsync or mapAsync. This simplifies
the implementation so we don't need to track error scopes by parent
pointers but can instead have a simple stack.
Bug: dawn:22, chromium:1177107
Change-Id: Ic7344cbd96e257cbabc0f414934a5e42a4020a13
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41980
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Previously spirv-cross didn't have its own sources files but this
changed recently so we should use them. This will ultimately allow
sharing targets between multiple components in Chromium.
Bug: chromium:1179277
Change-Id: Ib4bb1884b9ba9c4c3804e96d8adbb8905c60c9a3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41725
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Compressed textures (BC formats) can support full or partial mip chains.
This tiny change adds a validation test to ensure it.
Bug: dawn:558
Change-Id: I584b65b7d049a3f188e3b56ca5c9ff36748151ae
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42004
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
This makes the primitives in the serialized wire protocol
the same across platforms and architectures which is better
for both fuzzing and remoting Dawn.
Commands that used size_t are updated to use uint64_t, and
the server-side implementation checks if conversion to
size_t would narrow.
Bug: dawn:680
Change-Id: Icef9dc11a72699685ed7191c34d6a922b652c887
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41582
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
- Encapsulate deserialize buffer and size into a DeserializeBuffer
class. This limits the possible operations so we can be sure
buffer/size are not manually mutated such that we consume more
bytes than available.
- Ensure that memberLength (on deserialization) doesn't narrow (or
widen). Previously, values were always implicitly cast to size_t.
- Slight optimization that removes "= nullptr" initialization for
pointers written by DeserializeBuffer::Read. These
are always written to on success, so we don't need to initialize
to nullptr.
Bug: dawn:680
Change-Id: I3779a343e85ff90810707148a952c6ba27cf9d22
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41521
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
String deserialization requires one more byte than the length
computed from strlen. This CL guards against the case when
length+1 overflows.
Also include a slight optimization to memcpy string contents
instead of using std::copy. It's safe to cast away volatile
qualifiers here since the string data doesn't affect control flow.
Bug: dawn:680
Change-Id: Icaf319ea6c5aedcf0c33d17a0ea7c253f4f249e1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41800
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
They were in QueueSubmitValidationTests which was confusing.
Bug: None
Change-Id: I58406149e9e71feafaf111c35aed255c78b9b642
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41726
Commit-Queue: Stephen White <senorblanco@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
BufferConsumer wraps a buffer pointer and size and exposes a
limited number of operations to get data while decrementing
the remaining available size. This makes it so that code
reading or writing into a buffer cannot easily consume more
bytes than available.
This CL guards against serialization overflows using
BufferConsumer, and it implements GetPtrFromBuffer
(for deserialization) on top of BufferConsumer. A future patch
will make the rest of the deserialization code use BufferConsumer.
Bug: dawn:680
Change-Id: Ic2bd6e7039e83ce70307c2ff47aaca9891c16d91
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41780
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
This version renames HasBackendType() -> HasBackendTypeFilter() and
adds a test, similar to HasVendorIdFilter().
Bug: dawn:687
Change-Id: I444d3cb668eb7402ba45f14aaec290390f4c3944
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41900
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Roll third_party/shaderc/ 6216d098d..8d081127e (11 commits)
6216d098d8..8d081127ee
$ git log 6216d098d..8d081127e --date=short --no-merges --format='%ad %ae %s'
2021-02-09 quaresma.jose cmake: add option to skip build the examples (#1170)
2021-02-01 dneto Fix typo
2021-01-28 dneto Improve file+line parsing from Glslang messages
2021-01-18 rharrison Deprecate WebGPU SPIRV support (#1167)
2021-01-06 rharrison Roll 4 dependencies (#1165)
2020-12-09 rharrison Start shaderc v2020.5
2020-12-09 rharrison Finalize v2020.4
2020-12-09 rharrison Updated CHANGES
2020-12-09 rharrison Rolling 5 dependencies (#1161)
2020-12-07 dneto Update SPIRV-Tools, SPIRV-Headers, glslang with raytracing fixes
2020-11-12 dneto copyright check: Exclude .venv in source tree
Roll third_party/vulkan-deps/ c493c6112..0d42e8392 (141 commits)
https://chromium.googlesource.com/vulkan-deps/+log/c493c6112021..0d42e83928f7
$ git log c493c6112..0d42e8392 --date=short --no-merges --format='%ad %ae %s'
2021-02-17 chromium-autoroll Roll SPIRV-Cross from 92d379bab456 to 6f1f6775f35b (1 revision)
2021-02-17 chromium-autoroll Roll SPIRV-Cross from bae17e820438 to 92d379bab456 (1 revision)
2021-02-16 chromium-autoroll Roll SPIRV-Tools from c79edd260c2b to 05cda81aba8c (1 revision)
2021-02-16 chromium-autoroll Roll Vulkan-ValidationLayers from f9eec56cc82f to 74aa762a95df (1 revision)
2021-02-16 chromium-autoroll Roll Vulkan-ValidationLayers from 6302c649ca95 to f9eec56cc82f (1 revision)
2021-02-16 chromium-autoroll Roll Vulkan-Tools from 6952dfcc1df5 to 88ea55de928a (1 revision)
2021-02-16 chromium-autoroll Roll Vulkan-ValidationLayers from 97e718edc638 to 6302c649ca95 (2 revisions)
2021-02-16 chromium-autoroll Roll Vulkan-ValidationLayers from 47bbe90d54c8 to 97e718edc638 (1 revision)
2021-02-16 chromium-autoroll Roll Vulkan-ValidationLayers from c62432713f23 to 47bbe90d54c8 (1 revision)
2021-02-16 chromium-autoroll Roll SPIRV-Cross from 5789e3eed9bc to bae17e820438 (1 revision)
2021-02-15 chromium-autoroll Roll glslang from b0f8a0c3abb9 to 51b86c1a2b77 (1 revision)
2021-02-15 chromium-autoroll Roll glslang from 6ab923c69df7 to b0f8a0c3abb9 (1 revision)
2021-02-15 chromium-autoroll Roll Vulkan-Loader from a66ceba27225 to c5678a03db38 (1 revision)
2021-02-15 chromium-autoroll Roll SPIRV-Cross from 05a1a07f700f to 5789e3eed9bc (1 revision)
2021-02-15 chromium-autoroll Roll SPIRV-Cross from 8f5ab50fb832 to 05a1a07f700f (1 revision)
2021-02-15 chromium-autoroll Roll SPIRV-Cross from 4741bbaa641d to 8f5ab50fb832 (1 revision)
2021-02-15 chromium-autoroll Roll Vulkan-Headers from ec2db85225ab to 1d99b835ec3c (1 revision)
2021-02-12 chromium-autoroll Roll Vulkan-ValidationLayers from 7de10e83093e to c62432713f23 (1 revision)
2021-02-12 jmadill Update commit message script to write as strings.
2021-02-12 chromium-autoroll Roll Vulkan-ValidationLayers from e02e6f73e68c to 7de10e83093e (1 revision)
2021-02-12 chromium-autoroll Roll glslang from 4afd69177258 to 6ab923c69df7 (1 revision)
2021-02-11 chromium-autoroll Roll SPIRV-Tools from cfa1dadb1e62 to c79edd260c2b (1 revision)
2021-02-11 chromium-autoroll Roll Vulkan-ValidationLayers from 01c9ae9b47e5 to e02e6f73e68c (1 revision)
2021-02-10 chromium-autoroll Roll Vulkan-ValidationLayers from d1bfbcd594d6 to 01c9ae9b47e5 (1 revision)
2021-02-10 chromium-autoroll Roll Vulkan-Loader from ff6a9e31358a to a66ceba27225 (2 revisions)
2021-02-10 chromium-autoroll Roll SPIRV-Tools from f0c96f40c79d to cfa1dadb1e62 (1 revision)
2021-02-09 chromium-autoroll Roll Vulkan-Tools from a03938051ff6 to 6952dfcc1df5 (1 revision)
2021-02-09 chromium-autoroll Roll Vulkan-ValidationLayers from 7b727b773d50 to d1bfbcd594d6 (1 revision)
2021-02-09 chromium-autoroll Roll Vulkan-ValidationLayers from 64ffe55c3bf6 to 7b727b773d50 (2 revisions)
2021-02-09 jmadill Add script for formatting commit messages.
2021-02-09 chromium-autoroll Roll Vulkan-Loader from 6fcd515be5b3 to ff6a9e31358a (1 revision)
2021-02-09 chromium-autoroll Roll glslang from 386b4fcb28e5 to 4afd69177258 (1 revision)
2021-02-09 chromium-autoroll Roll Vulkan-ValidationLayers from b2c81e3615bf to 64ffe55c3bf6 (3 revisions)
2021-02-08 chromium-autoroll Roll Vulkan-ValidationLayers from db287d4ad474 to b2c81e3615bf (1 revision)
2021-02-08 chromium-autoroll Roll Vulkan-ValidationLayers from 264cce03f6e4 to db287d4ad474 (2 revisions)
2021-02-06 chromium-autoroll Roll Vulkan-ValidationLayers from 047a6b59c90b to 264cce03f6e4 (1 revision)
2021-02-05 chromium-autoroll Roll Vulkan-ValidationLayers from 6ee1006a4ec9 to 047a6b59c90b (1 revision)
2021-02-05 chromium-autoroll Roll Vulkan-ValidationLayers from 773871cc7e99 to 6ee1006a4ec9 (2 revisions)
2021-02-05 chromium-autoroll Roll SPIRV-Tools from 3ad7e5fcc0ee to f0c96f40c79d (1 revision)
2021-02-05 chromium-autoroll Roll Vulkan-ValidationLayers from 2292623a4339 to 773871cc7e99 (1 revision)
2021-02-05 chromium-autoroll Roll Vulkan-ValidationLayers from 4b8c885ffebf to 2292623a4339 (1 revision)
2021-02-05 chromium-autoroll Roll SPIRV-Tools from f11f74348158 to 3ad7e5fcc0ee (1 revision)
2021-02-05 chromium-autoroll Roll SPIRV-Tools from c91a25af13e1 to f11f74348158 (1 revision)
2021-02-05 chromium-autoroll Roll Vulkan-ValidationLayers from d68ee750eb0b to 4b8c885ffebf (1 revision)
2021-02-04 chromium-autoroll Roll Vulkan-ValidationLayers from e3025c6cdeba to d68ee750eb0b (2 revisions)
2021-02-04 chromium-autoroll Roll Vulkan-ValidationLayers from 1c3d365b1008 to e3025c6cdeba (1 revision)
2021-02-03 chromium-autoroll Roll glslang from 5c4f421121c4 to 386b4fcb28e5 (1 revision)
2021-02-03 chromium-autoroll Roll Vulkan-Loader from fd5cc6962213 to 6fcd515be5b3 (1 revision)
2021-02-03 chromium-autoroll Roll Vulkan-ValidationLayers from 5f585ae240dd to 1c3d365b1008 (1 revision)
2021-02-03 chromium-autoroll Roll Vulkan-ValidationLayers from 669dfd5ce67f to 5f585ae240dd (1 revision)
(...)
2021-01-22 chromium-autoroll Roll SPIRV-Tools from f37547c73a98 to 968659aee8af (1 revision)
2021-01-21 chromium-autoroll Roll glslang from 9b4e82efb482 to 6abdde3ce511 (1 revision)
2021-01-20 chromium-autoroll Roll SPIRV-Tools from 1bd539b9bfc4 to f37547c73a98 (1 revision)
2021-01-20 chromium-autoroll Roll SPIRV-Tools from 56f8ed48efd5 to 1bd539b9bfc4 (1 revision)
2021-01-19 chromium-autoroll Roll SPIRV-Tools from e25db023c47a to 56f8ed48efd5 (1 revision)
2021-01-19 chromium-autoroll Roll Vulkan-ValidationLayers from c7ffe6890160 to ab73ad637606 (2 revisions)
2021-01-19 chromium-autoroll Roll Vulkan-ValidationLayers from efecc309816c to c7ffe6890160 (2 revisions)
2021-01-19 chromium-autoroll Roll Vulkan-ValidationLayers from fb6e414f76dc to efecc309816c (1 revision)
2021-01-19 chromium-autoroll Roll Vulkan-ValidationLayers from 03e41cc0c2a8 to fb6e414f76dc (2 revisions)
2021-01-19 chromium-autoroll Roll Vulkan-ValidationLayers from 6886c4b57f10 to 03e41cc0c2a8 (3 revisions)
2021-01-19 chromium-autoroll Roll Vulkan-ValidationLayers from 10651a9c0bc2 to 6886c4b57f10 (1 revision)
2021-01-19 chromium-autoroll Roll glslang from 5b7d68ca6b3f to 9b4e82efb482 (1 revision)
2021-01-19 chromium-autoroll Roll glslang from 3de5cfe50ede to 5b7d68ca6b3f (1 revision)
2021-01-19 chromium-autoroll Roll Vulkan-Headers from 9efc4a631161 to 684390cedbff (1 revision)
2021-01-19 chromium-autoroll Roll SPIRV-Tools from 8383bd5d6f26 to e25db023c47a (1 revision)
2021-01-19 chromium-autoroll Roll Vulkan-ValidationLayers from ca3216a3a24f to 10651a9c0bc2 (1 revision)
2021-01-18 chromium-autoroll Roll Vulkan-ValidationLayers from fb2ab876edcd to ca3216a3a24f (2 revisions)
2021-01-18 chromium-autoroll Roll SPIRV-Tools from ee39b5db5f1d to 8383bd5d6f26 (1 revision)
2021-01-18 chromium-autoroll Roll Vulkan-Loader from 9ba835885ffe to aed40d52837d (1 revision)
2021-01-15 chromium-autoroll Roll Vulkan-Tools from 93a6c58d76e1 to 7c25ce965b92 (1 revision)
2021-01-15 chromium-autoroll Roll Vulkan-Tools from c86cec54abe6 to 93a6c58d76e1 (1 revision)
2021-01-15 chromium-autoroll Roll SPIRV-Tools from 9150cd441f43 to ee39b5db5f1d (1 revision)
2021-01-15 chromium-autoroll Roll SPIRV-Cross from a5eaf2f44a5d to 9acb9ec31f5a (1 revision)
2021-01-14 chromium-autoroll Roll SPIRV-Tools from b2cfc5d1ceca to 9150cd441f43 (1 revision)
2021-01-14 chromium-autoroll Roll Vulkan-ValidationLayers from 586c46b96b62 to fb2ab876edcd (1 revision)
2021-01-14 chromium-autoroll Roll SPIRV-Cross from 820179bf4689 to a5eaf2f44a5d (1 revision)
2021-01-14 chromium-autoroll Roll SPIRV-Tools from cec658c11603 to b2cfc5d1ceca (1 revision)
2021-01-13 chromium-autoroll Roll Vulkan-ValidationLayers from f5dea94f6f15 to 586c46b96b62 (1 revision)
2021-01-13 chromium-autoroll Roll Vulkan-Tools from a3b988fa5588 to c86cec54abe6 (1 revision)
2021-01-13 chromium-autoroll Roll Vulkan-ValidationLayers from 04b58c5bea3a to f5dea94f6f15 (1 revision)
2021-01-13 chromium-autoroll Roll SPIRV-Tools from 7bbe1a316419 to cec658c11603 (2 revisions)
2021-01-12 chromium-autoroll Roll Vulkan-Tools from be70e017bff5 to a3b988fa5588 (1 revision)
2021-01-12 chromium-autoroll Roll Vulkan-ValidationLayers from 61a57c023e10 to 04b58c5bea3a (1 revision)
2021-01-12 chromium-autoroll Roll SPIRV-Tools from c32277c0ba0d to 7bbe1a316419 (1 revision)
2021-01-11 chromium-autoroll Roll Vulkan-Tools from a7825740f316 to be70e017bff5 (1 revision)
2021-01-11 chromium-autoroll Roll Vulkan-ValidationLayers from 645a15bbaa59 to 61a57c023e10 (1 revision)
2021-01-11 chromium-autoroll Roll Vulkan-ValidationLayers from 46237b593c3f to 645a15bbaa59 (1 revision)
2021-01-11 chromium-autoroll Roll SPIRV-Tools from f3ccb633dfd7 to c32277c0ba0d (1 revision)
2021-01-10 chromium-autoroll Roll Vulkan-ValidationLayers from f0634ebbb36f to 46237b593c3f (2 revisions)
2021-01-09 chromium-autoroll Roll SPIRV-Cross from 702c903f982d to 820179bf4689 (1 revision)
2021-01-08 chromium-autoroll Roll Vulkan-ValidationLayers from 04cf3fd95555 to f0634ebbb36f (1 revision)
2021-01-08 chromium-autoroll Roll Vulkan-ValidationLayers from ebd3ea2ecbac to 04cf3fd95555 (2 revisions)
2021-01-08 chromium-autoroll Roll SPIRV-Cross from ce18d1b8a563 to 702c903f982d (1 revision)
2021-01-08 chromium-autoroll Roll SPIRV-Cross from 0e5078dc0cfb to ce18d1b8a563 (1 revision)
2021-01-08 chromium-autoroll Roll SPIRV-Cross from 134a52003407 to 0e5078dc0cfb (1 revision)
2021-01-08 chromium-autoroll Roll SPIRV-Cross from 234c65c0f32c to 134a52003407 (1 revision)
2021-01-07 chromium-autoroll Roll SPIRV-Tools from ad77ed7a8d52 to f3ccb633dfd7 (1 revision)
2021-01-07 chromium-autoroll Roll Vulkan-ValidationLayers from 9f10caf9c4f3 to ebd3ea2ecbac (2 revisions)
2021-01-07 chromium-autoroll Roll Vulkan-ValidationLayers from cc435b55410a to 9f10caf9c4f3 (2 revisions)
2021-01-07 chromium-autoroll Roll SPIRV-Tools from aa005e8bd435 to ad77ed7a8d52 (1 revision)
Created with:
roll-dep third_party/shaderc third_party/vulkan-deps
Change-Id: I70784aee8bd05fefa51a475f9d58e0c8cb1b9f5c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41860
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Bug: dawn:681
Change-Id: I5d9cd3636a656df1ba9d23964c18011b9cfcf5c0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41440
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Removes special casing depth-stencil or multi-planar formats.
Like depth-stencil, NV12 views can be created but not sampled.
BUG=dawn:551
Change-Id: I3cd43d079253f4ee45660d0efd2723e1650f88d3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41342
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Releasing this configuration is no longer part of the PoR, so no need
to fuzz it.
BUG=dawn:683,chromium:904410
Change-Id: Ic499c68d48b88240361f4ffa937c878b3e3c8526
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41760
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Some of these are skipped by lack of optional feature support,
but at least this brings them on the radar by increasing the
skip counts for the GL backends.
Bug: dawn:580
Change-Id: I3439f41584e70dd51f6d0f7826ef9da7c046020e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41401
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
This is a reland of fb0bf70459
Reland after making libx11-xcb dynamically loaded since it isn't present
on all Linux deployment targets of Chromium. Also includes a couple of
additional cosmetic changes to d3d12/PlatformFunctions noticed while
looking at it for inspiration.
Original change's description:
> Vulkan: Fallback to XCB for Xlib surfaces
>
> Chromium builds the Vulkan loader without support Xlib (because it
> prefers XCB) which caused Xlib wgpu::SwapChain creation to fail on the
> Vulkan backend.
>
> This CL adds a fallback to use VK_KHR_xcb_surface if VK_KHR_xlib_surface
> isn't present.
>
> Bug: dawn:662
> Change-Id: I0e0128ee6b5c75da03998dbae231d17e48bacc81
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41180
> Reviewed-by: Austin Eng <enga@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>
> Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Bug: dawn:662
Change-Id: I617fcd1059dddfa05c29ac20d77f891ca6962342
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41380
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Tint automatically infers a storage class of `handle` for these types
of variable, as per the WGSL spec. Explicitly specifying a storage
class for them will soon become an error.
Bug: tint:332
Change-Id: Ib67e44a5afcdd364470488fd4b456a2b42304daa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41402
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: James Price <jrprice@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
This is to match the upstream WebGPU specification.
Also remove maxVertexAttributeEnd in favor maxVertexBufferStride.
Bug:dawn:678
Change-Id: Ia498ff522ba257d40e9ddd6e145a0ba77f6753ca
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41182
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Currently the queries availability info is only stored on the encoders
where they are written, and we need the info in the compute shader. If
resolving them from a different encoder, 0s are returned because the
queries are not written on resolving encoder.
Besides the encoders, we also need to add availability info to query
set, and use it in compute shader instead.
When resolving query set without any written, we need to reset queries
before resolveQuerySet based on the query set availability on Vulkan.
Added more end2end tests for these cases.
Bug: dawn:645
Change-Id: I09bf1230934aa885587fa4f671925940c1795cd9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/39740
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Hao Li <hao.x.li@intel.com>
Sample mask variables and all functionality introduced by GL_OES_sample_variables was not made core until ES 3.2.
Implement a toggle to disable the functionality if not supported by the backend.
Bug: dawn:673
Change-Id: I7a5ec61fb57da343f0f72ffd3b0c69031eaaff8f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41142
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Readback of stencil is not supported on vanilla ES, so we introduce a toggle to disable it. NVidia GLES drivers support NV_stencil_read and NV_depth_stencil_read extensions, so we use those where available.
It turns out ANGLE supports NV_stencil_read but not NV_depth_stencil_read (for reading from the packed depth/stencil buffers which Dawn uses), so that's the extension we check for.
Bug: dawn:667 dawn:634
Change-Id: I136674d3d47fecee2b8b390d5d219bab07e3bb64
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41141
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
This reverts commit fb0bf70459.
Reason for revert: Failing build during roll:
https://chromium-review.googlesource.com/c/chromium/src/+/2686267/2
Original change's description:
> Vulkan: Fallback to XCB for Xlib surfaces
>
> Chromium builds the Vulkan loader without support Xlib (because it
> prefers XCB) which caused Xlib wgpu::SwapChain creation to fail on the
> Vulkan backend.
>
> This CL adds a fallback to use VK_KHR_xcb_surface if VK_KHR_xlib_surface
> isn't present.
>
> Bug: dawn:662
> Change-Id: I0e0128ee6b5c75da03998dbae231d17e48bacc81
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41180
> Reviewed-by: Austin Eng <enga@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>
> Auto-Submit: Corentin Wallez <cwallez@chromium.org>
TBR=cwallez@chromium.org,jiawei.shao@intel.com,hao.x.li@intel.com,enga@chromium.org
Change-Id: Ia8d2ffb715260b1de490ca04cc76f41bb60b1f61
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: dawn:662
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41343
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
This CL removes the use_tint_inspector toggle which was deprecated in
favour of the use_tint_generator toggle.
Change-Id: I0d48b0cef4605021e0fcf26b9035faf0da6668f1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41241
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Chromium builds the Vulkan loader without support Xlib (because it
prefers XCB) which caused Xlib wgpu::SwapChain creation to fail on the
Vulkan backend.
This CL adds a fallback to use VK_KHR_xcb_surface if VK_KHR_xlib_surface
isn't present.
Bug: dawn:662
Change-Id: I0e0128ee6b5c75da03998dbae231d17e48bacc81
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41180
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
SNORM textures are non-renderable on vanilla ES, which means they're also
non-readable. Use the EXT_render_snorm extension where available, otherwise
skip the test for now.
Bug: dawn:624 dawn:636 dawn:647 dawn:667
Change-Id: Ic50368032d6168060b6b52889b4ba952ce662f02
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40420
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Previousl the VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT was
chained on the VkComputePielineCreateInfo when instead it should be
chained on the VkPipelineShaderStageCreateInfo, causing Vulkan
Validation errors.
Fixed: dawn:671
Change-Id: I9cc803a4f9120cf81f4e143818c3be58b73635d8
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40604
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Hao Li <hao.x.li@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Only set SwiftShader as the default ANGLE backend if the
ANGLE_DEFAULT_PLATFORM environment var is empty. This will allow
devs to set it.
Bug: dawn:447
Change-Id: I49aac4bcb4b0b7c56903eca68248ee22cdf1e6f2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/41140
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Can be used to help with deprecation during simple struct renames.
Includes typedefs for VertexAttributeDescriptor -> VertexAttribute and
VertexBufferLayoutDescriptor -> VertexBufferLayout as specified by the
latest RenderPipelineDescriptor changes.
Bug: dawn:642
Change-Id: Iab3d74d179884499540e813b0e66859713031ccb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40581
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
The wire now supports more than one device, and Chrome is updated
to use the new code path. This fixes same-device validation for
createReadyPipeline.
Bug: dawn:565
Change-Id: Id05001ed1a7e535690c87f535da6f72a0e794c59
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40460
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This helper is no longer needed now that the descriptor has full
defaults and is even optional in CreateSampler.
Bug: dawn:599
Change-Id: I0d25233ebb1e817ad27f3ddaca988e01e2a5298c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/40520
Commit-Queue: Stephen White <senorblanco@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>