dawn-cmake/src/dawn/native
shrekshao 4313dba514 Pipeline cache D3D12 backend impl
Add D3D12 pipeline caching impl: store cachedPSO blob in cached blob.
Record root signature ID3DBlob in cache key together with
D3D_SHADER_BYTECODE, D3D12_GRAPHICS_PIPELINE_STATE_DESC or
D3D12_COMPUTE_PIPELINE_STATE_DESC.

Shader caching is not added.

Add some pipeline caching negative tests.

Bug: dawn:549
Change-Id: Id1cb560b49f1cf495860e2e0bcf92d8d988c5379
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/91180
Auto-Submit: Shrek Shao <shrekshao@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
2022-06-02 15:16:20 +00:00
..
d3d12 Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
metal Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
null [warnings] Add Wsuggest-override and Wsuggest-destructor-override. 2022-05-10 18:44:34 +00:00
opengl dawn/native: Add support for feature "indirect-first-instance" 2022-06-01 06:14:07 +00:00
utils Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
vulkan Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
Adapter.cpp Begin auto generating GPUInfo utilities 2022-05-26 23:47:39 +00:00
Adapter.h Begin auto generating GPUInfo utilities 2022-05-26 23:47:39 +00:00
AsyncTask.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
AsyncTask.h [warnings] Add Wsuggest-override and Wsuggest-destructor-override. 2022-05-10 18:44:34 +00:00
AttachmentState.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
AttachmentState.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BUILD.gn Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
BackendConnection.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BackendConnection.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BindGroup.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BindGroup.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BindGroupLayout.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BindGroupLayout.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BindGroupTracker.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BindingInfo.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BindingInfo.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BlobCache.cpp Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
BlobCache.h Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
BuddyAllocator.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BuddyAllocator.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
BuddyMemoryAllocator.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
BuddyMemoryAllocator.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
Buffer.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Buffer.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CMakeLists.txt Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
CacheKey.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CacheKey.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CachedObject.cpp Adds pipeline cache and implementation for Vulkan backend. 2022-05-03 00:33:33 +00:00
CachedObject.h Adds pipeline cache and implementation for Vulkan backend. 2022-05-03 00:33:33 +00:00
CallbackTaskManager.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
CallbackTaskManager.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
CommandAllocator.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CommandAllocator.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CommandBuffer.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CommandBuffer.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CommandBufferStateTracker.cpp Dawn: vertex buffer never OOB with zero stride count draw/Indexed 2022-05-19 01:32:48 +00:00
CommandBufferStateTracker.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 20:28:54 +00:00
CommandEncoder.cpp dawn: Validate that depth-stencil attachments encompass all aspects. 2022-05-20 16:16:40 +00:00
CommandEncoder.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CommandValidation.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CommandValidation.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Commands.cpp Reland "[chromium-style] Adding constructors and destructors." 2022-05-17 06:11:42 +00:00
Commands.h Reland "[chromium-style] Adding constructors and destructors." 2022-05-17 06:11:42 +00:00
CompilationMessages.cpp Show diagnostic notes in WGSL compilation messages 2022-05-13 19:04:24 +00:00
CompilationMessages.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 20:28:54 +00:00
ComputePassEncoder.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ComputePassEncoder.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ComputePipeline.cpp Adds pipeline cache and implementation for Vulkan backend. 2022-05-03 00:33:33 +00:00
ComputePipeline.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CopyTextureForBrowserHelper.cpp Update createView default logic to match spec 2022-05-24 14:57:43 +00:00
CopyTextureForBrowserHelper.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
CreatePipelineAsyncTask.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
CreatePipelineAsyncTask.h [warnings] Add Wsuggest-override and Wsuggest-destructor-override. 2022-05-10 18:44:34 +00:00
DawnNative.cpp Return an error surface if surface creation fails 2022-05-31 20:55:39 +00:00
Device.cpp Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
Device.h Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
DynamicUploader.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
DynamicUploader.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
EncodingContext.cpp Validate if device is alive in EncodeFunction of EncodingContext::TryEncode 2022-05-13 21:05:57 +00:00
EncodingContext.h Validate if device is alive in EncodeFunction of EncodingContext::TryEncode 2022-05-13 21:05:57 +00:00
EnumClassBitmasks.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
EnumMaskIterator.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Error.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Error.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ErrorData.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 20:28:54 +00:00
ErrorData.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 20:28:54 +00:00
ErrorInjector.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ErrorInjector.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ErrorScope.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
ErrorScope.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
ExternalTexture.cpp Stop validating ExternalTextureDescriptor::colorSpace prior to removal 2022-06-01 12:57:49 +00:00
ExternalTexture.h Make External Texture ColorSpace Conversion Configurable 2022-05-19 17:44:29 +00:00
Features.cpp dawn/native: Add support for feature "indirect-first-instance" 2022-06-01 06:14:07 +00:00
Features.h dawn/native: Add support for feature "indirect-first-instance" 2022-06-01 06:14:07 +00:00
Format.cpp Revert "[chromium-style] Adding constructors and destructors." 2022-05-10 23:32:44 +00:00
Format.h Enable -Wglobal-constructors for dawn/native 2022-05-17 01:41:41 +00:00
Forward.h Adds pipeline cache and implementation for Vulkan backend. 2022-05-03 00:33:33 +00:00
IndirectDrawMetadata.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
IndirectDrawMetadata.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
IndirectDrawValidationEncoder.cpp dawn/native: Add support for feature "indirect-first-instance" 2022-06-01 06:14:07 +00:00
IndirectDrawValidationEncoder.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Instance.cpp Return an error surface if surface creation fails 2022-05-31 20:55:39 +00:00
Instance.h Fix multiple device leaks in dawn_end2end_tests and dawn_unittests 2022-05-18 13:28:21 +00:00
IntegerTypes.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
InternalPipelineStore.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
InternalPipelineStore.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Limits.cpp Raise base maxComputeWorkgroupStorageSize limit. 16352 -> 16384 2022-05-11 18:28:46 +00:00
Limits.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ObjectBase.cpp Return an error surface if surface creation fails 2022-05-31 20:55:39 +00:00
ObjectBase.h Return an error surface if surface creation fails 2022-05-31 20:55:39 +00:00
ObjectContentHasher.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ObjectContentHasher.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
PassResourceUsage.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 20:28:54 +00:00
PassResourceUsage.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 20:28:54 +00:00
PassResourceUsageTracker.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 20:28:54 +00:00
PassResourceUsageTracker.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 20:28:54 +00:00
PerStage.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
PerStage.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Pipeline.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Pipeline.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
PipelineCache.cpp Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
PipelineCache.h Pipeline cache D3D12 backend impl 2022-06-02 15:16:20 +00:00
PipelineLayout.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
PipelineLayout.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
PooledResourceMemoryAllocator.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
PooledResourceMemoryAllocator.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
ProgrammableEncoder.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ProgrammableEncoder.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
QueryHelper.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
QueryHelper.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
QuerySet.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
QuerySet.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Queue.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Queue.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
RefCountedWithExternalCount.cpp Make child objects ref the device and add a mechanism to break cycles 2022-05-20 16:57:01 +00:00
RefCountedWithExternalCount.h Make child objects ref the device and add a mechanism to break cycles 2022-05-20 16:57:01 +00:00
RenderBundle.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
RenderBundle.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
RenderBundleEncoder.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
RenderBundleEncoder.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
RenderEncoderBase.cpp Dawn: vertex buffer never OOB with zero stride count draw/Indexed 2022-05-19 01:32:48 +00:00
RenderEncoderBase.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
RenderPassEncoder.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
RenderPassEncoder.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
RenderPipeline.cpp Record zero-attribute vertex buffer when creating render pipeline 2022-05-26 01:26:34 +00:00
RenderPipeline.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ResourceHeap.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ResourceHeapAllocator.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ResourceMemoryAllocation.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ResourceMemoryAllocation.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
RingBufferAllocator.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
RingBufferAllocator.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
Sampler.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Sampler.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ScratchBuffer.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ScratchBuffer.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ShaderModule.cpp Record zero-attribute vertex buffer when creating render pipeline 2022-05-26 01:26:34 +00:00
ShaderModule.h ShaderModule: Don't create an inspector just to reflect exts 2022-05-10 06:41:24 +00:00
SpirvValidation.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
SpirvValidation.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
StagingBuffer.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
StagingBuffer.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Subresource.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Subresource.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
SubresourceStorage.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Surface.cpp Add support for SurfaceDescriptorFromWaylandSurface 2022-06-01 09:30:50 +00:00
Surface.h Add support for SurfaceDescriptorFromWaylandSurface 2022-06-01 09:30:50 +00:00
Surface_metal.mm Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
SwapChain.cpp Return an error surface if surface creation fails 2022-05-31 20:55:39 +00:00
SwapChain.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
Texture.cpp Update createView default logic to match spec 2022-05-24 14:57:43 +00:00
Texture.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 20:28:54 +00:00
TintUtils.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
TintUtils.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
ToBackend.h Adds pipeline cache and implementation for Vulkan backend. 2022-05-03 00:33:33 +00:00
Toggles.cpp [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
Toggles.h [chromium-style] Adding/moving constructors and destructors. 2022-05-09 22:22:18 +00:00
VertexFormat.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
VertexFormat.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
XlibXcbFunctions.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
XlibXcbFunctions.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
dawn_platform.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
webgpu_absl_format.cpp Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00
webgpu_absl_format.h Consistent formatting for Dawn/Tint. 2022-05-01 14:40:55 +00:00