dawn-cmake/src/dawn_native
Jiawei Shao 2ae84e9461 Disallow the copies within the same buffer
This patch adds the validation that forbids the buffer-to-buffer copies
when the source and destination buffer are the same one as in D3D12 the
Source and Destination resource cannot be the same when doing a
CopyBufferRegion.

BUG=dawn:17, dawn:420
TEST=dawn_unittests

Change-Id: Ie3e0c5361919ff369240a65d6e7fbae05b8332b0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21780
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
2020-05-19 00:11:11 +00:00
..
d3d12 D3D12: Implement UseDxc toggle to use DXC for HLSL compilation 2020-05-18 23:56:11 +00:00
metal Add a test for creating a 0-sized buffer. 2020-05-11 18:55:52 +00:00
null Refactor Serial tracking to be owned by Device frontend. 2020-05-07 21:52:54 +00:00
opengl Refactor Serial tracking to be owned by Device frontend. 2020-05-07 21:52:54 +00:00
vulkan Vulkan: Fix ResourceHeap leak for direct-allocated resources. 2020-05-12 17:44:23 +00:00
Adapter.cpp Add WGPUAdapterProperties and expose it in DawnNative 2020-01-10 13:28:18 +00:00
Adapter.h Add WGPUAdapterProperties and expose it in DawnNative 2020-01-10 13:28:18 +00:00
AttachmentState.cpp Only mark objects as cached right before inserting into the cache 2019-10-30 00:20:03 +00:00
AttachmentState.h Make RefCounted derived objects have private destructors 2020-04-06 18:20:02 +00:00
BUILD.gn D3D12: De-duplicate sampler heap allocations. 2020-05-18 23:25:31 +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 D3D12: De-duplicate sampler heap allocations. 2020-05-18 23:25:31 +00:00
BindGroup.h D3D12: De-duplicate sampler heap allocations. 2020-05-18 23:25:31 +00:00
BindGroupAndStorageBarrierTracker.h Add basic supports of storage textures on Vulkan 2020-04-30 02:43:08 +00:00
BindGroupLayout.cpp Fix missing headers with libstdc++ (GCC 10.1) 2020-05-17 20:59:20 +00:00
BindGroupLayout.h Merge BindGroupLayout and ShaderModule BindingInfos 2020-03-27 18:54:03 +00:00
BindGroupTracker.h Update SetBindGroup dynamic offsets to uint32_t 2019-11-01 15:51:01 +00:00
BindingInfo.h Deprecate BGLEntry::textureDimension in favor of viewDimension 2020-04-20 08:10:10 +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 Fix more compilation warnings. 2020-04-11 03:22:33 +00:00
BuddyMemoryAllocator.h Add some missing #includes. 2019-10-29 18:40:12 +00:00
Buffer.cpp Validate texture usage scope with storage textures in one render pass 2020-04-21 00:48:10 +00:00
Buffer.h Validate texture usage scope with storage textures in one render pass 2020-04-21 00:48:10 +00:00
CMakeLists.txt D3D12: De-duplicate sampler heap allocations. 2020-05-18 23:25:31 +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 Inline CommandAllocator/Iterator 2019-12-10 01:10:27 +00:00
CommandAllocator.h Inline CommandAllocator/Iterator 2019-12-10 01:10:27 +00:00
CommandBuffer.cpp Metal: Implement lazy texture clears 2020-01-16 00:12:10 +00:00
CommandBuffer.h Metal: Implement lazy texture clears 2020-01-16 00:12:10 +00:00
CommandBufferStateTracker.cpp Fix incorrect validation error in CommandBufferStateTracker 2020-05-04 06:05:47 +00:00
CommandBufferStateTracker.h Fix incorrect validation error in CommandBufferStateTracker 2020-05-04 06:05:47 +00:00
CommandEncoder.cpp Disallow the copies within the same buffer 2020-05-19 00:11:11 +00:00
CommandEncoder.h Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
CommandValidation.cpp Add validation code for texture subresource usage tracking 2020-05-04 17:10:49 +00:00
CommandValidation.h Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
Commands.cpp Normalize case X : {} break; to case X : { break;} 2020-04-02 16:45:17 +00:00
Commands.h Deprecate BufferCopyView.rowPitch/imageHeight -> bytesPerRow/rowsPerImage 2020-04-24 10:02:43 +00:00
ComputePassEncoder.cpp Allow one texture as write-only storage and sampled in one compute pass 2020-04-22 00:55:43 +00:00
ComputePassEncoder.h Remove the "Base" from pure-frontend dawn_native types 2019-11-13 17:00:37 +00:00
ComputePipeline.cpp Implement getBindGroupLayout 2019-11-22 17:02:22 +00:00
ComputePipeline.h Only mark objects as cached right before inserting into the cache 2019-10-30 00:20:03 +00:00
DawnNative.cpp Introduce Device::GetDefaultQueue and deprecate CreateQueue 2020-04-17 16:45:17 +00:00
Device.cpp Append the stack trace to the error message 2020-05-13 23:10:36 +00:00
Device.h Refactor Serial tracking to be owned by Device frontend. 2020-05-07 21:52:54 +00:00
DynamicUploader.cpp Limit heap growth when uploading with SetSubData. 2019-10-29 22:49:43 +00:00
DynamicUploader.h Limit heap growth when uploading with SetSubData. 2019-10-29 22:49:43 +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
Error.cpp Separate device lost from internal errors. 2020-04-01 12:07:43 +00:00
Error.h Separate device lost from internal errors. 2020-04-01 12:07:43 +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 Make error scope shutdown iterative instead of recursive. 2020-05-11 20:26:12 +00:00
ErrorScope.h Make error scope shutdown iterative instead of recursive. 2020-05-11 20:26:12 +00:00
ErrorScopeTracker.cpp Make error scope shutdown iterative instead of recursive. 2020-05-11 20:26:12 +00:00
ErrorScopeTracker.h Move and improve RefCounted 2020-04-20 17:36:22 +00:00
Extensions.cpp Implement querying WGPUDeviceProperties from dawn_native::Adapter 2019-11-13 01:53:25 +00:00
Extensions.h Implement querying WGPUDeviceProperties from dawn_native::Adapter 2019-11-13 01:53:25 +00:00
Fence.cpp Handle Device Lost for Fence and Queue::Signal 2020-02-06 00:56:35 +00:00
Fence.h Make RefCounted derived objects have private destructors 2020-04-06 18:20:02 +00:00
FenceSignalTracker.cpp Remove the "Base" from pure-frontend dawn_native types 2019-11-13 17:00:37 +00:00
FenceSignalTracker.h Move and improve RefCounted 2020-04-20 17:36:22 +00:00
Format.cpp Add depth texture sampling and tests for only depth32float 2020-04-22 19:54:00 +00:00
Format.h Merge BindGroupLayout and ShaderModule BindingInfos 2020-03-27 18:54:03 +00:00
Forward.h Move and improve RefCounted 2020-04-20 17:36:22 +00:00
Instance.cpp Load Swiftshader Vulkan separately from the system Vulkan 2020-05-08 19:31:00 +00:00
Instance.h Load Swiftshader Vulkan separately from the system Vulkan 2020-05-08 19:31:00 +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 Add validation code for texture subresource usage tracking 2020-05-04 17:10:49 +00:00
PassResourceUsageTracker.cpp Add validation code for texture subresource usage tracking 2020-05-04 17:10:49 +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 Deprecate BG[L]Desc::binding[s|Count] in favor of entr[ies|yCount] 2020-04-21 07:36:30 +00:00
Pipeline.h Rename GetBindGroupLayout's argument group->groupIndex 2020-04-01 18:22:36 +00:00
PipelineLayout.cpp Deprecate BG[L]Desc::binding[s|Count] in favor of entr[ies|yCount] 2020-04-21 07:36:30 +00:00
PipelineLayout.h Implement getBindGroupLayout 2019-11-22 17:02:22 +00:00
ProgrammablePassEncoder.cpp Add validation code for texture subresource usage tracking 2020-05-04 17:10:49 +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
Queue.cpp Make fence descriptor optional 2020-05-11 20:29:22 +00:00
Queue.h Add QueueBase::MakeError 2020-01-17 21:32:08 +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 Add a size argument to Set[Vertex|Index]Buffer 2020-04-24 09:42:03 +00:00
RenderEncoderBase.h Add a size argument to Set[Vertex|Index]Buffer 2020-04-24 09:42:03 +00:00
RenderPassEncoder.cpp Add validation code for texture subresource usage tracking 2020-05-04 17:10:49 +00:00
RenderPassEncoder.h Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
RenderPipeline.cpp Fix compilation with stdlibc++ (instead of libc++) 2020-02-18 02:44:05 +00:00
RenderPipeline.h Remove the "Base" from pure-frontend dawn_native types 2019-11-13 17:00:37 +00:00
ResourceHeap.h Resource Management 7: Device memory sub-allocation using buddy allocator. 2019-10-03 18:17:31 +00:00
ResourceHeapAllocator.h Add another missing #include. 2019-10-30 00:19:43 +00:00
ResourceMemoryAllocation.cpp Resource Management 7: Device memory sub-allocation using buddy allocator. 2019-10-03 18:17:31 +00:00
ResourceMemoryAllocation.h Residency 2: Create a d3d12::Heap During Direct Allocations 2020-03-09 15:53:19 +00:00
RingBufferAllocator.cpp Correctly support setSubData of 0 bytes. 2020-04-16 09:51:26 +00:00
RingBufferAllocator.h Replace size_t with uint64_t in ringbuffer. 2019-10-18 16:19:00 +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 Remove ShaderModule::code/codeSize 2020-05-13 17:23:35 +00:00
ShaderModule.h Make all backend::ShaderModule get SPIRV from the frontend 2020-04-21 07:57:30 +00:00
StagingBuffer.cpp Memory manager: buffer uploads (D3D) - Part 1 2019-01-29 00:10:07 +00:00
StagingBuffer.h Memory manager: buffer uploads (D3D) - Part 1 2019-01-29 00:10:07 +00:00
Surface.cpp Normalize case X : {} break; to case X : { break;} 2020-04-02 16:45:17 +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 Make RefCounted derived objects have private destructors 2020-04-06 18:20:02 +00:00
SwapChain.h Make RefCounted derived objects have private destructors 2020-04-06 18:20:02 +00:00
Texture.cpp Validate texture usage scope with storage textures in one render pass 2020-04-21 00:48:10 +00:00
Texture.h NativeSwapChainImplVk: Remove unnecessary transition on Configure 2020-05-06 07:12:48 +00:00
ToBackend.h Resource Management 5: D3D support for resource allocation. 2019-08-27 23:36:26 +00:00
Toggles.cpp D3D12: Add a toggle to use DXC for HLSL compilation 2020-05-13 16:57:55 +00:00
Toggles.h D3D12: Add a toggle to use DXC for HLSL compilation 2020-05-13 16:57:55 +00:00
dawn_platform.h NativeSwapChainImplVk: Remove unnecessary transition on Configure 2020-05-06 07:12:48 +00:00