dawn-cmake/src/dawn_native/metal
Corentin Wallez d26ee85fba Implement the webgpu.h swapchains in the frontend and Null backend.
The state-tracking of the webgpu.h swapchain is a bit complicated
because contrary to implementation-based swapchains, they have more
guarantees and a "replacing mechanism". For example instead of hoping
the implementation-based swapchain resize automatically, the
surface-based swapchain needs to be replaced by a new swapchain and
invalidated.

This mechanism of invalidation also needs to be triggered when the last
reference to the surface is lost because we don't want to risk the
application destroying the window from under us.

Adds tests for all the cases of invalidation I could think of apart from
device loss.

Bug: dawn:269

Change-Id: Id515dbb640e13c6e30bb1f1e93b8e54f1e2bba4b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15400
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-01-25 10:05:40 +00:00
..
BackendMTL.h Metal: Implement the backend connection and adapter. 2019-02-05 13:02:30 +00:00
BackendMTL.mm Add WGPUAdapterProperties and expose it in DawnNative 2020-01-10 13:28:18 +00:00
BufferMTL.h Metal: Pack vertex buffers just after the pipeline layout 2019-07-29 14:11:06 +00:00
BufferMTL.mm Make dawn_native public headers and dawn_wsi use webgpu.h 2019-10-24 23:55:37 +00:00
CommandBufferMTL.h Reland "Metal: Add CommandRecordingContext" 2020-01-15 18:22:53 +00:00
CommandBufferMTL.mm Metal: Implement lazy texture clears 2020-01-16 00:12:10 +00:00
CommandRecordingContext.h Reland "Metal: Add CommandRecordingContext" 2020-01-15 18:22:53 +00:00
CommandRecordingContext.mm Reland "Metal: Add CommandRecordingContext" 2020-01-15 18:22:53 +00:00
ComputePipelineMTL.h Propagating errors out of GetFunction in MTL backend 2019-12-12 17:51:39 +00:00
ComputePipelineMTL.mm Add code path to use spvc in Metal backend 2020-01-17 20:28:58 +00:00
DeviceMTL.h Implement the webgpu.h swapchains in the frontend and Null backend. 2020-01-25 10:05:40 +00:00
DeviceMTL.mm Implement the webgpu.h swapchains in the frontend and Null backend. 2020-01-25 10:05:40 +00:00
Forward.h Input State Descriptorization 2019-03-27 18:08:50 +00:00
MetalBackend.mm Make dawn_native public headers and dawn_wsi use webgpu.h 2019-10-24 23:55:37 +00:00
PipelineLayoutMTL.h Rename ShaderStageBit to ShaderStage. 2019-08-27 08:42:29 +00:00
PipelineLayoutMTL.mm Implement readonly storage buffer on Metal backend 2019-12-09 21:35:38 +00:00
QueueMTL.h Return Dawn result upon submit. 2019-09-23 21:21:10 +00:00
QueueMTL.mm Reland "Metal: Add CommandRecordingContext" 2020-01-15 18:22:53 +00:00
RenderPipelineMTL.h Propagating errors out of GetFunction in MTL backend 2019-12-12 17:51:39 +00:00
RenderPipelineMTL.mm Add code path to use spvc in Metal backend 2020-01-17 20:28:58 +00:00
SamplerMTL.h Make dawn_native use its own header for Dawn datatypes 2018-07-27 12:56:26 +02:00
SamplerMTL.mm Make dawn_native use the webgpu.h header 2019-10-23 11:57:41 +00:00
ShaderModuleMTL.h Add code path to use spvc in Metal backend 2020-01-17 20:28:58 +00:00
ShaderModuleMTL.mm Removing deprecated spvc API usages 2020-01-24 16:16:59 +00:00
StagingBufferMTL.h Memory manager: buffer uploads (Metal+refactor) - Part 3 2019-02-15 21:18:40 +00:00
StagingBufferMTL.mm Rename ContextLost to DeviceLost 2019-08-27 18:10:03 +00:00
SwapChainMTL.h Add the webgpu.h swapchain creation path 2020-01-23 17:20:38 +00:00
SwapChainMTL.mm Add the webgpu.h swapchain creation path 2020-01-23 17:20:38 +00:00
TextureMTL.h Metal: Implement lazy texture clears 2020-01-16 00:12:10 +00:00
TextureMTL.mm Metal: Implement lazy texture clears 2020-01-16 00:12:10 +00:00
UtilsMetal.h Make dawn_native use the webgpu.h header 2019-10-23 11:57:41 +00:00
UtilsMetal.mm Make dawn_native use the webgpu.h header 2019-10-23 11:57:41 +00:00