1880 Commits

Author SHA1 Message Date
Yunchao He
0da94c3d66 Use __VA_ARGS__ for texture expectation helpers/macros
After we applied __VA_ARGS__  in macros and use {x, y} and {w, h}
to replace (x, y) and (w, h) in EXPECT_TEXTURE_RGBA8_EQ and
EXPECT_TEXTURE_FLOAT_EQ, we can use the more general macro
EXPECT_TEXTURE_EQ. Then these two macros can be removed. Austin
has already put a TODO for this change but didn't do that.

utils::MakeOrigin and utils::MakeExtent are removed because they
are not needed.

In addition, this change removes 0 in callers for parameter level,
because level's default values is 0 in helpers implementation.

BUG: dawn:748

Change-Id: Iece4db7a8ed1d47b57988412f1c897205e7403d4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47100
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2021-04-08 14:58:42 +00:00
Brandon Jones
47b6b680e1 Fill CompilationInfo with Tint diagnostic messages
The previous CL had no way of communicating disagnostic messages from
Tint to the ShaderModule in the event that it failed to validate. This
change ensures that messages generated during validation aren't dropped
on the floor and can be queried from the failed modules CompilationInfo.

BUG: dawn:746
Change-Id: Ic2551654ca30baab0fb5124a148eb4fcdf4b0f22
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46960
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2021-04-08 04:25:11 +00:00
Jiawei Shao
c243f67d58 Refactor APICreateComputePipelineAsync to support both sync and async path
This patch refactors the implementation of APICreateComputePipelineAsync
as a preparation of the async path of the creation of compute pipeline.

Now the code path of APICreateComputePipelineAsync() includes the following
3 parts:
- When an error occurs in the front-end validations, the callback will be
  called at once in the main thread.
- When we can find a proper compute pipeline object in the cache, the
  callback will be called at once in the main thread.
- When we cannot find the proper comptue pipeline object in the cache, the
  newly-created pipeline object, the callback and userdata will be saved
  into the CreatePipelineAsyncTracker, and the callback will be called in
  device.Tick(). All the logic mentioned in this section has been put into
  one function CreateComputePipelineAsyncImpl(), which will be overrided
  by its asynchronous version on all the backends that support creating
  pipeline objects asynchronously.

Note that APICreateRenderPipelineAsync is not changed in this patch because
it is now under refactoring to match the current updates in WebGPU SPEC.

BUG=dawn:529
TEST=dawn_end2end_tests

Change-Id: Ie1cf2f9fc8e18c3e6ad723c6a0cefce29a0eb69c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45842
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2021-04-08 01:22:22 +00:00
Ben Clayton
40d1c83362 Default use_tint_generator to on for D3D12
Most tests pass, those that don't are skipped.

Change-Id: Ia08373551a48382aceffbbc0e23bd15828ebe219
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46452
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-04-07 21:48:11 +00:00
Corentin Wallez
6870e6d78d Vulkan: Check for device loss in CheckAndUpdateCompletedSerials
Bug: chromium:1195645
Bug: chromium:1195693
Change-Id: I3c25a64af87a60f40030094dd73b13a035a7876c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46625
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2021-04-07 18:09:21 +00:00
Yunchao He
44771b3567 Fix a bug for multisample texture validation
If a texture format supports multisample, it should be renderable.
This change adds this validation rule to fix a bug. It also adds a
validation test in dawn_unittests.

BUG: dawn:731

Change-Id: I33a06cb16367e4e379b29b223ef6b69128baf30f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46840
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2021-04-07 17:00:42 +00:00
Yunchao He
ff55b2f217 Remove parameter layer and use origin.z in MACROs
This change removes layer and use origin.z in MACROs
EXPECT_TEXTURE_FLOAT_EQ and EXPECT_TEXTURE_EQ.

It also removes parameter layer in MACROs' implementation
functions AddTextureExpectation and AddTextureExpectationImpl
and use origin.z instead in these functions.

