dawn-cmake/src/dawn_native
Jiawei Shao 42103bc2e9 Fix crash when device is removed before CreateReady*Pipeline callback
This patch fixes a crash issue when the device is destroyed before
the callback of CreateReady{Render, Compute}Pipeline is called. Now
when the callback is called in DeviceBase::ShutDown(), the cached
pipeline object will also be destroyed before the callback returns.

BUG=dawn:529
TEST=dawn_end2end_tests

Change-Id: I91ec2608b53591d265c0648f5c02daf7fadac85e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/30744
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-10-24 03:11:43 +00:00
..
d3d12 Add wgpu::TextureComponentType::DepthComparison 2020-10-16 14:13:16 +00:00
metal Fix systemName output on Mac/iOS 2020-10-21 22:08:58 +00:00
null Use typed integers for the ExecutionSerial 2020-09-28 19:35:14 +00:00
opengl Add wgpu::TextureComponentType::DepthComparison 2020-10-16 14:13:16 +00:00
vulkan Treat VK_SUBOPTIMAL_KHR as a valid return value of vkQueuePresentKHR 2020-10-24 02:46:13 +00:00
Adapter.cpp dawn.json: Expose the driver version in the adapter. 2020-10-14 13:33:15 +00:00
Adapter.h dawn.json: Expose the driver version in the adapter. 2020-10-14 13:33:15 +00:00
AttachmentState.cpp Typeify ColorAttachmentIndex 2020-09-09 00:08:38 +00:00
AttachmentState.h Typeify ColorAttachmentIndex 2020-09-09 00:08:38 +00:00
BUILD.gn Add the entry point of CreateReadyComputePipeline 2020-10-19 01:56:08 +00:00
BackendConnection.cpp Add WGPUAdapterProperties and expose it in DawnNative 2020-01-10 13:28:18 +00:00
BackendConnection.h Add WGPUAdapterProperties and expose it in DawnNative 2020-01-10 13:28:18 +00:00
BindGroup.cpp Format: Move the baseType to be per-aspect. 2020-10-16 14:07:06 +00:00
BindGroup.h Add minimum buffer size validation 2020-06-19 21:39:23 +00:00
BindGroupLayout.cpp Add wgpu::TextureComponentType::DepthComparison 2020-10-16 14:13:16 +00:00
BindGroupLayout.h Reuse BGL validation in default layout computations. 2020-09-22 11:04:45 +00:00
BindGroupTracker.h Remove kMaxBindingsPerGroup limit 2020-07-14 22:20:35 +00:00
BindingInfo.cpp Add wgpu::BindingType::MultisampledTexture 2020-09-24 11:41:07 +00:00
BindingInfo.h ShaderModule: Don't use Format::Type for reflection. 2020-10-15 13:51:33 +00:00
BuddyAllocator.cpp Fix two warnings. 2020-04-10 19:04:42 +00:00
BuddyAllocator.h Fix and enable -Wnested-anon-types 2020-04-30 15:58:28 +00:00
BuddyMemoryAllocator.cpp Prevent size overflow for sub-allocation. 2020-06-11 18:58:26 +00:00
BuddyMemoryAllocator.h Add some missing #includes. 2019-10-29 18:40:12 +00:00
Buffer.cpp Have Queue timeline tasks resolve in order 2020-10-12 22:32:33 +00:00
Buffer.h Use typed integers for the Buffer MapRequestID 2020-09-28 14:14:44 +00:00
CMakeLists.txt CMake updates. 2020-10-23 13:10:20 +00:00
CachedObject.cpp Only mark objects as cached right before inserting into the cache 2019-10-30 00:20:03 +00:00
CachedObject.h Only mark objects as cached right before inserting into the cache 2019-10-30 00:20:03 +00:00
CommandAllocator.cpp Eagerly destroy CommandBuffer commands after submission 2020-08-13 20:25:39 +00:00
CommandAllocator.h Eagerly destroy CommandBuffer commands after submission 2020-08-13 20:25:39 +00:00
CommandBuffer.cpp Format: Move the TexelBlockInfo inside an AspectInfo. 2020-10-15 09:05:03 +00:00
CommandBuffer.h Limit Clear Color Values to 2^24 For Integer Formats 2020-10-01 19:56:49 +00:00
CommandBufferStateTracker.cpp Typeify VertexBufferSlot and VertexAttributeLocation 2020-09-17 19:07:00 +00:00
CommandBufferStateTracker.h Typeify VertexBufferSlot and VertexAttributeLocation 2020-09-17 19:07:00 +00:00
CommandEncoder.cpp Query API: Record used query index in command encoder 2020-10-21 08:38:31 +00:00
CommandEncoder.h Query API: Record used query index in command encoder 2020-10-21 08:38:31 +00:00
CommandValidation.cpp Implement new formula for requiredBytesInCopy 2020-10-23 21:21:33 +00:00
CommandValidation.h Implement new formula for requiredBytesInCopy 2020-10-23 21:21:33 +00:00
Commands.cpp Eagerly destroy CommandBuffer commands after submission 2020-08-13 20:25:39 +00:00
Commands.h Typeify VertexBufferSlot and VertexAttributeLocation 2020-09-17 19:07:00 +00:00
ComputePassEncoder.cpp Query API: Record used query index in command encoder 2020-10-21 08:38:31 +00:00
ComputePassEncoder.h Query API: WriteTimestamp 2020-07-01 10:48:16 +00:00
ComputePipeline.cpp Unify ProgrammableStageDescriptor handling in PipelineBase 2020-08-28 14:26:00 +00:00
ComputePipeline.h Make ShaderModule reflection go through EntryPointMetadata 2020-09-02 15:57:39 +00:00
CreateReadyPipelineTracker.cpp Fix crash when device is removed before CreateReady*Pipeline callback 2020-10-24 03:11:43 +00:00
CreateReadyPipelineTracker.h Fix crash when device is removed before CreateReady*Pipeline callback 2020-10-24 03:11:43 +00:00
DawnNative.cpp Change Device::Tick To Return Bool 2020-10-15 16:21:03 +00:00
Device.cpp Fix crash when device is removed before CreateReady*Pipeline callback 2020-10-24 03:11:43 +00:00
Device.h Add the entry point of CreateReadyRenderPipeline 2020-10-21 04:37:41 +00:00
DynamicUploader.cpp Use typed integers for the ExecutionSerial 2020-09-28 19:35:14 +00:00
DynamicUploader.h Use typed integers for the ExecutionSerial 2020-09-28 19:35:14 +00:00
EncodingContext.cpp Separate device lost from internal errors. 2020-04-01 12:07:43 +00:00
EncodingContext.h Separate device lost from internal errors. 2020-04-01 12:07:43 +00:00
EnumClassBitmasks.h Track depth/stencil aspects independently 2020-08-06 17:00:29 +00:00
EnumMaskIterator.h Rephrase Format::aspect enum as an enum class mask 2020-07-30 15:25:37 +00:00
Error.cpp Fix AssertAndIgnoreDeviceLossError to handle errors injected by fuzzer 2020-06-16 17:53:38 +00:00
Error.h Fix AssertAndIgnoreDeviceLossError to handle errors injected by fuzzer 2020-06-16 17:53:38 +00:00
ErrorData.cpp Separate device lost from internal errors. 2020-04-01 12:07:43 +00:00
ErrorData.h Separate device lost from internal errors. 2020-04-01 12:07:43 +00:00
ErrorInjector.cpp Reland "fuzzing: Add supportsErrorInjection option to DawnWireServerFuzzer" 2020-01-06 19:56:17 +00:00
ErrorInjector.h Reland "fuzzing: Add supportsErrorInjection option to DawnWireServerFuzzer" 2020-01-06 19:56:17 +00:00
ErrorScope.cpp Standardize the use of UNREACHABLE in switches. 2020-09-24 14:56:50 +00:00
ErrorScope.h Make error scope shutdown iterative instead of recursive. 2020-05-11 20:26:12 +00:00
ErrorScopeTracker.cpp Change Device::Tick To Return Bool 2020-10-15 16:21:03 +00:00
ErrorScopeTracker.h Use typed integers for the ExecutionSerial 2020-09-28 19:35:14 +00:00
Extensions.cpp Reland "Check FP16 support on vulkan backend" 2020-06-08 12:18:21 +00:00
Extensions.h Reland "Check FP16 support on vulkan backend" 2020-06-08 12:18:21 +00:00
Fence.cpp Have Queue timeline tasks resolve in order 2020-10-12 22:32:33 +00:00
Fence.h Have Queue timeline tasks resolve in order 2020-10-12 22:32:33 +00:00
Format.cpp Add wgpu::TextureComponentType::DepthComparison 2020-10-16 14:13:16 +00:00
Format.h Add wgpu::TextureComponentType::DepthComparison 2020-10-16 14:13:16 +00:00
Forward.h Query API: QuerySet 2020-06-11 00:34:14 +00:00
Instance.cpp Enable GBV by default for correctness tests. 2020-07-29 19:44:41 +00:00
Instance.h Enable GBV by default for correctness tests. 2020-07-29 19:44:41 +00:00
IntegerTypes.h Use typed integers for the ExecutionSerial 2020-09-28 19:35:14 +00:00
ObjectBase.cpp Make RefCounted derived objects have private destructors 2020-04-06 18:20:02 +00:00
ObjectBase.h Move and improve RefCounted 2020-04-20 17:36:22 +00:00
PassResourceUsage.h Query API: WriteTimestamp 2020-07-01 10:48:16 +00:00
PassResourceUsageTracker.cpp Track depth/stencil aspects independently 2020-08-06 17:00:29 +00:00
PassResourceUsageTracker.h Add validation code for texture subresource usage tracking 2020-05-04 17:10:49 +00:00
PerStage.cpp Make dawn_native use the webgpu.h header 2019-10-23 11:57:41 +00:00
PerStage.h Make dawn_native use the webgpu.h header 2019-10-23 11:57:41 +00:00
Pipeline.cpp Add wgpu::TextureComponentType::DepthComparison 2020-10-16 14:13:16 +00:00
Pipeline.h Add wgpu::TextureComponentType::DepthComparison 2020-10-16 14:13:16 +00:00
PipelineLayout.cpp Add wgpu::TextureComponentType::DepthComparison 2020-10-16 14:13:16 +00:00
PipelineLayout.h Make ShaderModule reflection go through EntryPointMetadata 2020-09-02 15:57:39 +00:00
PooledResourceMemoryAllocator.cpp Pool sub-allocated resource heaps. 2020-08-17 17:47:15 +00:00
PooledResourceMemoryAllocator.h Pool sub-allocated resource heaps. 2020-08-17 17:47:15 +00:00
ProgrammablePassEncoder.cpp Add wgpu::BindingType::MultisampledTexture 2020-09-24 11:41:07 +00:00
ProgrammablePassEncoder.h Allow one texture as write-only storage and sampled in one compute pass 2020-04-22 00:55:43 +00:00
QuerySet.cpp PipelineStatisticsName -> PipelineStatisticName 2020-07-13 18:21:03 +00:00
QuerySet.h PipelineStatisticsName -> PipelineStatisticName 2020-07-13 18:21:03 +00:00
Queue.cpp Change Device::Tick To Return Bool 2020-10-15 16:21:03 +00:00
Queue.h Have Queue timeline tasks resolve in order 2020-10-12 22:32:33 +00:00
RenderBundle.cpp Remove the "Base" from pure-frontend dawn_native types 2019-11-13 17:00:37 +00:00
RenderBundle.h Make RefCounted derived objects have private destructors 2020-04-06 18:20:02 +00:00
RenderBundleEncoder.cpp BUILD.gn: enable additional warnings. 2020-04-08 16:04:32 +00:00
RenderBundleEncoder.h BUILD.gn: enable additional warnings. 2020-04-08 16:04:32 +00:00
RenderEncoderBase.cpp Adding multiple of 4 validation on indirect draws and dispatches 2020-10-10 00:06:30 +00:00
RenderEncoderBase.h Add setIndexBufferWithFormat method 2020-08-27 01:13:35 +00:00
RenderPassEncoder.cpp Query API: Record used query index in command encoder 2020-10-21 08:38:31 +00:00
RenderPassEncoder.h Make SetViewport validation match upstream WebGPU. 2020-10-11 18:39:32 +00:00
RenderPipeline.cpp Slightly improve a RenderPipeline error message. 2020-10-23 12:41:40 +00:00
RenderPipeline.h Add support for depthBias, depthBiasSlope, and depthBiasClamp 2020-10-06 08:12:29 +00:00
ResourceHeap.h Autoformat everything except tests/examples 2020-07-10 18:19:38 +00:00
ResourceHeapAllocator.h Add another missing #include. 2019-10-30 00:19:43 +00:00
ResourceMemoryAllocation.cpp Autoformat everything except tests/examples 2020-07-10 18:19:38 +00:00
ResourceMemoryAllocation.h Residency 2: Create a d3d12::Heap During Direct Allocations 2020-03-09 15:53:19 +00:00
RingBufferAllocator.cpp Use typed integers for the ExecutionSerial 2020-09-28 19:35:14 +00:00
RingBufferAllocator.h Use typed integers for the ExecutionSerial 2020-09-28 19:35:14 +00:00
Sampler.cpp Reland "Add ComparisonSampler binding type and validation tests" 2020-04-20 23:43:20 +00:00
Sampler.h Reland "Add ComparisonSampler binding type and validation tests" 2020-04-20 23:43:20 +00:00
ShaderModule.cpp Add wgpu::TextureComponentType::DepthComparison 2020-10-16 14:13:16 +00:00
ShaderModule.h Add wgpu::TextureComponentType::DepthComparison 2020-10-16 14:13:16 +00:00
SpirvUtils.cpp ShaderModule: Don't use Format::Type for reflection. 2020-10-15 13:51:33 +00:00
SpirvUtils.h ShaderModule: Don't use Format::Type for reflection. 2020-10-15 13:51:33 +00:00
StagingBuffer.cpp Autoformat everything except tests/examples 2020-07-10 18:19:38 +00:00
StagingBuffer.h Autoformat everything except tests/examples 2020-07-10 18:19:38 +00:00
Surface.cpp Update dawn.json to more closely match webgpu.h 2020-07-06 18:50:00 +00:00
Surface.h Move and improve RefCounted 2020-04-20 17:36:22 +00:00
Surface_metal.mm Introduce wgpu::Surface and implement it for HWND, X11 and Metal 2020-01-15 13:14:12 +00:00
SwapChain.cpp Optimize subresource tracking - use texture view 2020-06-15 18:26:12 +00:00
SwapChain.h Optimize subresource tracking - use texture view 2020-06-15 18:26:12 +00:00
Texture.cpp Validate texture aspect on TextureView creation 2020-10-23 20:06:03 +00:00
Texture.h Validate texture aspect on TextureView creation 2020-10-23 20:06:03 +00:00
ToBackend.h Query API: QuerySet 2020-06-11 00:34:14 +00:00
Toggles.cpp Query API: QuerySet on Metal 2020-09-25 08:49:30 +00:00
Toggles.h Query API: QuerySet on Metal 2020-09-25 08:49:30 +00:00
dawn_platform.h NativeSwapChainImplVk: Remove unnecessary transition on Configure 2020-05-06 07:12:48 +00:00