This patch updates the validations about CreateBuffer() with dawn_wire
to match the latest WebGPU SPEC.
According to the SPEC, the validations in CreateBuffer() should be
executed in the below order:
1. If mappedAtCreation == true, return nullptr and a RangeError will be
generated in Chromium.
2. Validate BufferDescriptor and check if there is OOM at device timeline
3. Check if there is OOM at content timeline
Bug: dawn:1586
Change-Id: I97ff5f82a42208442ddf6e46e66381c3b3680450
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/109040
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
This is a catch-all that handles all cases where an operation can result
in non-finite values, such as from calls to std::cosh and std::sinh.
Bug: tint:1581
Bug: tint:1747
Change-Id: Ibb55466fea01b263c98d598459c788fd22cf5bb7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/110726
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Cache .json files are generated at build time. This relies on a
list of the expected cache outputs.
The path to the cache is hardcoded in the test_runner and the
.json files are loaded at runtime.
Change-Id: Icc125125df7e9c338a243526dbc4950a2517039f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/110441
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
With this CL, binary ops add, subtract, multiply, and divide of concrete
values will now produce an error if the result is inf/NaN, as it was
doing with abstract values. This also affects the cross builtin, which
is written in terms of subtract and multiply.
Bug: tint:1581
Bug: tint:1747
Change-Id: Ib1d0d8deddc82c67ab53729a6011937636fcc1a5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/110163
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
This patch adds a workaround on Intel Gen9.5 and Gen11 GPUs to always
allocate 2D textures with CopyDst as committed resources instead of
placed resources to mitigate a driver bug about CreatePlacedResource().
Bug: chromium:1237175
Test: dawn_end2end_tests
Change-Id: I64ab9c083c8835fb2971660eed51252fecac416c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/100641
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
BUG=tint:1755
Change-Id: Ia6098a3149f0ab769f2a904b84522c2c252e6682
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/109300
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
This CL fix insertBits polyfill to handle with the left-shifting
behavior in HLSL, i.e. `(1u << 32u) == (1u << 0u) == 1u` where we want
the result to be `0u`.
Fixed: tint:1743
Change-Id: Ibb82abe4ab2f76dbb0fa06057fb19f15f961d969
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/108166
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
BUG=tint:1753
Change-Id: Ia41db957422c069a195eb732e8b0ec43cd3b96ba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/109140
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
This CL updates the expectation file to remove the entries for
builtins which have been implemented with const-eval.
Bug: tint:1581
Change-Id: I63f0f53e9da83171bb31118ac87a574c95625998
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/108463
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
This Cl adds const-eval for the `floor` builtin.
Bug: tint:1581
Change-Id: I992eba3aa6c66707e923907a4bb912c2f6f8d290
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/108343
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
This CL adds const-eval for the `ceil` builtin
Bug: tint:1581
Change-Id: I32957d17000df1a8a59ce37f49b6177d1087406c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/108342
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
This CL adds const-eval for the `abs` builtin.
Bug: tint:1581
Change-Id: I6ee25c07620990f72a6962441aec62ae7665653e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/108340
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Without this other Tint transforms may end up calling user code instead
of builtins (for example for the min() used in robustness).
This commit does the following changes:
- Changes ShaderModuleVk to return a CompiledSpirv object instead of
just a Spirv Blob so that a remappedEntryPoint can be stored in the
cache alongside the SPIR-V.
- Inlines the logic and simplifies TransformedConcurrentShaderModuleCache
slightly (by introducing a struct instead of std::pair, and adding a
conversion method to ModuleAndSpirv).
- Adds the Renamer transform to ShaderModuleVk and adapt the code to
use the remappedEntryPoint where needed (pipeline creation and
post-compilation reflection).
- Adds a test where the min() used by the robustness transform is
overriden to return a constant 0.
- Moves the Renamer transform to be just after the SingleEntryPoint
transform in D3D12 and Metal as well so as to make the test pass.
Fixed: dawn:1583
Bug: dawn:1585 dawn:1587
Change-Id: Ia9de38d391a7901ed04b097f4a8d439759f7556e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/107020
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This patch adds a validation that the effective buffer size must be a multiple
of 4 when the binding type is storage or read-only storage to match the latest
WebGPU SPEC.
This patch also fixes some typos in BindGroupValidationTests.
Bug: dawn:1542
Test: dawn_unittest
Change-Id: I30234bcf718be0d82d4a09b9980127a98ebe8172
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/105101
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Update:
- expectations.txt
- ts_sources.txt
- resource_files.txt
- webtest .html files
d8a28755b2..74b1f15354
- 74b1f1 op: Implement 'multiple_pairs_of_draws_in_one_render_bundle' test in multiple_buffers.spec.ts (#1901)
- 777f1c Implement 'index_range,auto_layout' test in getBindGroupLayout.spec.ts (#1899)
- f0dacb Implement `pack2x16float` tests (#1890)
- dbbbc8 op: Implement 'two_dispatches_in_the_same_compute_pass' test in multiple_buffers.spec.ts (#1896)
- 2abd75 Implement 'index_range' test in getBindGroupLayout.spec.ts (#1892)
- cbdd47 Roll types to 0.1.22 and test rg11b10ufloat-renderable requestDevice (#1888)
- 723878 op: Implement 'ww' test in multiple_buffers.spec.ts (#1879)
- b411f7 Remove a fallback value in the use of maxBindGroups value (#1895)
- 68e6e0 Update `atan2` F32 tests to account for atan based implementations (#1837)
- 07936b Implement `cross` f32 tests (#1878)
- 5efbf7 compilation_info: Check offset when there is a carriage-return. (#1880)
- 2f74c8 Implement 'timestampWrites,invalid_query_set' test in beginComputePass.spec.ts (#1877)
- a0b0ba op: Implement 'wr' test in multiple_buffers.spec.ts (#1872)
- 427b99 Implement boolean logical equality tests (#1876)
- 115248 Style and bug fixes in device_mismatch tests (#1871)
- 2c53b5 Add a 'sampler,device_mismatch' test to createBindGroup.spec.ts (#1867)
- 291ce4 Implement 'sampler,compare_function_with_binding_type' test in createBindGroup.spec.ts (#1865)
- 497c85 op: Implement test in multiple_buffers.spec.ts (#1857)
- 3eaf0e Add execution tests for logical binary operations (#1870)
- 6f50ab Add execution tests for logical negation (#1869)
Created with './tools/run cts roll'
Change-Id: Ie417426b3e60863637a2faa3904a4f828d8af0d4
Cq-Include-Trybots: luci.chromium.try:dawn-try-win10-x86-rel,linux-dawn-rel,mac-dawn-rel,win-dawn-rel
Include-Ci-Only-Tests: true
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/105200
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Update:
- expectations.txt
- ts_sources.txt
- resource_files.txt
- webtest .html files
0fee76f32e..deb4ba9f33
- deb4ba wgsl: Remove gradients_in_varying_loop tests
- e84b11 Add 'render_pass_and_bundle,device_mismatch' test to attachment_compatibility.spec.ts (#1858)
- cca406 webgpu/shader/execution: More tightly scope validation to batches
- 2e8bb0 webgpu/shader/execution: Reduce `const` case batch size
- 042ae7 wgsl: Fix emission of f32 and f16 infinities. (#1862)
- 050429 Update canvas_composite_alpha to test opaque alpha mode canvas composite (#1856)
- 2a4dfd Update 'multisampled_validation' test in createBindGroupLayout.spec.ts (#1777)
- b09c17 Update texture_must_have_correct_dimension test to handle storageTexture as well (#1851)
- 09db86 Add a doc about Floating Point math as background on numeric testing (#1847)
- 0860ad Update align tests for const expressions. (#1854)
- e77a9f Implement test in operation/rendering/blending.spec.ts (#1845)
- 46e737 Update multisampled_validation test to check the sampleType as well (#1850)
Created with './tools/run cts roll'
Change-Id: Ic58d621db0aab0c847cf30deddb07b5108c466b6
Cq-Include-Trybots: luci.chromium.try:dawn-try-win10-x86-rel,linux-dawn-rel,mac-dawn-rel,win-dawn-rel
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/103600
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
This CL organizes the expectation of new added built-in constant
evaluation and timestampWrties test cases.
Bug: dawn:1250, tint:1613
Change-Id: I380129098873a543aeb72b1d4b8973ae92465c19
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/102108
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
The new heartbeat logic can now detect that these are just slow, and no longer trigger the timeout failures.
Fixed: tint:1613
Change-Id: I2e29b0e2b7002f29984841ed4f421ec6e47be83f
Cq-Include-Trybots: luci.chromium.try:dawn-try-win10-x86-rel,linux-dawn-rel,mac-dawn-rel,win-dawn-rel
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/102960
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
• Add `cts validate` command used to check for expectation collisions.
Can be used as a presubmit check.
This is more tightly checked than the previous logic, as this works on just
the expectations, instead of results.
• Fix an issue where the test result reduction could introduce collisions with
'Skip' expectations.
To fix this, the update process first adds 'consumed' results for the skipped
tests, preventing test tree reduction for that part of the tree.
• Fix a bug in the generation of 'New failures' and 'New flakes' which produced
more expectations than was necessary.
The issue here was that the tree roots could contain overlaps, and roots could
be processed before sub-trees, resulting in inefficient expectations.
• Fix collisions in the expectations file, and update with results from
the most recent roll.
Change-Id: I7b64553408998fb4416458ce564fc49c8f6d4d07
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/101860
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
This patch updates the validations on the inter-stage shader variables to
match the latest WebGPU SPEC (in chapter "validating-inter-stage-interfaces").
With this patch the below validation tests in WebGPU CTS will pass:
- render_pipeline,inter_stage:max_shader_variable_location:*
- render_pipeline,inter_stage:max_components_count,*
Fixed: dawn:1448
Test: dawn_unittests
Change-Id: I3e4d98f03ec18e5d1642a4d7ecd3eed1b7ae04d0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/102104
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Update with additional argument docs, and docs on uploading builds
to Swarming. I've found this particularly useful lately.
Bug: none
Change-Id: Iee04043b7260c505d4d63025c4038e3eb50db338
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/102106
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>