BUG: dawn:747

Change-Id: I0103524074c6c250fa2f85bf9c3abda8c8cd2197
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47000
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2021-04-07 16:57:11 +00:00
Antonio Maiorano
4c4cec93b3 Disable D3D12DescriptorHeapTests.NoSwitchOverSamplerHeap for tint
Bug: tint:681
Change-Id: I7f986b3c6a10007effb0e0e6c310296c5ddeb87c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47021
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-04-07 16:31:51 +00:00
Antonio Maiorano
fc47fbfaf3 Disable BindGroupTests for D3D12 + tint regardless of backend validation
Bug: tint:681
Change-Id: Icfc928d8f3ad92d48786d8a67ffbb4b7ae5febf0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/47020
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
2021-04-07 15:31:11 +00:00
Hao Li
d75f7c02ce Reset query set on Vulkan Backend
We do query resetting for each query commands outside render pass,
whether they're rewritten or not, so no longer need to track their
availability on command encoder. The availability on query set is enough
for resolving sparse queries.

But we still need to track query availability on render pass for query
rewrite checking and query resetting per render pass. Because reset
command must be called outside render pass, we need to reset them
together before the beginning render pass based that. Add availability
tracking on pass resource usage tracker (we only need it on render pass
) to facilitate use it in Vulkan backend.

Bug: dawn:434

Change-Id: Ie1b413ff54f62f3b84fe612e4abe45872c387e81
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45440
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Hao Li <hao.x.li@intel.com>
2021-04-07 05:39:21 +00:00
Yunchao He
1fb3f1dafc Implement 3D texture copy on D3D12: T2B and T2T
This change implements 3D texture copy on D3D12 for texture to
buffer and texture to texture copy for full copy upon the entire
3D texture.

It also uses a function named CopyBufferToTexture to wrap
CopyBufferTo3DTexture and CopyBufferTo2DTextureWithCopySplits.
Likewise, it uses another function named CopyTextureToBuffer to
wrap Copy3DTextureToBuffer and Copy2DTextureToBufferWithCopySplits.

BUG: dawn:547

Change-Id: I4293f6ca4d37f604e6f1c10827686d17469a07ca
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46820
Commit-Queue: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-04-07 03:08:00 +00:00
Yunchao He
ee1a3b32ce Remove parameter layer in EXPECT_TEXTURE_RGBA8_EQ
BGU: dawn:748

Change-Id: Id4b6e7915659938e7474f81d186cfe2128684042
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46727
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2021-04-06 17:52:09 +00:00
Brandon Jones
6f2bbe9896 Implement GPUCompilationInfo
Implements the GPUCompilationInfo and GPUCompilationMessage interfaces,
adds the GPUCompilationMessageType enum, and adds the compilationInfo
method to GPUShaderModule.

BUG: dawn:746
Change-Id: Ied70cbbfedbf4890916ec076993714e5042f70e4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46600
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-04-05 23:34:17 +00:00
Brian Ho
2cccd5a70c Add depth-clamping support for Metal
This CL adds depth clamping support to Metal by invoking
MTLRenderCommandEncoder::setDepthClipMode. I only implemented the
feature for the new-style of RenderPipelineDescriptor since the
old one seems to be deprecated.

Bug: dawn:716
Change-Id: Icd63c72294546042ae452360863a7f9c16b40f95
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45640
Commit-Queue: Brian Ho <hob@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-04-05 17:16:47 +00:00
Yan, Shaobo
dc5d7a1dd9 CopyTextureForBrowser: Support Subrect Copy
This CL support subrect copy. Use scale/offset to copy from subrect of
source texture and viewport for copy to subrect of dstTexture.

BUG=dawn:465

Change-Id: Ice43c0da15f6d9526912879e2e734f6570f2d673
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46422
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Shaobo Yan <shaobo.yan@intel.com>
2021-04-05 13:32:07 +00:00
Brandon Jones
f759264387 Finish conversion to RenderPipelineDescriptor2
Converts each of the native API backends to use RPD2 natively, started
converting the old format to the new one in the deprecated entry point,
removed all other handling and validation of the old format, and turned
on the deprecation warning.

