In Vulkan the swapchain can stop working if the window resizes and
doesn't match the size of the swapchain images anymore. WebGPU
applications might not handle resizes instantly, so if the swapchain
becomes incompatible we give them a temporary texture that we'll then
blit inside the real swapchain texture.
This also handles the case where the application requires more usages
than what the swapchain can support.
In addition, temporary checks are added that fail swapchain creation if
the VkSurface doesn't support BGRA8Unorm which is the only allowed
format for WebGPU swapchains at the moment.
SwapChainTests should now work on Vulkan and are enabled.
Bug: dawn:269
Change-Id: I812c0653125ed86d3a0f8f67347e961c7b207a98
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/30700
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
- There are some methods need to know which query indexes are used in
encoders: endOcclusionQuery, endPipelineStatisticsQuery, resolveQuerySet.
- On Vulkan, we also need to use the used query indexes to reset each
queries between uses. And because the reset command must be called
outside render pass, we need to check whether a query index is writen
twice on command encoder and render/compute encoders.
- Add validation on writeTimestamp for duplicate writes at same index.
Bug: dawn:434
Change-Id: I6d00dd91e565d960246b6d01ad434d2d5c095deb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/27561
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Hao Li <hao.x.li@intel.com>
This CL updates the Dawn tests to use the new WGSL struct syntax.
Bug: tint:175
Change-Id: I7ce43385f9107f1a133117c41325a344d2241657
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/30640
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Suppress a couple failing tests cause by Swiftshader's fast resolve
algorithm.
https://swiftshader.googlesource.com/SwiftShader/+log/2014e7b9290e..df17a76102df
$ git log 2014e7b92..df17a7610 --date=short --no-merges --format='%ad %ae %s'
2020-10-15 srisser Make abort on LOG_TRAP opt-in
2020-10-16 cwallez MetalSurface: correctly handle the window resizing.
2020-10-05 amaiorano Add unit tests for arithmetic ops with constant args
2018-02-01 eholk Handle mul instructions with two immediates on x86-32 and x86-64
2020-10-14 natsu Revert "Revert "Update virlg_hw path to reflect Minigbm""
2020-09-10 sugoi Fix CommandPool memory management
2020-10-12 bclayton SpirvShaderDebugger: Improve stepping for inlined functions
2020-10-10 natsu Revert "Update virlg_hw path to reflect Minigbm"
2020-10-10 swiftshader.regress Regres: Update test lists @ 139f5c35
2020-10-08 natsu Update virlg_hw path to reflect Minigbm
2020-09-19 capn Fix depth bias calculations
2020-10-08 capn Move interpolant clamping out of interpolate()
2020-10-08 bclayton SpirvShaderDebugger: Fix store() of arrays
2020-10-08 bclayton SpirvShaderDebugger: Improve ASSERT() messages
2020-10-07 bclayton SpirvShaderDebugger: Have Function inherit LexicalBlock
2020-09-30 capn Remove float division-by-zero prevention
2020-10-05 srisser Replace WARN with a LOG_TRAP
2020-10-05 srisser Reflect VK_KHR_create_renderpass2 being core
2020-10-05 zzyiwei Update Vulkan headers to version 1.2.156
2020-10-05 capn Regres: limit the number of GL tests opening X connections
2020-10-03 bclayton CMake: Add flag for controlling the logging level
2020-10-03 bclayton third_party/cppdap: Roll forward to 1fd23dda
2020-10-02 nicolascapens Regres: List regressions before summary
2020-09-16 vantablack Added support for AndroidHardwareBuffer
2020-10-02 bclayton Squashed 'third_party/marl/' changes from d29553a3730..f1c446ccdc0
2020-09-30 zzyiwei Use vndk/window.h instead of the system one
2020-10-01 swiftshader.regress Regres: Update test lists @ 5e947ada
2020-09-30 capn Fix clamping cube face coordinates to [0.0, 1.0) range
2020-09-30 nicolascapens Fix delegating eglCreateWindowSurface to CreatePlatformWindowSurface
2020-09-30 amaiorano Fix GN build
2020-09-18 amaiorano Optimize transcendentals for Subzero
2020-09-18 caramelli.devel EGL_KHR_platform_x11: wrong implementation in CreatePlatformWindowSurface()
2020-08-01 caramelli.devel Add DirectFB support for Vulkan WSI
2020-09-16 srisser Add VK_KHR_imageless_framebuffer
2020-09-22 bclayton SpirvShaderDebugger: Mark II
2020-09-25 bclayton Vulkan/Debug: Support Locations as hashmap keys
2020-09-28 bclayton System/Types: Add support for vec3
2020-09-28 bclayton Pipeline: Remove hack to disable spirv-opt when debugging
2020-09-25 bclayton Vulkan/Debug: Add Context::Lock::findFile()
2020-09-25 bclayton src/Pipeline: Misc fixes
2020-09-25 bclayton Vulkan/Debug: Various fixes / improvements to Thread
2020-09-25 bclayton Vulkan/Debug: Don't accumulate function breakpoints
2020-09-25 bclayton Vulkan/Debug: Overhaul Values / Variables
2020-09-25 bclayton Vulkan/Debug: Assert on locking context twice on same thread
2020-09-25 bclayton Vulkan/Debug: Add File::getBreakpoints()
2020-09-25 bclayton Vulkan/Debug: Split EventListener
2020-09-25 bclayton Pipeline: Fix return type of SIMD::Pointer::limit()
2020-09-25 bclayton Pipeline: Assign to SpirvRoutine::pointCoord
2020-09-24 sdefresne Explicitly filter assigments to sources variable
2020-09-23 egranata Fix a linker problem with ARM/thumb compatibility
2020-09-17 srisser Implement VK_KHR_image_format_list
2020-09-11 hidehiko Expand is_linux to is_linux || is_chromeos.
2020-04-08 natsu Support Gralloc4 in SwiftShader
2020-09-14 swiftshader.regress Regres: Update test lists @ dc552fce
2020-09-11 amaiorano CMake: normalize FOLDER property for third_party targets
2020-09-14 bclayton SpirvShaderDebugger: Add PRINT_EACH_DEFINED_DBG_INSTRUCTION
2020-09-14 bclayton SpirvShaderDebugger: Implement DebugValue
2020-09-14 bclayton SpirvShaderDebugger: Reduce lock contention
2020-09-11 capn Drop the float literal suffix
2020-09-01 jaebaek Allow OpTypeVoid for debug function return type
2020-09-09 sugoi Update PowerVR Samples to ToT
2020-09-08 capn Fix register assignment for constant arrays
2020-09-08 capn Fix component swizzle for uniform texel buffers
2020-09-08 sugoi Allow alphaToCoverage with a single sample
2020-08-26 capn Regres: Roll dEQP to latest tip-of-tree
2020-09-03 capn Don't assert on component swizzle matching identity
2020-07-29 caramelli.devel Minor change in detachImage() for Xcb, Xlib, Wayland WSIs
2020-08-06 sugoi DescriptorPool error fix
2020-09-02 sugoi Only use clang specific directives when clang is used
2020-08-26 capn Skip texel address sample offset if zero
2020-09-01 srisser Fix enum-hashing build error on Ubuntu 16.04
2020-09-01 capn Fix undefined behavior in minifloat conversion
2020-08-21 capn Add unit test for 11/10-bit minifloat denormal underflow
2020-09-01 capn Assert multisample resolve has equal input and output formats
2020-08-25 jaebaek Handle OpenCL.DebugInfo.100 DebugOperation
2020-08-25 jaebaek Handle DebugGlobalVariable using DebugInfoNone
2020-08-26 capn Optimize multisample resolve with SSE2 instructions
2020-08-26 capn Add a fast multisample resolve code path
2020-08-26 capn Make multisample resolve a Blitter method
Created with:
roll-dep third_party/swiftshader
Change-Id: Ib2bd1b2c5109cc4278de388fab612418e6b1c640
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/30441
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This patch adds the entry point of CreateReadyComputePipeline in both
dawn_native and dawn_wire.
TODOs:
1. Add more tests in dawn_unittests and dawn_end2end_tests.
2. Put the main logic of creating a pipeline into a separate thread.
BUG=dawn:529
TEST=dawn_end2end_tests
Change-Id: I7edd269a5422a8b85320a7f9173df925decba633
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/30060
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
And deprecate using ::Float in the bind group layout for
"shadow textures" in the pipeline (along with a deprecation test).
Adds the ability to be used with DepthComparison only to depth textures,
this could potentially a breaking change if users where doing
depth-comparison on float32 textures but that's not supported in WebGPU.
Bug: dawn:527
Change-Id: Ib28b0443e3002e0aa2811713b9e843c2417e13e7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/30240
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
This also introduces a per-aspect supportedComponentTypes that exactly
mirrors baseType for now but will contain additional bits in the future
(like DepthComparison for depth textures).
It is also a step towards being able to create single-aspect view of
depth-stencil textures to sample either the depth or the stencil
component.
Bug: dawn:527
Change-Id: I3ab224d07c136c682cc2993b9a8599237d318130
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/30103
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Removes validation preventing integer formats from being cleared to
>2^24. Adds a test that clears to the largest values for UINT32 and
SINT32 formats.
Bug: dawn:537
Change-Id: I8aabd36608138725c8ddbbedd50192c0978da99c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/30300
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
In follow up CLs additional will be added to the AspectInfo, like the
supported component types.
Also simplify the logic for GetTexelInfo since all aspects are the first
aspects, except stencil which is always stencil8.
Bug: dawn:517
Change-Id: Iebbcb8a7f8fa2c4b7b06f65d6e4e8917c0a85366
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/30100
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
And use it to print the driver version at the start of
dawn_end2end_tests. This will help when figuring out issues
happening on CQ but not necessarily locally.
Bug: None
Change-Id: Ibdb9ab8cab53cc1e1cf8a807da53edeca616bed9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29602
Reviewed-by: Stephen White <senorblanco@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This CL adds support for chunking large commands by first serializing
large commands first into a separate buffer, and then sending the
buffer data chunk by chunk.
This code path is used for large writeBuffer and writeTexture, as well
as the inline memory transfer service for buffer mapping. The transfer
for writeBuffer and writeTexture will be optimized further in Chrome,
and the inline memory transfer service is currently used only in tests.
Bug: chromium:1123861, chromium:951558
Change-Id: I02491a44e653e2383174958d9c3d4a4db6fd7bde
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28882
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Use QueueBase to track fences in flight and map requests so that they
can be resolved in the order they were added. Before these tasks were
separately tracked in FenceSignalTracker and MapRequestTracker, so tasks
would be resolving out of order.
Bug: dawn:404
Change-Id: I8b58fb72c99f43bc4593f56e08920d48ac506157
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29441
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Natasha Lee <natlee@microsoft.com>
This allows empty scissors, so add a test for it.
This disallows scissor boxes that are bigger than the renderpass
attachment so remove an end2end test for that behavior.
Update the SetScissorRect validation tests.
Bug: dawn:542
Change-Id: I5b8578a4df1b94510a9356bd4007efddf2711588
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29820
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
- Add WriteTimestamp and ResolveQuerySet on Metal
- Enable end2end tests of timestamp query on Metal
- Lazy initialize the distination buffer in ResolveQuerySet
- Update part of end2end tests to test from render pass instead of
command encoder due to we cannot write timestamp on CommandEncoder
without any copy commands on Metal.
Bug: dawn:434
Change-Id: Ie9217e1f5a00bc252d6293ef7521c2e343ba9259
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29020
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Hao Li <hao.x.li@intel.com>
As a side-effect this allows empty viewports which need special handling
in Vulkan because it is not allowed to set width to 0 (but ok to set
height to 0).
Validation tests are updated to cover the new validation checks.
Most of the viewport end2end tests are rewritten because they didn't
pass the new validation.
A new end2end test is added to test various kinds of empty viewports to
cover the extra logic in the Vulkan backend.
Bug: dawn:542
Change-Id: I8bb25612eeed04162a6b942983167eacab3a1906
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29681
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This is to match the upstream WebGPU spec.
Bug: dawn:445
Change-Id: I1a511ed9a2a04c7b95368ce724d69c128158f097
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29360
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
The upstream Tint issues have been fixed and Tint has rolled. This CL
re-enables the disabled test.
Bug: tint:263
Change-Id: Id8a73e198c15c74c55dc9b26603f4a3850d995b3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29680
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This is to match the upstream WebGPU spec.
Bug: dawn:445
Change-Id: I4246487247fdba8d90a119c1970d6d4df3235835
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29361
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This can be used to simplify some logic in Blink.
Bug: dawn:445
Change-Id: I9859c51bc95f564847035533426675188eb8ef99
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29362
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This is a reland of b04a92f01be0e7dc2faf91e0f6f974f990e8b2f2
with the deletion of a duplicate exported function in dawn_wire that
was causing a compilation failure on Windows.
Original change's description:
> Add a per-thread proc table using thread local storage
>
> In situations where both dawn_wire and dawn_native are used on separate
> threads (Chrome with --single-process or --in-process-gpu), it's
> desirable to have a per-thread proc table so that the WebGPU C++ API can
> still be used. This eliminates classes of bugs with manual
> reference/release errors.
>
> This also changes many of the GetProcs functions to return const
> references to the static proc tables known at compile time, instead of a
> copy.
>
> Bug: none
> Change-Id: I8775bb715b312dd9476a1903fbd797d4b1302614
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29240
> Reviewed-by: Stephen White <senorblanco@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>
Bug: none
Change-Id: Id90e5372132cd93a2f8631c8185d0e71b01bc1af
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29443
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
This reverts commit b04a92f01be0e7dc2faf91e0f6f974f990e8b2f2.
Reason for revert: Build failed on win-archive-dbg; see:
https://chromium-review.googlesource.com/c/chromium/src/+/2450792
Original change's description:
> Add a per-thread proc table using thread local storage
>
> In situations where both dawn_wire and dawn_native are used on separate
> threads (Chrome with --single-process or --in-process-gpu), it's
> desirable to have a per-thread proc table so that the WebGPU C++ API can
> still be used. This eliminates classes of bugs with manual
> reference/release errors.
>
> This also changes many of the GetProcs functions to return const
> references to the static proc tables known at compile time, instead of a
> copy.
>
> Bug: none
> Change-Id: I8775bb715b312dd9476a1903fbd797d4b1302614
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29240
> Reviewed-by: Stephen White <senorblanco@chromium.org>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>
TBR=cwallez@chromium.org,senorblanco@chromium.org,enga@chromium.org
Change-Id: I4587b457b7b2dd5d3c7457065bf4e77b95af59d7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: none
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29442
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
In situations where both dawn_wire and dawn_native are used on separate
threads (Chrome with --single-process or --in-process-gpu), it's
desirable to have a per-thread proc table so that the WebGPU C++ API can
still be used. This eliminates classes of bugs with manual
reference/release errors.
This also changes many of the GetProcs functions to return const
references to the static proc tables known at compile time, instead of a
copy.
Bug: none
Change-Id: I8775bb715b312dd9476a1903fbd797d4b1302614
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29240
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
In the WebGPU specification, validation errors for mapAsync take
precedence over the early-unmap or early-destroy promise resolution.
Change the client to wait for the mapAsync status from the server before
sending the cancelation through the callback. If the server sends back
an error, then it takes precedence over the client-side status.
Also adds tests for the updated semantic.
Bug: dawn:445
Change-Id: I7bf1d8bbb3cb62d73ab19ecdf0aad2963e854964
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29300
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
ValidateOrSetAttachmentSize() was asserting that
textureSize.width >> attachment->GetBaseMipLevel() is nonzero.
This is not true for rectangular textures, where the smaller dimension
may hit the lower bound and must be be clamped at 1.
Fixed by calling GetMipLevelVirtualSize() which performs the clamp.
Added a test which exercises rectangular mipmapped textures as color
attachments. This required a few fixes to the test harness, which had
the same bug as that fixed in the code (assumes (width >> size) > 0).
Bug: dawn:535
Change-Id: Idde3b68feb14d8a241803d09a094b059d9935d91
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29261
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Adds validation to ensure clear colors do not exceed 2^24 and a
corresponding unit test. Also removes intermediate float conversions
that are no longer necessary.
Bug: dawn:525
Change-Id: I020b98de85384c20da51158de79eab87f60dcf6d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29040
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
For sampling, check that formats without 4 components sample them as
(0, 0, 0, 1) instead. For rendering, check that extra components output
by the shader are ignored.
Bug: None
Change-Id: Ib49fcaa58e984d821667e992d3ddb1bb093bdba0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29061
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This has been fixed by the layout transition fixes. The dedicated
memory bug doesn't seem relevant at this time.
Bug: dawn:200, dawn:206
Change-Id: I953a20850881f64f5ff5ddbede9aed3a835d22da
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29123
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Fixed in the roll of Swiftshader.
Bug: dawn:483
Change-Id: I8baad1d8d61e7b99c01dc27f929da830ca30c8d3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/29081
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This will prevent mixing it up with other serial types in the future.
Bug: dawn:442
Change-Id: I74e964708acc62eb0f33127cc48f1b9a7b171d11
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28923
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
This will prevent mixing it up with other serial types in the future.
Bug: dawn:442
Change-Id: I32f356c62f19ef29f3bf51c19873369fb817bb16
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28960
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
This is in preparation for follow-up CLs that will use typed integers
for the various serial types.
Bug: dawn:442
Change-Id: I5296546e96acd6ac9f7a0bfc46dc7eba40cb3cf5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28921
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This patch adds two new buffer map async status "destroyed before
callback" and "unmapped before callback" to replace the status "unknown"
so that the developers can get more details when meeting such errors in
the call of buffer mapAsync.
Note that this patch still preserves "unknown" as it is still being used
in Chromium.
BUG=dawn:533
TEST=dawn_unittests
Change-Id: I12deefb49311ea6adea72c24e4e40797dd7eb4a1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28883
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
In B2T, T2B and T2T copies, copySize has 0 in width, height or depth
will trigger errors in D3D12 backend.
This patch bypass the command record step for noop copy. But all
validation rules still applies to the copy.
BUG=dawn:255
Change-Id: I4d01cef2e3c1f78440014c2c6ac63a48310d99af
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28521
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Returning the layouts from an export operation and then using
them in a subsequent import operation allows the import to preserve
the texture contents.
This fixes Vukan image wrapping on some AMD/NVIDIA devices.
Bug: dawn:200
Change-Id: Icbb6e759856d410bb69724b9f439bc3088756d19
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28380
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Change dawn.json to reflect changes in the WebGPU IDL. Also fixes any
conversion issues in Dawn.
Bug: dawn:525
Change-Id: Ifb46329f073bcf31d43342f20f4819eac061d5a1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28400
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
This reverts commit 52a588f3c9ba374630158cc045dfa311ed6a7584.
Reason for revert: added a workaround to filter out messages.
Original change's description:
> Disable debug layer logger
>
> This logger is producing too much output on Windows and causing
> Chromium's gtest harness to kill the tests.
>
> Tbr=cwallez@chromium.org
> No-Try: true
> Bug: chromium:1130483
> Change-Id: I1990bc800bbb7eda62901d14f656375c30fbeef2
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28740
> Reviewed-by: Austin Eng <enga@chromium.org>
> Commit-Queue: Austin Eng <enga@chromium.org>
TBR=cwallez@chromium.org,enga@chromium.org
Bug: chromium:1130483
Change-Id: Ifeee73838a957f619dfdb977f21585fe8abacc3b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28760
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Instead of calling validation functions directly in
PipelineLayoutBase::CreateDefault, use ValidateBGLDesc and
ValidatePipelineLayoutDesc.
Also makes the visibility of the default layout match the aggregation as
in the WebGPU spec.
Also makes refcounting of BGLs a bit less manual at the bottom of
CreateDefault.
Also adds tests for minBufferBindingSize and visiblity aggregation in
the default layout computations.
Bug: dawn:527
Change-Id: I6bbd5f3de8b235dddf6cbd2bedfd34a094fcb277
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28560
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>