dawn-cmake/src/dawn_native
Jiawei Shao 971a6233c2 Validate the declaration of storage texture format in shader
This patch adds the validation on the storage texture format declared in
shaders when we create a rendering or compute pipeline with read-only or
write-only storage textures.

This patch also fixes a typo in the TextureValidationTest.

BUG=dawn:267
TEST=dawn_unittests

Change-Id: Id302b4b7803d7e03b57c61de1290cc71ba940e2c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/16940
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2020-03-17 10:28:07 +00:00
..
d3d12 Fix D3D12 over-eager lazy zero initialization for textures 2020-03-16 17:48:26 +00:00
metal Slab-allocate Metal bind groups 2020-03-13 22:50:00 +00:00
null Slab-allocate OpenGL bind groups 2020-03-13 23:51:50 +00:00
opengl Fix OpenGL over-eager lazy zero initialization for textures 2020-03-17 01:51:56 +00:00
vulkan Fix Vulkan over-eager lazy zero initialization for textures 2020-03-17 01:14:36 +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 Only mark objects as cached right before inserting into the cache 2019-10-30 00:20:03 +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 Slab-allocate OpenGL bind groups 2020-03-13 23:51:50 +00:00
BindGroup.h Slab-allocate OpenGL bind groups 2020-03-13 23:51:50 +00:00
BindGroupAndStorageBarrierTracker.h Support Storage Textures as Valid Binding Types 2020-03-11 01:28:48 +00:00
BindGroupLayout.cpp Validate the declaration of storage texture format in shader 2020-03-17 10:28:07 +00:00
BindGroupLayout.h Validate the declaration of storage texture format in shader 2020-03-17 10:28:07 +00:00
BindGroupTracker.h Update SetBindGroup dynamic offsets to uint32_t 2019-11-01 15:51:01 +00:00
BuddyAllocator.cpp Rename INVALID_OFFSET to kInvalidOffset. 2019-09-27 15:11:52 +00:00
BuddyAllocator.h Rename INVALID_OFFSET to kInvalidOffset. 2019-09-27 15:11:52 +00:00
BuddyMemoryAllocator.cpp Preliminary changes to Vulkan memory suballocation 2019-10-24 21:28:16 +00:00
BuddyMemoryAllocator.h Add some missing #includes. 2019-10-29 18:40:12 +00:00
Buffer.cpp Fix compilation with stdlibc++ (instead of libc++) 2020-02-18 02:44:05 +00:00
Buffer.h Handle Device Lost for Buffer 2020-01-28 22:18:58 +00:00
CMakeLists.txt Slab-allocate OpenGL bind groups 2020-03-13 23:51:50 +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 Update naming for vertex state 2019-11-07 22:23:29 +00:00
CommandBufferStateTracker.h Update naming for vertex state 2019-11-07 22:23:29 +00:00
CommandEncoder.cpp Fix compilation with stdlibc++ (instead of libc++) 2020-02-18 02:44:05 +00:00
CommandEncoder.h Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
CommandValidation.cpp Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
CommandValidation.h Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
Commands.cpp Allow SetBindGroup command to be skipped with dynamic offsets. 2019-11-18 23:09:38 +00:00
Commands.h Make dawn_native use the webgpu.h header 2019-10-23 11:57:41 +00:00
ComputePassEncoder.cpp Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +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 Query if Texture subresource has been initialized 2020-03-05 17:07:16 +00:00
Device.cpp Turn off spvc being used by default 2020-02-07 16:00:27 +00:00
Device.h Handle Device Lost for Buffer 2020-01-28 22:18:58 +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 Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
EncodingContext.h Improve Memory Management of Result class 2020-01-10 17:58:28 +00:00
Error.cpp Handle DeviceLost error 2020-01-15 19:02:13 +00:00
Error.h Handle DeviceLost error 2020-01-15 19:02:13 +00:00
ErrorData.cpp Improve Memory Management of Result class 2020-01-10 17:58:28 +00:00
ErrorData.h Fix compilation with stdlibc++ (instead of libc++) 2020-02-18 02:44:05 +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 dawn_native use the webgpu.h header 2019-10-23 11:57:41 +00:00
ErrorScope.h Make dawn_native use the webgpu.h header 2019-10-23 11:57:41 +00:00
ErrorScopeTracker.cpp Fixed compilation issues when using libstdc++ 2019-09-25 19:32:01 +00:00
ErrorScopeTracker.h Support ErrorScopes for asynchronous GPU execution 2019-09-17 18:24:07 +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 Handle Device Lost for Fence and Queue::Signal 2020-02-06 00:56:35 +00:00
FenceSignalTracker.cpp Remove the "Base" from pure-frontend dawn_native types 2019-11-13 17:00:37 +00:00
FenceSignalTracker.h Remove the "Base" from pure-frontend dawn_native types 2019-11-13 17:00:37 +00:00
Format.cpp Add checks to TextureUsage::Storage 2020-01-15 00:09:42 +00:00
Format.h Add checks to TextureUsage::Storage 2020-01-15 00:09:42 +00:00
Forward.h Implement the webgpu.h swapchains in the frontend and Null backend. 2020-01-25 10:05:40 +00:00
Instance.cpp Introduce wgpu::Surface and implement it for HWND, X11 and Metal 2020-01-15 13:14:12 +00:00
Instance.h Introduce wgpu::Surface and implement it for HWND, X11 and Metal 2020-01-15 13:14:12 +00:00
ObjectBase.cpp Inline a 1 bit payload in RefCounted 2019-11-19 14:35:10 +00:00
ObjectBase.h Inline a 1 bit payload in RefCounted 2019-11-19 14:35:10 +00:00
PassResourceUsage.h Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
PassResourceUsageTracker.cpp Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
PassResourceUsageTracker.h Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +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 Device Loss handle GetBindGroupLayout and test 2020-01-21 18:48:45 +00:00
Pipeline.h Implement getBindGroupLayout 2019-11-22 17:02:22 +00:00
PipelineLayout.cpp Validate the declaration of storage texture format in shader 2020-03-17 10:28:07 +00:00
PipelineLayout.h Implement getBindGroupLayout 2019-11-22 17:02:22 +00:00
ProgrammablePassEncoder.cpp Support Storage Textures as Valid Binding Types 2020-03-11 01:28:48 +00:00
ProgrammablePassEncoder.h Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
Queue.cpp Handle Device Lost for Fence and Queue::Signal 2020-02-06 00:56:35 +00:00
Queue.h Add QueueBase::MakeError 2020-01-17 21:32:08 +00:00
RefCounted.cpp Fix compilation with stdlibc++ (instead of libc++) 2020-02-18 02:44:05 +00:00
RefCounted.h Inline a 1 bit payload in RefCounted 2019-11-19 14:35:10 +00:00
RenderBundle.cpp Remove the "Base" from pure-frontend dawn_native types 2019-11-13 17:00:37 +00:00
RenderBundle.h Remove the "Base" from pure-frontend dawn_native types 2019-11-13 17:00:37 +00:00
RenderBundleEncoder.cpp Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
RenderBundleEncoder.h Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +00:00
RenderEncoderBase.cpp Add Toggles to disable base vertex and base instance rendering 2020-02-26 08:24:20 +00:00
RenderEncoderBase.h Add Toggles to disable base vertex and base instance rendering 2020-02-26 08:24:20 +00:00
RenderPassEncoder.cpp Skip validation during command recording when skip_validation is on 2019-11-21 22:09:41 +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 Replace size_t with uint64_t in ringbuffer. 2019-10-18 16:19:00 +00:00
RingBufferAllocator.h Replace size_t with uint64_t in ringbuffer. 2019-10-18 16:19:00 +00:00
Sampler.cpp RenderPipeline: validate depth bias params are not NaN 2019-12-12 11:41:02 +00:00
Sampler.h Only mark objects as cached right before inserting into the cache 2019-10-30 00:20:03 +00:00
ShaderModule.cpp Validate the declaration of storage texture format in shader 2020-03-17 10:28:07 +00:00
ShaderModule.h Validate the declaration of storage texture format in shader 2020-03-17 10:28:07 +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 Implement the webgpu.h swapchains in the frontend and Null backend. 2020-01-25 10:05:40 +00:00
Surface.h Implement the webgpu.h swapchains in the frontend and Null backend. 2020-01-25 10:05:40 +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 Handle Device Lost for SwapChain 2020-02-11 21:30:25 +00:00
SwapChain.h Implement the webgpu.h swapchains in the frontend and Null backend. 2020-01-25 10:05:40 +00:00
Texture.cpp Handle Device Lost for SwapChain 2020-02-11 21:30:25 +00:00
Texture.h Make dawn_native use the webgpu.h header 2019-10-23 11:57:41 +00:00
ToBackend.h Resource Management 5: D3D support for resource allocation. 2019-08-27 23:36:26 +00:00
Toggles.cpp Add Toggles to disable base vertex and base instance rendering 2020-02-26 08:24:20 +00:00
Toggles.h Add Toggles to disable base vertex and base instance rendering 2020-02-26 08:24:20 +00:00
dawn_platform.h Make dawn_native use the webgpu.h header 2019-10-23 11:57:41 +00:00