BUG: dawn:642
Change-Id: I20b671960a83f65ecb4ce6ce1165a563025983cd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46726
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
2021-04-02 19:42:28 +00:00
Corentin Wallez
5b196463be Remove unnecessary check for null TextureDescriptor.
Bug: None
Change-Id: I59904565c5cb3ec9e035c213d3b3baf3afd49ec3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46624
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
2021-04-02 06:38:53 +00:00
Yunchao He
3e8f3f9609 Implement 3D texture copy on D3D12 backend: copy to entire 3DTexture
This is the first patch to implement 3D texture copy. It starts with
implementation for 3D texture copy on D3D12 backend with the simplest
case: copy to the entire 3D texture. And texture's width is aligned
with 256 bytes.

The implementation for 3d texture copy might be inaccurate/incorrect
in some functions for complicated cases. But don't panic. The previous
implementation is also incorrect because many functions assumes that
we are copying to/from 2D textures only. And I will incrementally fix
the incorrect functions via upcoming tests for 3d texture copy.

BUG: dawn:547

Change-Id: I588b09fc8d0f0398e0798573415ba3a6a3f576fc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45980
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2021-04-01 22:40:43 +00:00
Corentin Wallez
61fbb28547 Remove marking of CreatePipelineAsync as unsafe.
We are going to send another PSA about new APIs in Dawn/Chromium and
want developers to be able to use CreatePipelineAsync. The
implementation is safe, it just doesn't offload the work to a different
thread yet.

Bug: dawn:529
Change-Id: Ia093e46f8c3d389fd42eb5c1ad6b94ab8e64957b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46448
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-04-01 21:52:13 +00:00
Brandon Jones
0e92e9bf3c Add GPUExternalTexture Types
Adds GPUExternalTexture-related types, as well as
Device::ImportExternalTexture. Adds a basic unit and end2end test.

Bug: dawn:728
Change-Id: Iee9533eb872c493a089cccd500748f1a61457407
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46060
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
2021-04-01 20:46:42 +00:00
Bryan Bernhart
a223e1f0c8 D3D12: Improve NV12 checkerboard test image.
Each quadrant now uses a unique color so
a test result failure can better indiciate any
unexpected sampling behavior.

BUG=dawn:733

Change-Id: If0e814956c1d686bdddcfb6de4dbf24f05d5a027
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46540
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
2021-04-01 17:15:15 +00:00
Corentin Wallez
e88bca946e SubresourceTrackingPerf: use the result of textureDimensions
This fixes a failure when use_tint_generator on D3D12, but also preps
the code for the future where WGSL requires that return values from
functions are used.

Bug: None
Change-Id: I6b8a5e0aef6550ef39d2972cdc510e05e4be3662
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46620
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2021-04-01 13:50:25 +00:00
Yunchao He
4eb40c1849 Implement 3D texture copy: preparation
This is a preparation CL for 3D texture copy. It refactors texture
result comparison MACROs and their implementations, in order to
add texture result comparison for 3D texture. Prior to this change,
texture result comparison supports 1D/2D texture only.

BUG: dawn:547
Change-Id: Ia242356e05f4762e33a8278ec0d038b8580f7aa9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46320
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
2021-03-31 22:15:53 +00:00
Corentin Wallez
7ef8633593 Reassign some TODOs to a new bug for OpenGL buffer OOM
Bug: dawn:27
Bug: dawn:749
TBR=senorblanco@chromium.org

Change-Id: I1f9093f443bc28be08738fd3ff230b14ce0a55a4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46447
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2021-03-31 17:54:00 +00:00
Hao Li
864a364742 Suppress OcclusionQueryTests.QueryWithScissorTest on Intel
This case is failed weirdly on Intel TGL (Window Vulkan) which says the
destination buffer keep sentinel value in the second case, it cannot be
reproduced with any debug actions including Vulkan validation layers
enabled, and takes time to find out if the WriteBuffer and
ResolveQuerySet are not executed in order or the ResolveQuerySet does
not copy the results to the buffer. In order to integrate end2end tests
to Intel driver CL without unknown issues, skip it until we find the
root cause.

Bug:dawn:434

Change-Id: Ibdba667cb662ba69c8468d5b2ac2e84bcd3df5bc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46321
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Hao Li <hao.x.li@intel.com>
2021-03-31 01:22:02 +00:00
Ben Clayton
78fdaa4eeb Disable SlantedPlaneMipmap for D3D12 + tint
Bug: tint:691
Change-Id: Ic002bdc1955724fb26d16b7f63712bd77febc67c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46377
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 20:30:37 +00:00
Ben Clayton
318ec2e893 Disable test for D3D12 + tint which use runtime sized arrays
Bug: tint:682
Change-Id: I254e0a4b02dd9348daab096e6fc16d9a004c527e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46369
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 20:14:07 +00:00
Ryan Harrison
1523d4cf18 Add using Tint for binding reflection
BUG=dawn:700

Change-Id: I5234d48867b500aece79b82515818afdfc3a6d9a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45100
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 19:55:27 +00:00
Ben Clayton
17941e1562 Disable BindGroupTests for D3D12 + tint
Bug: tint:681
Change-Id: I5cca1889d2ba26503530ead922278172e5e98ccf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46368
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 18:54:07 +00:00
Ben Clayton
25d3f252a6 ComputeSharedMemoryTests: Add missing access qualifier
https://gpuweb.github.io/gpuweb/wgsl.html#variables:

> "Variables in the storage storage class and variables with a storage texture type must have an access attribute applied to the store type."

Bug: tint:692
Change-Id: I61774bb6bda9a7d31e3a85c24fcdb6e2fc25e7b1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46378
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 16:37:07 +00:00
Ben Clayton
5da990b0a4 Disable SampledAndWriteonlyStorageTexturePingPong for D3D12 + tint
Bug: tint:690
Change-Id: If3bdba33f843885c7e056b68b361d890a7a58c04
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46376
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 16:29:37 +00:00
Ben Clayton
eef7a6a58c Disable tests for D3D12 + tint that fail due 'undeclared identifier'
Bug: tint:688
Change-Id: Ic1f0fbd6da112557711595eae38b5d034bbe594b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46374
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 16:23:27 +00:00
Ben Clayton
682d764e85 Disable TextureFormatTest for D3D12 + tint
Bug: tint:689
Change-Id: Ib006a2e726078426cd00479c35d47eecf9b3d601
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46375
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 16:21:07 +00:00
Ben Clayton
1894d5d83a Disable SizedArrayOfStruct tests for D3D12 + tint
Bug: tint:683
Change-Id: I55c513108cb5c8e14bd72bb8dd3177afff353623
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46370
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 16:08:07 +00:00
Ben Clayton
1bcfdce243 Disable MultipleWriteThenMultipleReadTests for D3D12 + tint
Bug: tint:686
Change-Id: Iaca48aa7fb4cddbc008d66a248d01a6e4d36f5ea
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46372
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 16:05:17 +00:00
Ben Clayton
9421afc46f Disable VertexFormatTest for D3D12 + tint
Bug: tint:687
Change-Id: Ib839f629ea4095c007c1a8b3f9ad490c1e9e4910
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46373
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 16:00:57 +00:00
Ben Clayton
51d81c1d56 Disable DepthStencilSamplingTest for D3D12 + tint
Bug: tint:684
Change-Id: Iff76442349da1a399c7460a1a6ce047229b0ab88
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46371
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 15:44:07 +00:00
Ben Clayton
ed73e6f51e Disable TimestampComputeShader test on D3D12 + WARP + Validation
Bug: dawn:741
Change-Id: I5ee730e4f7b0e9041373bfe9ecc1be3b2535a775
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46367
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 15:23:37 +00:00
Ben Clayton
9ef74c56fd Disable EncodeUBOOverflowMultipleSubmit test on D3D12 + WARP
Bug: dawn:742
Change-Id: I11fc4c49c4040d694703ed43ebd8b1e2fe62bf17
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46366
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 15:22:17 +00:00
Ben Clayton
74879450c5 Disable SlantedPlaneMipmap test on D3D12 + WARP
Bug: dawn:740
Change-Id: I127c7698cf9103ef85dafe44c5dc5781ccea031d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46365
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 15:21:37 +00:00
Ben Clayton
d48c5ed77c Disable SwitchedViewHeapResidency test on D3D12 + WARP + Validation
Bug: dawn:739
Change-Id: I56f17f75bd2e5a12d90c6875817d980cb98d3e01
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46364
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 15:19:37 +00:00
Ben Clayton
2922d8d603 Skip ClearTwiceInD3D12ReadbackInD3D11 for WARP + validation
Bug: dawn:735
Change-Id: I26d06528aebb4f2c2a391d65ab8a16ef1e6e01f7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46360
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 13:23:27 +00:00
Ben Clayton
fed33fa18a Disable ArbitraryBindingNumbers on D3D12 + WARP
Bug: dawn:736
Change-Id: I3402dee42c71a88160667ea8ea00b43734441741
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46361
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 13:15:27 +00:00
Ben Clayton
47a8cf3410 Disable MultisampledRenderingTest tests on D3D12 + WARP
Bug: dawn:738
Change-Id: I208d9851f14c25f16a97382953150eba7f4667b9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46363
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 13:13:17 +00:00
Aleksi Sapon
7f8c91cdde Fix crash from async callback calling Queue::Submit
An async callback which calls Queue::Submit will cause
reentrance in QueueBase::Tick and CreatePipelineAsyncTracker::Tick,
which invalidates the task queue being used by the original call,
and leads to a crash from an invalid pointer.

The Tick functions should remove the tasks from the queues before
the callbacks are called, so invalidation doesn't cause a crash.

Bug: dawn:729

Change-Id: I0d952d51040a3d1a475767400de3333a8b9b0821
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45900
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
2021-03-30 13:06:17 +00:00
Ben Clayton
98028718e1 Disable DepthStencilStateTest tests on D3D12 + WARP
Bug: dawn:737
Change-Id: I55d22ad54fe3983bbae67572a428d01a64e634e3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46362
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-30 12:55:17 +00:00
Ben Clayton
955146e9ac Skip ColorStateTest.* for D3D12 and WARP
These don't pass.

Bug: dawn:489
Change-Id: Ic9a5f34bc3325326d2c6217e82d75633ff0a7534
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46344
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-03-30 12:05:47 +00:00
Ben Clayton
8d57426a80 Skip ClearInD3D12ReadbackInD3D11 for WARP + validation
Bug: dawn:735
Change-Id: I5731e198f6888bf6ad7d244a54053b917a277e4a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46343
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-03-30 11:53:07 +00:00
Corentin Wallez
2ce4b905b2 dawn_native: Prefix all API methods with API
This means that calling wgpu::Object::DoStuff will translate to a call
to dawn_native::ObjectBase::APIDoStuff. This will clarify the
difference between reentrant calls and internal calls in dawn_native.
Avoiding issues in the future.

This CL only changes the code generator to prefix with "API", performs
renames needed to make the code compile, and adds TODOs for things that
should be fixed in follow-up CLs.

Bug: dawn:723

Change-Id: Ie24471fa093adc4179d33d13323429847d076ecb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45921
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
2021-03-29 14:02:05 +00:00
Ryan Harrison
9138fe253b Add test to confirm validation rejects invalid WGSL
BUG=dawn:504

Change-Id: If09b12d4df9c7aedcb28b4640557cc3cae6e989d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/45700
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-03-24 19:39:33 +00:00