From ed8a8c089396c3f5c07c2af36502a8976970f3f3 Mon Sep 17 00:00:00 2001 From: Austin Eng Date: Fri, 4 Jun 2021 22:23:56 +0000 Subject: [PATCH] Triage Dawn TODOs Change-Id: Ia010e534df1ac8a82008b38c44cfd9dc3f0b1aa6 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/53340 Commit-Queue: Austin Eng Reviewed-by: Corentin Wallez --- src/common/BitSetIterator.h | 2 +- src/common/GPUInfo.cpp | 2 +- src/common/SlabAllocator.cpp | 4 +- src/common/SlabAllocator.h | 2 +- src/dawn_native/Adapter.cpp | 2 - src/dawn_native/AsyncTask.h | 2 +- src/dawn_native/BuddyAllocator.cpp | 2 +- src/dawn_native/BuddyAllocator.h | 2 +- src/dawn_native/Buffer.cpp | 6 +- src/dawn_native/CommandAllocator.cpp | 2 +- src/dawn_native/CommandAllocator.h | 6 +- src/dawn_native/CommandEncoder.cpp | 2 +- src/dawn_native/CommandValidation.cpp | 2 - src/dawn_native/Device.cpp | 6 +- src/dawn_native/Format.cpp | 7 +- src/dawn_native/RenderPipeline.cpp | 3 - src/dawn_native/ShaderModule.cpp | 2 - src/dawn_native/Subresource.cpp | 2 +- src/dawn_native/SubresourceStorage.h | 2 +- src/dawn_native/SwapChain.cpp | 2 +- src/dawn_native/Texture.cpp | 17 ++- src/dawn_native/Texture.h | 2 - src/dawn_native/d3d12/BindGroupD3D12.cpp | 2 - src/dawn_native/d3d12/BufferD3D12.cpp | 2 - src/dawn_native/d3d12/CommandBufferD3D12.cpp | 2 +- .../d3d12/NativeSwapChainImplD3D12.cpp | 4 +- src/dawn_native/d3d12/SwapChainD3D12.cpp | 6 +- src/dawn_native/dawn_platform.h | 2 +- src/dawn_native/metal/BackendMTL.mm | 2 +- src/tests/DawnTest.cpp | 4 - src/tests/DawnTest.h | 1 - src/tests/end2end/BufferZeroInitTests.cpp | 4 +- .../end2end/CompressedTextureFormatTests.cpp | 39 +++--- src/tests/end2end/CopyTests.cpp | 8 +- src/tests/end2end/DepthBiasTests.cpp | 6 +- src/tests/end2end/DepthStencilCopyTests.cpp | 24 ++-- .../end2end/DepthStencilSamplingTests.cpp | 6 +- src/tests/end2end/IOSurfaceWrappingTests.cpp | 6 +- .../end2end/MultisampledRenderingTests.cpp | 10 +- src/tests/end2end/OpArrayLengthTests.cpp | 13 +- src/tests/end2end/QueryTests.cpp | 4 +- src/tests/end2end/QueueTests.cpp | 3 +- src/tests/end2end/ShaderFloat16Tests.cpp | 12 +- src/tests/end2end/StorageTextureTests.cpp | 2 - src/tests/end2end/TextureFormatTests.cpp | 3 - src/tests/end2end/TextureZeroInitTests.cpp | 3 +- src/tests/end2end/VertexFormatTests.cpp | 123 +----------------- 47 files changed, 111 insertions(+), 259 deletions(-) diff --git a/src/common/BitSetIterator.h b/src/common/BitSetIterator.h index 14ba4856ff..5a1c10ff69 100644 --- a/src/common/BitSetIterator.h +++ b/src/common/BitSetIterator.h @@ -23,7 +23,7 @@ #include // This is ANGLE's BitSetIterator class with a customizable return type -// TODO(cwallez@chromium.org): it could be optimized, in particular when N <= 64 +// TODO(crbug.com/dawn/306): it could be optimized, in particular when N <= 64 template T roundUp(const T value, const T alignment) { diff --git a/src/common/GPUInfo.cpp b/src/common/GPUInfo.cpp index 5aa44ee82d..1c2e80e186 100644 --- a/src/common/GPUInfo.cpp +++ b/src/common/GPUInfo.cpp @@ -95,7 +95,7 @@ namespace gpu_info { } } - // TODO(jiawei.shao@intel.com): support other GPU vendors + // TODO(crbug.com/dawn/823): support other GPU vendors UNREACHABLE(); return 0; } diff --git a/src/common/SlabAllocator.cpp b/src/common/SlabAllocator.cpp index e58a235a5d..0ffb073194 100644 --- a/src/common/SlabAllocator.cpp +++ b/src/common/SlabAllocator.cpp @@ -209,7 +209,7 @@ void SlabAllocatorImpl::Deallocate(void* ptr) { mRecycledSlabs.Prepend(slab); } - // TODO(enga): Occasionally prune slabs if |blocksInUse == 0|. + // TODO(crbug.com/dawn/825): Occasionally prune slabs if |blocksInUse == 0|. // Doing so eagerly hurts performance. } @@ -228,7 +228,7 @@ void SlabAllocatorImpl::GetNewSlab() { return; } - // TODO(enga): Use aligned_alloc with C++17. + // TODO(crbug.com/dawn/824): Use aligned_alloc with C++17. char* allocation = new char[mTotalAllocationSize]; char* alignedPtr = AlignPtr(allocation, mAllocationAlignment); diff --git a/src/common/SlabAllocator.h b/src/common/SlabAllocator.h index 8a78dde626..b02ed52026 100644 --- a/src/common/SlabAllocator.h +++ b/src/common/SlabAllocator.h @@ -57,7 +57,7 @@ class SlabAllocatorImpl { public: // Allocations host their current index and the index of the next free block. // Because this is an index, and not a byte offset, it can be much smaller than a size_t. - // TODO(enga): Is uint8_t sufficient? + // TODO(crbug.com/dawn/825): Is uint8_t sufficient? using Index = uint16_t; SlabAllocatorImpl(SlabAllocatorImpl&& rhs); diff --git a/src/dawn_native/Adapter.cpp b/src/dawn_native/Adapter.cpp index 3e70831c40..ff95534f2a 100644 --- a/src/dawn_native/Adapter.cpp +++ b/src/dawn_native/Adapter.cpp @@ -85,8 +85,6 @@ namespace dawn_native { } } - // TODO(cwallez@chromium.org): This will eventually have validation that the device - // descriptor is valid and is a subset what's allowed on this adapter. DAWN_TRY_ASSIGN(*result, CreateDeviceImpl(descriptor)); return {}; } diff --git a/src/dawn_native/AsyncTask.h b/src/dawn_native/AsyncTask.h index 5a702a3c62..1ae9344e2b 100644 --- a/src/dawn_native/AsyncTask.h +++ b/src/dawn_native/AsyncTask.h @@ -29,7 +29,7 @@ namespace dawn_platform { namespace dawn_native { - // TODO(jiawei.shao@intel.com): we'll add additional things to AsyncTask in the future, like + // TODO(crbug.com/dawn/826): we'll add additional things to AsyncTask in the future, like // Cancel() and RunNow(). Cancelling helps avoid running the task's body when we are just // shutting down the device. RunNow() could be used for more advanced scenarios, for example // always doing ShaderModule initial compilation asynchronously, but being able to steal the diff --git a/src/dawn_native/BuddyAllocator.cpp b/src/dawn_native/BuddyAllocator.cpp index 60a8b9b446..b19cc19e55 100644 --- a/src/dawn_native/BuddyAllocator.cpp +++ b/src/dawn_native/BuddyAllocator.cpp @@ -202,7 +202,7 @@ namespace dawn_native { void BuddyAllocator::Deallocate(uint64_t offset) { BuddyBlock* curr = mRoot; - // TODO(bryan.bernhart@intel.com): Optimize de-allocation. + // TODO(crbug.com/dawn/827): Optimize de-allocation. // Passing allocationSize directly will avoid the following level-by-level search; // however, it requires the size information to be stored outside the allocator. diff --git a/src/dawn_native/BuddyAllocator.h b/src/dawn_native/BuddyAllocator.h index 8404158871..af959fc4a7 100644 --- a/src/dawn_native/BuddyAllocator.h +++ b/src/dawn_native/BuddyAllocator.h @@ -100,7 +100,7 @@ namespace dawn_native { // Keep track the head and tail (for faster insertion/removal). struct BlockList { BuddyBlock* head = nullptr; // First free block in level. - // TODO(bryan.bernhart@intel.com): Track the tail. + // TODO(crbug.com/dawn/827): Track the tail. }; BuddyBlock* mRoot = nullptr; // Used to deallocate non-free blocks. diff --git a/src/dawn_native/Buffer.cpp b/src/dawn_native/Buffer.cpp index 3ddb72bd71..cdd9f05b59 100644 --- a/src/dawn_native/Buffer.cpp +++ b/src/dawn_native/Buffer.cpp @@ -138,7 +138,7 @@ namespace dawn_native { mUsage |= kReadOnlyStorageBuffer; } - // TODO(hao.x.li@intel.com): This is just a workaround to make QueryResolve buffer pass the + // TODO(crbug.com/dawn/434): This is just a workaround to make QueryResolve buffer pass the // binding group validation when used as an internal resource. Instead the buffer made with // QueryResolve usage would implicitly get StorageInternal usage which is only compatible // with StorageBufferInternal binding type in BGL, not StorageBuffer binding type. @@ -213,8 +213,8 @@ namespace dawn_native { } else { // If any of these fail, the buffer will be deleted and replaced with an // error buffer. - // TODO(enga): Suballocate and reuse memory from a larger staging buffer so we don't - // create many small buffers. + // TODO(crbug.com/dawn/828): Suballocate and reuse memory from a larger staging buffer + // so we don't create many small buffers. DAWN_TRY_ASSIGN(mStagingBuffer, GetDevice()->CreateStagingBuffer(GetSize())); } diff --git a/src/dawn_native/CommandAllocator.cpp b/src/dawn_native/CommandAllocator.cpp index 7c94520e07..5ae5cfc385 100644 --- a/src/dawn_native/CommandAllocator.cpp +++ b/src/dawn_native/CommandAllocator.cpp @@ -104,7 +104,7 @@ namespace dawn_native { return mBlocks[0].block == reinterpret_cast(&mEndOfBlock); } - // Potential TODO(cwallez@chromium.org): + // Potential TODO(crbug.com/dawn/835): // - Host the size and pointer to next block in the block itself to avoid having an allocation // in the vector // - Assume T's alignof is, say 64bits, static assert it, and make commandAlignment a constant diff --git a/src/dawn_native/CommandAllocator.h b/src/dawn_native/CommandAllocator.h index 0383dc1639..2713545cc9 100644 --- a/src/dawn_native/CommandAllocator.h +++ b/src/dawn_native/CommandAllocator.h @@ -17,6 +17,7 @@ #include "common/Assert.h" #include "common/Math.h" +#include "common/NonCopyable.h" #include #include @@ -66,8 +67,7 @@ namespace dawn_native { class CommandAllocator; - // TODO(cwallez@chromium.org): prevent copy for both iterator and allocator - class CommandIterator { + class CommandIterator : public NonCopyable { public: CommandIterator(); ~CommandIterator(); @@ -144,7 +144,7 @@ namespace dawn_native { uint32_t mEndOfBlock = detail::kEndOfBlock; }; - class CommandAllocator { + class CommandAllocator : public NonCopyable { public: CommandAllocator(); ~CommandAllocator(); diff --git a/src/dawn_native/CommandEncoder.cpp b/src/dawn_native/CommandEncoder.cpp index 05d06565f1..30472ca2f2 100644 --- a/src/dawn_native/CommandEncoder.cpp +++ b/src/dawn_native/CommandEncoder.cpp @@ -399,7 +399,7 @@ namespace dawn_native { "set"); } - // TODO(hao.x.li@intel.com): Validate that the queries between [firstQuery, firstQuery + + // TODO(crbug.com/dawn/434): Validate that the queries between [firstQuery, firstQuery + // queryCount - 1] must be available(written by query operations). // The destinationOffset must be a multiple of 8 bytes on D3D12 and Vulkan diff --git a/src/dawn_native/CommandValidation.cpp b/src/dawn_native/CommandValidation.cpp index ba70ce713a..65c8743b7c 100644 --- a/src/dawn_native/CommandValidation.cpp +++ b/src/dawn_native/CommandValidation.cpp @@ -303,8 +303,6 @@ namespace dawn_native { MaybeError ValidateTextureCopyRange(DeviceBase const* device, const ImageCopyTexture& textureCopy, const Extent3D& copySize) { - // TODO(jiawei.shao@intel.com): add validations on the texture-to-texture copies within the - // same texture. const TextureBase* texture = textureCopy.texture; ASSERT(texture->GetDimension() != wgpu::TextureDimension::e1D); diff --git a/src/dawn_native/Device.cpp b/src/dawn_native/Device.cpp index 1efe91d7eb..b70e844bf1 100644 --- a/src/dawn_native/Device.cpp +++ b/src/dawn_native/Device.cpp @@ -264,7 +264,7 @@ namespace dawn_native { // Move away from the Alive state so that the application cannot use this device // anymore. - // TODO(cwallez@chromium.org): Do we need atomics for this to become visible to other + // TODO(crbug.com/dawn/831): Do we need atomics for this to become visible to other // threads in a multithreaded scenario? mState = State::BeingDisconnected; @@ -896,7 +896,7 @@ namespace dawn_native { AssumeCommandsComplete(); } - // TODO(cwallez@chromium.org): decouple TickImpl from updating the serial so that we can + // TODO(crbug.com/dawn/833): decouple TickImpl from updating the serial so that we can // tick the dynamic uploader before the backend resource allocators. This would allow // reclaiming resources one tick earlier. mDynamicUploader->Deallocate(mCompletedSerial); @@ -1126,7 +1126,7 @@ namespace dawn_native { return layoutRef; } - // TODO(jiawei.shao@intel.com): override this function with the async version on the backends + // This function is overwritten with the async version on the backends // that supports creating compute pipeline asynchronously void DeviceBase::CreateComputePipelineAsyncImpl(const ComputePipelineDescriptor* descriptor, size_t blueprintHash, diff --git a/src/dawn_native/Format.cpp b/src/dawn_native/Format.cpp index b5d8c84521..0bebc18e58 100644 --- a/src/dawn_native/Format.cpp +++ b/src/dawn_native/Format.cpp @@ -297,14 +297,15 @@ namespace dawn_native { // Depth-stencil formats AddDepthFormat(wgpu::TextureFormat::Depth32Float, 4); + // TODO(crbug.com/dawn/843): This is 4 because we read this to perform zero initialization, + // and textures are always use depth32float. We should improve this to be more robust. Perhaps, + // using 0 here to mean "unsized" and adding a backend-specific query for the block size. AddDepthFormat(wgpu::TextureFormat::Depth24Plus, 4); // TODO(dawn:666): Implement the stencil8 format AddStencilFormat(wgpu::TextureFormat::Stencil8); - // TODO(cwallez@chromium.org): It isn't clear if this format should be copyable - // because its size isn't well defined, is it 4, 5 or 8? AddMultiAspectFormat(wgpu::TextureFormat::Depth24PlusStencil8, Aspect::Depth | Aspect::Stencil, wgpu::TextureFormat::Depth24Plus, wgpu::TextureFormat::Stencil8, true, true); - // TODO(dawn:690): Implement Depth16Unorm, Depth24UnormStencil8, Depth32FloatStencil8. + // TODO(dawn:690): Implement Depth16Unorm, Depth24UnormStencil8, Depth32FloatStencil8. // BC compressed formats bool isBCFormatSupported = device->IsExtensionEnabled(Extension::TextureCompressionBC); diff --git a/src/dawn_native/RenderPipeline.cpp b/src/dawn_native/RenderPipeline.cpp index 5231119b72..1a8f37cdf1 100644 --- a/src/dawn_native/RenderPipeline.cpp +++ b/src/dawn_native/RenderPipeline.cpp @@ -458,9 +458,6 @@ namespace dawn_native { NormalizeBlendFactor(mTargetBlend[i].color.dstFactor); } } - - // TODO(cwallez@chromium.org): Check against the shader module that the correct color - // attachment are set? } RenderPipelineBase::RenderPipelineBase(DeviceBase* device, ObjectBase::ErrorTag tag) diff --git a/src/dawn_native/ShaderModule.cpp b/src/dawn_native/ShaderModule.cpp index b2a2a1f985..96fe955b17 100644 --- a/src/dawn_native/ShaderModule.cpp +++ b/src/dawn_native/ShaderModule.cpp @@ -635,8 +635,6 @@ namespace dawn_native { std::unique_ptr metadata = std::make_unique(); metadata->stage = stage; - // TODO(cwallez@chromium.org): make errors here creation errors - // currently errors here do not prevent the shadermodule from being used const auto& resources = compiler.get_shader_resources(); if (resources.push_constant_buffers.size() > 0) { diff --git a/src/dawn_native/Subresource.cpp b/src/dawn_native/Subresource.cpp index 1114bae670..99b42cb52a 100644 --- a/src/dawn_native/Subresource.cpp +++ b/src/dawn_native/Subresource.cpp @@ -78,7 +78,7 @@ namespace dawn_native { } uint8_t GetAspectCount(Aspect aspects) { - // TODO(cwallez@chromium.org): This should use popcount once Dawn has such a function. + // TODO(crbug.com/dawn/829): This should use popcount once Dawn has such a function. // Note that we can't do a switch because compilers complain that Depth | Stencil is not // a valid enum value. if (aspects == Aspect::Color || aspects == Aspect::Depth || diff --git a/src/dawn_native/SubresourceStorage.h b/src/dawn_native/SubresourceStorage.h index 2a7e91a6ab..01bd6860d8 100644 --- a/src/dawn_native/SubresourceStorage.h +++ b/src/dawn_native/SubresourceStorage.h @@ -101,7 +101,7 @@ namespace dawn_native { third_party/dawn/src/dawn_native */ // - // TODO(cwallez@chromium.org): Make the recompression optional, the calling code should know + // TODO(crbug.com/dawn/836): Make the recompression optional, the calling code should know // if recompression can happen or not in Update() and Merge() template class SubresourceStorage { diff --git a/src/dawn_native/SwapChain.cpp b/src/dawn_native/SwapChain.cpp index aa5f8942a3..b81d906640 100644 --- a/src/dawn_native/SwapChain.cpp +++ b/src/dawn_native/SwapChain.cpp @@ -75,7 +75,7 @@ namespace dawn_native { DAWN_TRY(ValidatePresentMode(descriptor->presentMode)); - // TODO(cwallez@chromium.org): Lift this restriction once + // TODO(crbug.com/dawn/160): Lift this restriction once // wgpu::Instance::GetPreferredSurfaceFormat is implemented. if (descriptor->format != wgpu::TextureFormat::BGRA8Unorm) { return DAWN_VALIDATION_ERROR("Format must (currently) be BGRA8Unorm"); diff --git a/src/dawn_native/Texture.cpp b/src/dawn_native/Texture.cpp index 0903e62957..0bec0015b8 100644 --- a/src/dawn_native/Texture.cpp +++ b/src/dawn_native/Texture.cpp @@ -26,7 +26,8 @@ namespace dawn_native { namespace { - // TODO(jiawei.shao@intel.com): implement texture view format compatibility rule + // WebGPU currently does not have texture format reinterpretation. If it does, the + // code to check for it might go here. MaybeError ValidateTextureViewFormatCompatibility(const TextureBase* texture, const TextureViewDescriptor* descriptor) { if (texture->GetFormat().format != descriptor->format) { @@ -43,7 +44,7 @@ namespace dawn_native { return {}; } - // TODO(jiawei.shao@intel.com): support validation on all texture view dimensions + // TODO(crbug.com/dawn/814): Implement for 1D texture. bool IsTextureViewDimensionCompatibleWithTextureDimension( wgpu::TextureViewDimension textureViewDimension, wgpu::TextureDimension textureDimension) { @@ -63,7 +64,7 @@ namespace dawn_native { } } - // TODO(jiawei.shao@intel.com): support validation on all texture view dimensions + // TODO(crbug.com/dawn/814): Implement for 1D texture. bool IsArrayLayerValidForTextureViewDimension( wgpu::TextureViewDimension textureViewDimension, uint32_t textureViewArrayLayer) { @@ -102,7 +103,6 @@ namespace dawn_native { } } - // TODO(jiawei.shao@intel.com): support more sample count. MaybeError ValidateSampleCount(const TextureDescriptor* descriptor, const Format* format) { if (!IsValidSampleCount(descriptor->sampleCount)) { return DAWN_VALIDATION_ERROR("The sample count of the texture is not supported."); @@ -264,7 +264,6 @@ namespace dawn_native { DAWN_TRY(ValidateTextureDimension(descriptor->dimension)); DAWN_TRY(ValidateSampleCount(descriptor, format)); - // TODO(jiawei.shao@intel.com): check stuff based on the dimension if (descriptor->size.width == 0 || descriptor->size.height == 0 || descriptor->size.depthOrArrayLayers == 0 || descriptor->mipLevelCount == 0) { return DAWN_VALIDATION_ERROR("Cannot create an empty texture"); @@ -326,7 +325,6 @@ namespace dawn_native { return DAWN_VALIDATION_ERROR("Texture does not have selected aspect for texture view."); } - // TODO(jiawei.shao@intel.com): check stuff based on resource limits if (descriptor->arrayLayerCount == 0 || descriptor->mipLevelCount == 0) { return DAWN_VALIDATION_ERROR("Cannot create an empty texture view"); } @@ -392,6 +390,8 @@ namespace dawn_native { return desc; } + // WebGPU only supports sample counts of 1 and 4. We could expand to more based on + // platform support, but it would probably be an extension. bool IsValidSampleCount(uint32_t sampleCount) { switch (sampleCount) { case 1: @@ -443,7 +443,6 @@ namespace dawn_native { return mDimension; } - // TODO(jiawei.shao@intel.com): return more information about texture format const Format& TextureBase::GetFormat() const { ASSERT(!IsError()); return mFormat; @@ -468,7 +467,7 @@ namespace dawn_native { } uint32_t TextureBase::GetArrayLayers() const { ASSERT(!IsError()); - // TODO(cwallez@chromium.org): Update for 1D textures when they are supported. + // TODO(crbug.com/dawn/814): Update for 1D textures when they are supported. ASSERT(mDimension != wgpu::TextureDimension::e1D); if (mDimension == wgpu::TextureDimension::e3D) { return 1; @@ -582,7 +581,7 @@ namespace dawn_native { // Compressed Textures will have paddings if their width or height is not a multiple of // 4 at non-zero mipmap levels. if (mFormat.isCompressed) { - // TODO(jiawei.shao@intel.com): check if there are any overflows. + // TODO(crbug.com/dawn/830): check if there are any overflows. const TexelBlockInfo& blockInfo = mFormat.GetAspectInfo(wgpu::TextureAspect::All).block; extent.width = (extent.width + blockInfo.width - 1) / blockInfo.width * blockInfo.width; extent.height = diff --git a/src/dawn_native/Texture.h b/src/dawn_native/Texture.h index a803ddadb1..43076efb47 100644 --- a/src/dawn_native/Texture.h +++ b/src/dawn_native/Texture.h @@ -99,7 +99,6 @@ namespace dawn_native { MaybeError ValidateDestroy() const; wgpu::TextureDimension mDimension; - // TODO(cwallez@chromium.org): This should be deduplicated in the Device const Format& mFormat; Extent3D mSize; uint32_t mMipLevelCount; @@ -134,7 +133,6 @@ namespace dawn_native { Ref mTexture; - // TODO(cwallez@chromium.org): This should be deduplicated in the Device const Format& mFormat; wgpu::TextureViewDimension mDimension; SubresourceRange mRange; diff --git a/src/dawn_native/d3d12/BindGroupD3D12.cpp b/src/dawn_native/d3d12/BindGroupD3D12.cpp index a1b095b5eb..2857d2df56 100644 --- a/src/dawn_native/d3d12/BindGroupD3D12.cpp +++ b/src/dawn_native/d3d12/BindGroupD3D12.cpp @@ -69,8 +69,6 @@ namespace dawn_native { namespace d3d12 { switch (bindingInfo.buffer.type) { case wgpu::BufferBindingType::Uniform: { D3D12_CONSTANT_BUFFER_VIEW_DESC desc; - // TODO(enga@google.com): investigate if this needs to be a constraint - // at the API level desc.SizeInBytes = Align(binding.size, 256); desc.BufferLocation = ToBackend(binding.buffer)->GetVA() + binding.offset; diff --git a/src/dawn_native/d3d12/BufferD3D12.cpp b/src/dawn_native/d3d12/BufferD3D12.cpp index a73eb9b57c..b5e17f7780 100644 --- a/src/dawn_native/d3d12/BufferD3D12.cpp +++ b/src/dawn_native/d3d12/BufferD3D12.cpp @@ -109,8 +109,6 @@ namespace dawn_native { namespace d3d12 { D3D12_RESOURCE_DESC resourceDescriptor; resourceDescriptor.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER; resourceDescriptor.Alignment = 0; - // TODO(cwallez@chromium.org): Have a global "zero" buffer that can do everything instead - // of creating a new 4-byte buffer? // D3D buffers are always resource size aligned to 64KB. However, D3D12's validation forbids // binding a CBV to an unaligned size. To prevent, one can always safely align the buffer // desc size to the CBV data alignment as other buffer usages ignore it (no size check). diff --git a/src/dawn_native/d3d12/CommandBufferD3D12.cpp b/src/dawn_native/d3d12/CommandBufferD3D12.cpp index b0b8e463ae..107e70e898 100644 --- a/src/dawn_native/d3d12/CommandBufferD3D12.cpp +++ b/src/dawn_native/d3d12/CommandBufferD3D12.cpp @@ -744,7 +744,7 @@ namespace dawn_native { namespace d3d12 { commandList->CopyResource(destination->GetD3D12Resource(), source->GetD3D12Resource()); } else { - // TODO(jiawei.shao@intel.com): support copying with 1D and 3D textures. + // TODO(crbug.com/dawn/814): support copying with 1D. ASSERT(source->GetDimension() == wgpu::TextureDimension::e2D && destination->GetDimension() == wgpu::TextureDimension::e2D); const dawn_native::Extent3D copyExtentOneSlice = { diff --git a/src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp b/src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp index c29ae72cbd..db11862d5b 100644 --- a/src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp +++ b/src/dawn_native/d3d12/NativeSwapChainImplD3D12.cpp @@ -95,7 +95,7 @@ namespace dawn_native { namespace d3d12 { mCurrentBuffer = mSwapChain->GetCurrentBackBufferIndex(); nextTexture->texture.ptr = mBuffers[mCurrentBuffer].Get(); - // TODO(cwallez@chromium.org) Currently we force the CPU to wait for the GPU to be finished + // TODO(crbug.com/dawn/269) Currently we force the CPU to wait for the GPU to be finished // with the buffer. Ideally the synchronization should be all done on the GPU. ASSERT(mDevice->WaitForSerial(mBufferSerials[mCurrentBuffer]).IsSuccess()); @@ -106,7 +106,7 @@ namespace dawn_native { namespace d3d12 { // This assumes the texture has already been transition to the PRESENT state. ASSERT_SUCCESS(mSwapChain->Present(mInterval, 0)); - // TODO(cwallez@chromium.org): Make the serial ticking implicit. + // TODO(crbug.com/dawn/833): Make the serial ticking implicit. ASSERT(mDevice->NextSerial().IsSuccess()); mBufferSerials[mCurrentBuffer] = mDevice->GetPendingCommandSerial(); diff --git a/src/dawn_native/d3d12/SwapChainD3D12.cpp b/src/dawn_native/d3d12/SwapChainD3D12.cpp index 9002cc4c2d..98388da0c7 100644 --- a/src/dawn_native/d3d12/SwapChainD3D12.cpp +++ b/src/dawn_native/d3d12/SwapChainD3D12.cpp @@ -161,17 +161,17 @@ namespace dawn_native { namespace d3d12 { return InitializeSwapChainFromScratch(); } - // TODO(cwallez@chromium.org): figure out what should happen when surfaces are used by + // TODO(crbug.com/dawn/269): figure out what should happen when surfaces are used by // multiple backends one after the other. It probably needs to block until the backend // and GPU are completely finished with the previous swapchain. if (previousSwapChain->GetBackendType() != wgpu::BackendType::D3D12) { return DAWN_VALIDATION_ERROR("d3d12::SwapChain cannot switch between APIs"); } - // TODO(cwallez@chromium.org): use ToBackend once OldSwapChainBase is removed. + // TODO(crbug.com/dawn/269): use ToBackend once OldSwapChainBase is removed. SwapChain* previousD3D12SwapChain = static_cast(previousSwapChain); - // TODO(cwallez@chromium.org): Figure out switching an HWND between devices, it might + // TODO(crbug.com/dawn/269): Figure out switching an HWND between devices, it might // require just losing the reference to the swapchain, but might also need to wait for // all previous operations to complete. if (GetDevice() != previousSwapChain->GetDevice()) { diff --git a/src/dawn_native/dawn_platform.h b/src/dawn_native/dawn_platform.h index 4591c0f95d..4a0ba09b5e 100644 --- a/src/dawn_native/dawn_platform.h +++ b/src/dawn_native/dawn_platform.h @@ -32,7 +32,7 @@ namespace dawn_native { // Add an extra texture usage for textures that will be presented, for use in backends // that needs to transition to present usage. - // TODO(cwallez@chromium.org): It currently aliases wgpu::TextureUsage::Present, assign it + // This currently aliases wgpu::TextureUsage::Present, we would assign it // some bit when wgpu::TextureUsage::Present is removed. static constexpr wgpu::TextureUsage kPresentTextureUsage = wgpu::TextureUsage::Present; } // namespace dawn_native diff --git a/src/dawn_native/metal/BackendMTL.mm b/src/dawn_native/metal/BackendMTL.mm index dcf01f95f2..6155fe33ad 100644 --- a/src/dawn_native/metal/BackendMTL.mm +++ b/src/dawn_native/metal/BackendMTL.mm @@ -222,7 +222,7 @@ namespace dawn_native { namespace metal { [*mDevice supportsFamily:MTLGPUFamilyApple5]) { mSupportedExtensions.EnableExtension(Extension::PipelineStatisticsQuery); - // TODO(hao.x.li@intel.com): Not enable timestamp query here becuase it's not + // TODO(crbug.com/dawn/434): Not enable timestamp query here becuase it's not // clear how to convert timestamps to nanoseconds on Metal. // See https://github.com/gpuweb/gpuweb/issues/1325 } diff --git a/src/tests/DawnTest.cpp b/src/tests/DawnTest.cpp index 7496d6a36a..7414e921c1 100644 --- a/src/tests/DawnTest.cpp +++ b/src/tests/DawnTest.cpp @@ -1054,8 +1054,6 @@ std::ostringstream& DawnTestBase::AddTextureExpectationImpl(const char* file, uint32_t size = utils::RequiredBytesInCopy(bytesPerRow, rowsPerImage, extent.width, extent.height, extent.depthOrArrayLayers, dataSize); - // TODO(enga): We should have the map async alignment in Contants.h. Also, it should change to 8 - // for Float64Array. auto readback = ReserveReadback(Align(size, 4)); // We need to enqueue the copy immediately because by the time we resolve the expectation, @@ -1176,8 +1174,6 @@ void DawnTestBase::WaitForAllOperations() { } DawnTestBase::ReadbackReservation DawnTestBase::ReserveReadback(uint64_t readbackSize) { - // For now create a new MapRead buffer for each readback - // TODO(cwallez@chromium.org): eventually make bigger buffers and allocate linearly? ReadbackSlot slot; slot.bufferSize = readbackSize; diff --git a/src/tests/DawnTest.h b/src/tests/DawnTest.h index 7b837a5d48..adb6ebe7f9 100644 --- a/src/tests/DawnTest.h +++ b/src/tests/DawnTest.h @@ -84,7 +84,6 @@ #define EXPECT_PIXEL_RGBA8_BETWEEN(color0, color1, texture, x, y) \ AddTextureBetweenColorsExpectation(__FILE__, __LINE__, color0, color1, texture, x, y) -// TODO(enga): Migrate other texure expectation helpers to this common one. #define EXPECT_TEXTURE_EQ(...) AddTextureExpectation(__FILE__, __LINE__, __VA_ARGS__) // Should only be used to test validation of function that can't be tested by regular validation diff --git a/src/tests/end2end/BufferZeroInitTests.cpp b/src/tests/end2end/BufferZeroInitTests.cpp index 7d78ec4388..55bdf90f95 100644 --- a/src/tests/end2end/BufferZeroInitTests.cpp +++ b/src/tests/end2end/BufferZeroInitTests.cpp @@ -1198,8 +1198,8 @@ TEST_P(BufferZeroInitTest, ResolveQuerySet) { // Timestamp query is not supported on OpenGL DAWN_TEST_UNSUPPORTED_IF(IsOpenGL()); - // TODO(hao.x.li@intel.com): Crash occurs if we only call WriteTimestamp in a command encoder - // without any copy commands on Metal on AMD GPU. See https://crbug.com/dawn/545. + // TODO(crbug.com/dawn/545): Crash occurs if we only call WriteTimestamp in a command encoder + // without any copy commands on Metal on AMD GPU. DAWN_SUPPRESS_TEST_IF(IsMetal() && IsAMD()); // Skip if timestamp extension is not supported on device diff --git a/src/tests/end2end/CompressedTextureFormatTests.cpp b/src/tests/end2end/CompressedTextureFormatTests.cpp index 96b704c95c..99fde59feb 100644 --- a/src/tests/end2end/CompressedTextureFormatTests.cpp +++ b/src/tests/end2end/CompressedTextureFormatTests.cpp @@ -402,8 +402,7 @@ class CompressedTextureBCFormatTest : public DawnTest { return expectedData; } - // Right now we only test 2D array textures with BC formats. - // TODO(jiawei.shao@intel.com): support 1D/3D textures + // Note: BC formats are only valid with 2D (array) textures. static wgpu::Extent3D GetVirtualSizeAtLevel(const CopyConfig& config) { return {config.textureDescriptor.size.width >> config.viewMipmapLevel, config.textureDescriptor.size.height >> config.viewMipmapLevel, @@ -431,7 +430,7 @@ class CompressedTextureBCFormatTest : public DawnTest { // Test copying into the whole BC texture with 2x2 blocks and sampling from it. TEST_P(CompressedTextureBCFormatTest, Basic) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -468,7 +467,7 @@ TEST_P(CompressedTextureBCFormatTest, CopyIntoSubRegion) { // Test copying into the non-zero layer of a 2D array texture with BC formats works correctly. TEST_P(CompressedTextureBCFormatTest, CopyIntoNonZeroArrayLayer) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -493,7 +492,7 @@ TEST_P(CompressedTextureBCFormatTest, CopyIntoNonZeroArrayLayer) { // Test copying into a non-zero mipmap level of a texture with BC texture formats. TEST_P(CompressedTextureBCFormatTest, CopyBufferIntoNonZeroMipmapLevel) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -532,7 +531,7 @@ TEST_P(CompressedTextureBCFormatTest, CopyBufferIntoNonZeroMipmapLevel) { // Test texture-to-texture whole-size copies with BC formats. TEST_P(CompressedTextureBCFormatTest, CopyWholeTextureSubResourceIntoNonZeroMipmapLevel) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -540,9 +539,8 @@ TEST_P(CompressedTextureBCFormatTest, CopyWholeTextureSubResourceIntoNonZeroMipm // This test uses glTextureView() which is not supported in OpenGL ES. DAWN_TEST_UNSUPPORTED_IF(IsOpenGLES()); - // TODO(cwallez@chromium.org): This consistently fails on with the 12th pixel being opaque black - // instead of opaque red on Win10 FYI Release (NVIDIA GeForce GTX 1660). See - // https://bugs.chromium.org/p/chromium/issues/detail?id=981393 + // TODO(crbug.com/dawn/816): This consistently fails on with the 12th pixel being opaque black + // instead of opaque red on Win10 FYI Release (NVIDIA GeForce GTX 1660). DAWN_SUPPRESS_TEST_IF(IsWindows() && IsVulkan() && IsNvidia()); CopyConfig config; @@ -591,7 +589,7 @@ TEST_P(CompressedTextureBCFormatTest, CopyWholeTextureSubResourceIntoNonZeroMipm TEST_P(CompressedTextureBCFormatTest, CopyIntoSubresourceWithPhysicalSizeNotEqualToVirtualSize) { DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); - // TODO(jiawei.shao@intel.com): add workaround on the T2T copies where Extent3D fits in one + // TODO(crbug.com/dawn/817): add workaround on the T2T copies where Extent3D fits in one // subresource and does not fit in another one on OpenGL. DAWN_SUPPRESS_TEST_IF(IsOpenGL() || IsOpenGLES()); @@ -651,7 +649,7 @@ TEST_P(CompressedTextureBCFormatTest, CopyIntoSubresourceWithPhysicalSizeNotEqua TEST_P(CompressedTextureBCFormatTest, CopyFromSubresourceWithPhysicalSizeNotEqualToVirtualSize) { DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); - // TODO(jiawei.shao@intel.com): add workaround on the T2T copies where Extent3D fits in one + // TODO(crbug.com/dawn/817): add workaround on the T2T copies where Extent3D fits in one // subresource and does not fit in another one on OpenGL. DAWN_SUPPRESS_TEST_IF(IsOpenGL() || IsOpenGLES()); @@ -707,7 +705,7 @@ TEST_P(CompressedTextureBCFormatTest, CopyFromSubresourceWithPhysicalSizeNotEqua TEST_P(CompressedTextureBCFormatTest, MultipleCopiesWithPhysicalSizeNotEqualToVirtualSize) { DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); - // TODO(jiawei.shao@intel.com): add workaround on the T2T copies where Extent3D fits in one + // TODO(crbug.com/dawn/817): add workaround on the T2T copies where Extent3D fits in one // subresource and does not fit in another one on OpenGL. DAWN_SUPPRESS_TEST_IF(IsOpenGL() || IsOpenGLES()); @@ -787,7 +785,7 @@ TEST_P(CompressedTextureBCFormatTest, MultipleCopiesWithPhysicalSizeNotEqualToVi TEST_P(CompressedTextureBCFormatTest, CopyWithMultipleLayerAndPhysicalSizeNotEqualToVirtualSize) { DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); - // TODO(jiawei.shao@intel.com): add workaround on the T2T copies where Extent3D fits in one + // TODO(crbug.com/dawn/817): add workaround on the T2T copies where Extent3D fits in one // subresource and does not fit in another one on OpenGL. DAWN_SUPPRESS_TEST_IF(IsOpenGL() || IsOpenGLES()); @@ -857,7 +855,7 @@ TEST_P(CompressedTextureBCFormatTest, CopyWithMultipleLayerAndPhysicalSizeNotEqu // Test the special case of the B2T copies on the D3D12 backend that the buffer offset and texture // extent exactly fit the RowPitch. TEST_P(CompressedTextureBCFormatTest, BufferOffsetAndExtentFitRowPitch) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -886,7 +884,7 @@ TEST_P(CompressedTextureBCFormatTest, BufferOffsetAndExtentFitRowPitch) { // backend the texelOffset.y will be greater than 0 after calcuting the texelOffset in the function // ComputeTexelOffsets(). TEST_P(CompressedTextureBCFormatTest, BufferOffsetExceedsSlicePitch) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -917,7 +915,7 @@ TEST_P(CompressedTextureBCFormatTest, BufferOffsetExceedsSlicePitch) { // Test the special case of the B2T copies on the D3D12 backend that the buffer offset and texture // extent exceed the RowPitch. On D3D12 backend two copies are required for this case. TEST_P(CompressedTextureBCFormatTest, CopyWithBufferOffsetAndExtentExceedRowPitch) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -974,7 +972,7 @@ TEST_P(CompressedTextureBCFormatTest, RowPitchEqualToSlicePitch) { // copyExtent.depthOrArrayLayers) on Metal backends. As copyExtent.depthOrArrayLayers can only be 1 // for BC formats, on Metal backend we will use two copies to implement such copy. TEST_P(CompressedTextureBCFormatTest, LargeImageHeight) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -995,7 +993,7 @@ TEST_P(CompressedTextureBCFormatTest, LargeImageHeight) { // Test the workaround in the B2T copies when (bufferSize - bufferOffset < bytesPerImage * // copyExtent.depthOrArrayLayers) and copyExtent needs to be clamped. TEST_P(CompressedTextureBCFormatTest, LargeImageHeightAndClampedCopyExtent) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -1037,7 +1035,7 @@ TEST_P(CompressedTextureBCFormatTest, LargeImageHeightAndClampedCopyExtent) { // Test copying a whole 2D array texture with array layer count > 1 in one copy command works with // BC formats. TEST_P(CompressedTextureBCFormatTest, CopyWhole2DArrayTexture) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -1063,7 +1061,7 @@ TEST_P(CompressedTextureBCFormatTest, CopyWhole2DArrayTexture) { // Test copying a multiple 2D texture array layers in one copy command works with BC formats. TEST_P(CompressedTextureBCFormatTest, CopyMultiple2DArrayLayers) { - // TODO(jiawei.shao@intel.com): find out why this test fails on Windows Intel OpenGL drivers. + // TODO(crbug.com/dawn/815): find out why this test fails on Windows Intel OpenGL drivers. DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsWindows()); DAWN_TEST_UNSUPPORTED_IF(!IsBCFormatSupported()); @@ -1120,7 +1118,6 @@ TEST_P(CompressedTextureBCFormatTest, UnalignedDynamicUploader) { queue.Submit(1, &commands); } -// TODO(jiawei.shao@intel.com): support BC formats on OpenGL backend DAWN_INSTANTIATE_TEST(CompressedTextureBCFormatTest, D3D12Backend(), MetalBackend(), diff --git a/src/tests/end2end/CopyTests.cpp b/src/tests/end2end/CopyTests.cpp index d4d8e01061..9befdc751a 100644 --- a/src/tests/end2end/CopyTests.cpp +++ b/src/tests/end2end/CopyTests.cpp @@ -59,7 +59,7 @@ class CopyTests : public DawnTest { return textureData; } - // TODO(jiawei.shao@intel.com): remove this function when all the tests in this file support + // TODO(crbug.com/dawn/818): remove this function when all the tests in this file support // testing arbitrary formats. static std::vector GetExpectedTextureDataRGBA8( const utils::TextureDataCopyLayout& layout) { @@ -132,7 +132,7 @@ class CopyTests_T2B : public CopyTests { const BufferSpec& bufferSpec, const wgpu::Extent3D& copySize, wgpu::TextureDimension dimension = wgpu::TextureDimension::e2D) { - // TODO(jiawei.shao@intel.com): support testing arbitrary formats + // TODO(crbug.com/dawn/818): support testing arbitrary formats ASSERT_EQ(kDefaultFormat, textureSpec.format); const uint32_t bytesPerTexel = utils::GetTexelBlockSizeInBytes(textureSpec.format); @@ -244,7 +244,7 @@ class CopyTests_B2T : public CopyTests { const BufferSpec& bufferSpec, const wgpu::Extent3D& copySize, wgpu::TextureDimension dimension = wgpu::TextureDimension::e2D) { - // TODO(jiawei.shao@intel.com): support testing arbitrary formats + // TODO(crbug.com/dawn/818): support testing arbitrary formats ASSERT_EQ(kDefaultFormat, textureSpec.format); // Create a buffer of size `size` and populate it with data const uint32_t bytesPerTexel = utils::GetTexelBlockSizeInBytes(textureSpec.format); @@ -2008,7 +2008,7 @@ TEST_P(CopyTests_T2B, CopyOneRowWithDepth32Float) { // texture formats. See http://crbug.com/1161355 for more details. TEST_P(CopyTests_T2T, CopyFromNonZeroMipLevelWithTexelBlockSizeLessThan4Bytes) { // This test can pass on the Windows Intel Vulkan driver version 27.20.100.9168. - // TODO(jiawei.shao@intel.com): enable this test on Intel Vulkan drivers after the upgrade of + // TODO(crbug.com/dawn/819): enable this test on Intel Vulkan drivers after the upgrade of // try bots. DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsWindows() && IsIntel()); diff --git a/src/tests/end2end/DepthBiasTests.cpp b/src/tests/end2end/DepthBiasTests.cpp index 2c07dc9e42..b18f18181d 100644 --- a/src/tests/end2end/DepthBiasTests.cpp +++ b/src/tests/end2end/DepthBiasTests.cpp @@ -312,7 +312,7 @@ TEST_P(DepthBiasTests, PositiveBiasOn24bit) { 0.25f * (1 << 25), 0, 0); // Only the bottom left quad has colors. 0.5 quad > 0.4 clear. - // TODO(enrico.galli@intel.com): Switch to depth sampling once feature has been enabled. + // TODO(crbug.com/dawn/820): Switch to depth sampling once feature has been enabled. std::vector expected = { RGBA8::kRed, RGBA8::kRed, // RGBA8::kRed, RGBA8::kRed, // @@ -333,7 +333,7 @@ TEST_P(DepthBiasTests, PositiveBiasOn24bitWithClamp) { // Since we cleared with a depth of 0.4 and clamped bias at 0.4, the depth test will fail. 0.25 // + 0.125 < 0.4 clear. - // TODO(enrico.galli@intel.com): Switch to depth sampling once feature has been enabled. + // TODO(crbug.com/dawn/820): Switch to depth sampling once feature has been enabled. std::vector zero = { RGBA8::kZero, RGBA8::kZero, // RGBA8::kZero, RGBA8::kZero, // @@ -348,7 +348,7 @@ TEST_P(DepthBiasTests, PositiveSlopeBiasOn24bit) { RunDepthBiasTest(wgpu::TextureFormat::Depth24PlusStencil8, 0.4f, QuadAngle::TiltedX, 0, 1, 0); // Only the top half of the quad has a depth > 0.4 clear - // TODO(enrico.galli@intel.com): Switch to depth sampling once feature has been enabled. + // TODO(crbug.com/dawn/820): Switch to depth sampling once feature has been enabled. std::vector expected = { RGBA8::kRed, RGBA8::kRed, // RGBA8::kZero, RGBA8::kZero, // diff --git a/src/tests/end2end/DepthStencilCopyTests.cpp b/src/tests/end2end/DepthStencilCopyTests.cpp index a6cd449408..bd19ac9122 100644 --- a/src/tests/end2end/DepthStencilCopyTests.cpp +++ b/src/tests/end2end/DepthStencilCopyTests.cpp @@ -215,7 +215,7 @@ class DepthStencilCopyTests : public DawnTest { uploadBufferDesc.usage = wgpu::BufferUsage::CopySrc; uploadBufferDesc.mappedAtCreation = true; - // TODO(enga): Use WriteTexture when implemented on OpenGL. + // TODO(crbug.com/dawn/822): Use WriteTexture when implemented on OpenGL. wgpu::Buffer uploadBuffer = device.CreateBuffer(&uploadBufferDesc); uint8_t* dst = static_cast(uploadBuffer.GetMappedRange()); float* src = expected.data(); @@ -269,7 +269,7 @@ class DepthStencilCopyTests : public DawnTest { depthStencil->depthCompare = wgpu::CompareFunction::Equal; pipelineDescriptor.cTargets[0].format = colorTexDesc.format; - // TODO(jiawei.shao@intel.com): The Intel Mesa Vulkan driver can't set gl_FragDepth unless + // TODO(crbug.com/dawn/821): The Intel Mesa Vulkan driver can't set gl_FragDepth unless // depthWriteEnabled == true. This either needs to be fixed in the driver or restricted by // the WebGPU API. depthStencil->depthWriteEnabled = true; @@ -353,8 +353,8 @@ TEST_P(DepthStencilCopyTests, FromStencilAspect) { // Test copying the non-zero mip, stencil-only aspect into a buffer. TEST_P(DepthStencilCopyTests, FromNonZeroMipStencilAspect) { - // TODO(enga): Figure out why this fails on MacOS Intel Iris. - // It passes on AMD Radeon Pro and Intel HD Graphics 630. + // TODO(crbug.com/dawn/704): Readback after clear via stencil copy does not work + // on some Intel drivers. DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); // TODO(crbug.com/dawn/667): Work around some platforms' inability to read back stencil. @@ -396,8 +396,8 @@ TEST_P(DepthStencilCopyTests, FromNonZeroMipDepthAspect) { // Test copying both aspects in a T2T copy, then copying only stencil. TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyStencil) { - // TODO(enga): Figure out why this fails on MacOS Intel Iris. - // It passes on AMD Radeon Pro and Intel HD Graphics 630. + // TODO(crbug.com/dawn/704): Readback after clear via stencil copy does not work + // on some Intel drivers. // Maybe has to do with the RenderAttachment usage. Notably, a later test // T2TBothAspectsThenCopyNonRenderableStencil does not use RenderAttachment and works correctly. DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); @@ -449,8 +449,8 @@ TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyNonRenderableStencil) { // Test that part of a non-renderable, non-zero mip stencil aspect can be copied. Notably, // this test has different behavior on some platforms than T2TBothAspectsThenCopyStencil. TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyNonRenderableNonZeroMipStencil) { - // TODO(enga): Figure out why this fails on MacOS Intel Iris. - // It passes on AMD Radeon Pro and Intel HD Graphics 630. + /// TODO(crbug.com/dawn/704): Readback after clear via stencil copy does not work + // on some Intel drivers. // Maybe has to do with the non-zero mip. Notably, a previous test // T2TBothAspectsThenCopyNonRenderableStencil works correctly. DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); @@ -539,8 +539,8 @@ TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyStencilThenDepth) { // Test copying both aspects in a T2T copy, then copying depth, then copying stencil TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyDepthThenStencil) { - // TODO(enga): Figure out why this fails on MacOS Intel Iris. - // It passes on AMD Radeon Pro and Intel HD Graphics 630. + // TODO(crbug.com/dawn/704): Readback after clear via stencil copy does not work + // on some Intel drivers. // It seems like the depth readback copy mutates the stencil because the previous // test T2TBothAspectsThenCopyStencil passes. // T2TBothAspectsThenCopyStencilThenDepth which checks stencil first also passes. @@ -583,8 +583,8 @@ TEST_P(DepthStencilCopyTests, ToStencilAspect) { DAWN_TEST_UNSUPPORTED_IF(IsOpenGL()); DAWN_TEST_UNSUPPORTED_IF(IsOpenGLES()); - // TODO(enga): Figure out why this fails on MacOS Intel Iris. - // It passes on AMD Radeon Pro and Intel HD Graphics 630. + // TODO(crbug.com/dawn/704): Readback after clear via stencil copy does not work + // on some Intel drivers. DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); // Create a stencil texture diff --git a/src/tests/end2end/DepthStencilSamplingTests.cpp b/src/tests/end2end/DepthStencilSamplingTests.cpp index f877ceea0a..1b7e5842f3 100644 --- a/src/tests/end2end/DepthStencilSamplingTests.cpp +++ b/src/tests/end2end/DepthStencilSamplingTests.cpp @@ -192,8 +192,8 @@ class DepthStencilSamplingTest : public DawnTest { return textureSampleCompare(tex, samp, vec2(0.5, 0.5), uniforms.compareRef); })"); - // TODO(dawn:367): Cannot use GetBindGroupLayout for comparison samplers without shader - // reflection data. + // TODO(crbug.com/dawn/367): Cannot use GetBindGroupLayout for comparison samplers without + // shader reflection data. wgpu::BindGroupLayout bgl = utils::MakeBindGroupLayout( device, {{0, wgpu::ShaderStage::Fragment, wgpu::SamplerBindingType::Comparison}, {1, wgpu::ShaderStage::Fragment, wgpu::TextureSampleType::Depth}, @@ -227,7 +227,7 @@ class DepthStencilSamplingTest : public DawnTest { samplerResult.value = textureSampleCompare(tex, samp, vec2(0.5, 0.5), uniforms.compareRef); })"); - // TODO(dawn:367): Cannot use GetBindGroupLayout without shader reflection data. + // TODO(crbug.com/dawn/367): Cannot use GetBindGroupLayout without shader reflection data. wgpu::BindGroupLayout bgl = utils::MakeBindGroupLayout( device, {{0, wgpu::ShaderStage::Compute, wgpu::SamplerBindingType::Comparison}, {1, wgpu::ShaderStage::Compute, wgpu::TextureSampleType::Depth}, diff --git a/src/tests/end2end/IOSurfaceWrappingTests.cpp b/src/tests/end2end/IOSurfaceWrappingTests.cpp index 23507f3fff..7145da770a 100644 --- a/src/tests/end2end/IOSurfaceWrappingTests.cpp +++ b/src/tests/end2end/IOSurfaceWrappingTests.cpp @@ -159,10 +159,10 @@ TEST_P(IOSurfaceValidationTests, PlaneTooLarge) { } // Test an error occurs if the descriptor dimension isn't 2D -// TODO(cwallez@chromium.org): Reenable when 1D or 3D textures are implemented -TEST_P(IOSurfaceValidationTests, DISABLED_InvalidTextureDimension) { +// TODO(crbug.com/dawn/814): Test 1D textures when implemented +TEST_P(IOSurfaceValidationTests, InvalidTextureDimension) { DAWN_TEST_UNSUPPORTED_IF(UsesWire()); - descriptor.dimension = wgpu::TextureDimension::e2D; + descriptor.dimension = wgpu::TextureDimension::e3D; ASSERT_DEVICE_ERROR(wgpu::Texture texture = WrapIOSurface(&descriptor, defaultIOSurface.get(), 0)); diff --git a/src/tests/end2end/MultisampledRenderingTests.cpp b/src/tests/end2end/MultisampledRenderingTests.cpp index 8c6a2e64c6..963e370bcc 100644 --- a/src/tests/end2end/MultisampledRenderingTests.cpp +++ b/src/tests/end2end/MultisampledRenderingTests.cpp @@ -418,7 +418,7 @@ TEST_P(MultisampledRenderingTest, ResolveInAnotherRenderPass) { // Test doing MSAA resolve into multiple resolve targets works correctly. TEST_P(MultisampledRenderingTest, ResolveIntoMultipleResolveTargets) { - // TODO(dawn:462): Investigate backend validation failure. + // TODO(dawn:462): Issue in the D3D12 validation layers. DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsNvidia() && IsBackendValidationEnabled()); wgpu::TextureView multisampledColorView2 = @@ -496,7 +496,7 @@ TEST_P(MultisampledRenderingTest, ResolveOneMultisampledTextureTwice) { // Test using a layer of a 2D texture as resolve target works correctly. TEST_P(MultisampledRenderingTest, ResolveIntoOneMipmapLevelOf2DTexture) { - // TODO(dawn:462): Investigate backend validation failure. + // TODO(dawn:462): Issue in the D3D12 validation layers. DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsBackendValidationEnabled()); constexpr uint32_t kBaseMipLevel = 2; @@ -534,7 +534,7 @@ TEST_P(MultisampledRenderingTest, ResolveIntoOneMipmapLevelOf2DTexture) { // Test using a level or a layer of a 2D array texture as resolve target works correctly. TEST_P(MultisampledRenderingTest, ResolveInto2DArrayTexture) { - // TODO(dawn:462): Investigate backend validation failure. + // TODO(dawn:462): Issue in the D3D12 validation layers. DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsBackendValidationEnabled()); wgpu::TextureView multisampledColorView2 = @@ -762,7 +762,7 @@ TEST_P(MultisampledRenderingTest, ResolveInto2DTextureWithSampleMaskAndShaderOut // supported on some platforms. DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_sample_variables")); - // TODO(cwallez@chromium.org): Fails on Metal / D3D12 because SPIRV-Cross produces bad shaders + // TODO(crbug.com/dawn/571): Fails on Metal / D3D12 because SPIRV-Cross produces bad shaders // for the SPIR-V outputted by Tint. Reenable once we use Tint's MSL / HLSL generators. DAWN_SUPPRESS_TEST_IF(IsD3D12() || IsMetal()); @@ -824,7 +824,7 @@ TEST_P(MultisampledRenderingTest, ResolveIntoMultipleResolveTargetsWithShaderOut // supported on some platforms. DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_sample_variables")); - // TODO(cwallez@chromium.org): Fails on Metal / D3D12 because SPIRV-Cross produces bad shaders + // TODO(crbug.com/dawn/571): Fails on Metal / D3D12 because SPIRV-Cross produces bad shaders // for the SPIR-V outputted by Tint. Reenable once we use Tint's MSL / HLSL generators. DAWN_SUPPRESS_TEST_IF(IsD3D12() || IsMetal()); diff --git a/src/tests/end2end/OpArrayLengthTests.cpp b/src/tests/end2end/OpArrayLengthTests.cpp index 38bc6fbe29..c9d42f7f21 100644 --- a/src/tests/end2end/OpArrayLengthTests.cpp +++ b/src/tests/end2end/OpArrayLengthTests.cpp @@ -98,8 +98,8 @@ class OpArrayLengthTest : public DawnTest { // Test OpArrayLength in the compute stage TEST_P(OpArrayLengthTest, Compute) { - // TODO(cwallez@chromium.org): The computations for length() of unsized buffer is broken on - // Nvidia OpenGL. See https://bugs.chromium.org/p/dawn/issues/detail?id=197 + // TODO(crbug.com/dawn/197): The computations for length() of unsized buffer is broken on + // Nvidia OpenGL. DAWN_SUPPRESS_TEST_IF(IsNvidia() && (IsOpenGL() || IsOpenGLES())); // Create a buffer to hold the result sizes and create a bindgroup for it. @@ -155,8 +155,8 @@ TEST_P(OpArrayLengthTest, Compute) { // Test OpArrayLength in the fragment stage TEST_P(OpArrayLengthTest, Fragment) { - // TODO(cwallez@chromium.org): The computations for length() of unsized buffer is broken on - // Nvidia OpenGL. See https://bugs.chromium.org/p/dawn/issues/detail?id=197 + // TODO(crbug.com/dawn/197): The computations for length() of unsized buffer is broken on + // Nvidia OpenGL. DAWN_SUPPRESS_TEST_IF(IsNvidia() && (IsOpenGL() || IsOpenGLES())); utils::BasicRenderPass renderPass = utils::CreateBasicRenderPass(device, 1, 1); @@ -206,9 +206,8 @@ TEST_P(OpArrayLengthTest, Fragment) { // Test OpArrayLength in the vertex stage TEST_P(OpArrayLengthTest, Vertex) { - // TODO(cwallez@chromium.org): The computations for length() of unsized buffer is broken on - // Nvidia OpenGL. Also failing on all GLES (NV, Intel, SwANGLE). See - // https://bugs.chromium.org/p/dawn/issues/detail?id=197 + // TODO(crbug.com/dawn/197): The computations for length() of unsized buffer is broken on + // Nvidia OpenGL. Also failing on all GLES (NV, Intel, SwANGLE). DAWN_SUPPRESS_TEST_IF(IsNvidia() && IsOpenGL()); DAWN_SUPPRESS_TEST_IF(IsOpenGLES()); diff --git a/src/tests/end2end/QueryTests.cpp b/src/tests/end2end/QueryTests.cpp index bd3a6ec8c2..d6c5a75cea 100644 --- a/src/tests/end2end/QueryTests.cpp +++ b/src/tests/end2end/QueryTests.cpp @@ -760,8 +760,8 @@ TEST_P(TimestampQueryTests, ResolveToBufferWithOffset) { // the issue is fixed. DAWN_SUPPRESS_TEST_IF(IsWindows() && IsVulkan() && IsIntel()); - // TODO(hao.x.li@intel.com): Crash occurs if we only call WriteTimestamp in a command encoder - // without any copy commands on Metal on AMD GPU. See https://crbug.com/dawn/545. + // TODO(crbug.com/dawn/545): Crash occurs if we only call WriteTimestamp in a command encoder + // without any copy commands on Metal on AMD GPU. DAWN_SUPPRESS_TEST_IF(IsMetal() && IsAMD()); constexpr uint32_t kQueryCount = 2; diff --git a/src/tests/end2end/QueueTests.cpp b/src/tests/end2end/QueueTests.cpp index b21c397554..e1516116b3 100644 --- a/src/tests/end2end/QueueTests.cpp +++ b/src/tests/end2end/QueueTests.cpp @@ -112,8 +112,7 @@ TEST_P(QueueWriteBufferTests, ManyWriteBuffer) { // fails the test. Since GPUs may or may not complete by then, this test must be disabled OR // modified to be well-below the timeout limit. - // TODO(https://bugs.chromium.org/p/dawn/issues/detail?id=228): Re-enable - // once the issue with Metal on 10.14.6 is fixed. + // TODO(crbug.com/dawn/228): Re-enable once the issue with Metal on 10.14.6 is fixed. DAWN_SUPPRESS_TEST_IF(IsMacOS() && IsIntel() && IsMetal()); // The Vulkan Validation Layers' memory barrier validation keeps track of every range written diff --git a/src/tests/end2end/ShaderFloat16Tests.cpp b/src/tests/end2end/ShaderFloat16Tests.cpp index d728334571..73427bd244 100644 --- a/src/tests/end2end/ShaderFloat16Tests.cpp +++ b/src/tests/end2end/ShaderFloat16Tests.cpp @@ -50,12 +50,10 @@ TEST_P(ShaderFloat16Tests, Basic16BitFloatFeaturesTest) { wgpu::Buffer bufferIn = utils::CreateBufferFromData(device, &bufferInData, sizeof(bufferInData), wgpu::BufferUsage::Storage); - // TODO(xinghua.cao@intel.com): the zero for padding is required now. No need to - // createBufferFromData once buffer lazy-zero-init is done. - uint16_t bufferOutData[] = {Float32ToFloat16(0.0), Float32ToFloat16(0.0)}; - wgpu::Buffer bufferOut = - utils::CreateBufferFromData(device, &bufferOutData, sizeof(bufferOutData), - wgpu::BufferUsage::Storage | wgpu::BufferUsage::CopySrc); + wgpu::BufferDescriptor bufferDesc; + bufferDesc.size = 2 * sizeof(uint16_t); + bufferDesc.usage = wgpu::BufferUsage::Storage | wgpu::BufferUsage::CopySrc; + wgpu::Buffer bufferOut = device.CreateBuffer(&bufferDesc); // SPIR-V ASM produced by glslang for the following fragment shader: // @@ -157,7 +155,7 @@ TEST_P(ShaderFloat16Tests, Basic16BitFloatFeaturesTest) { { {0, uniformBuffer, 0, sizeof(uniformData)}, {1, bufferIn, 0, sizeof(bufferInData)}, - {2, bufferOut, 0, sizeof(bufferOutData)}, + {2, bufferOut}, }); wgpu::CommandEncoder encoder = device.CreateCommandEncoder(); diff --git a/src/tests/end2end/StorageTextureTests.cpp b/src/tests/end2end/StorageTextureTests.cpp index bdc0fbf007..0ab4a0acc9 100644 --- a/src/tests/end2end/StorageTextureTests.cpp +++ b/src/tests/end2end/StorageTextureTests.cpp @@ -552,8 +552,6 @@ fn IsEqualTo(pixel : vec4, expected : vec4) -> bool { wgpu::CommandEncoder encoder = device.CreateCommandEncoder(); - // TODO(jiawei.shao@intel.com): remove the render attachment when Dawn supports beginning a - // render pass with no attachments. wgpu::Texture dummyOutputTexture = CreateTexture(kRenderAttachmentFormat, wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc, 1, 1); diff --git a/src/tests/end2end/TextureFormatTests.cpp b/src/tests/end2end/TextureFormatTests.cpp index dd0d5f6a84..57d125ca3c 100644 --- a/src/tests/end2end/TextureFormatTests.cpp +++ b/src/tests/end2end/TextureFormatTests.cpp @@ -786,9 +786,6 @@ TEST_P(TextureFormatTest, RGB9E5Ufloat) { // This format is not renderable. } -// TODO(cwallez@chromium.org): Add tests for depth-stencil formats when we know if they are copyable -// in WebGPU. - DAWN_INSTANTIATE_TEST(TextureFormatTest, D3D12Backend(), MetalBackend(), diff --git a/src/tests/end2end/TextureZeroInitTests.cpp b/src/tests/end2end/TextureZeroInitTests.cpp index f8ca3cb03f..3f2e8eec7f 100644 --- a/src/tests/end2end/TextureZeroInitTests.cpp +++ b/src/tests/end2end/TextureZeroInitTests.cpp @@ -586,7 +586,8 @@ TEST_P(TextureZeroInitTest, RenderingLoadingDepthStencil) { // Test that clear state is tracked independently for depth/stencil textures. TEST_P(TextureZeroInitTest, IndependentDepthStencilLoadAfterDiscard) { - // TODO(enga): Figure out why this fails on Metal Intel. + // TODO(crbug.com/dawn/704): Readback after clear via stencil copy does not work + // on some Intel drivers. DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); wgpu::TextureDescriptor depthStencilDescriptor = CreateTextureDescriptor( diff --git a/src/tests/end2end/VertexFormatTests.cpp b/src/tests/end2end/VertexFormatTests.cpp index 18fe997c16..68f39ec6a2 100644 --- a/src/tests/end2end/VertexFormatTests.cpp +++ b/src/tests/end2end/VertexFormatTests.cpp @@ -49,6 +49,9 @@ class VertexFormatTest : public DawnTest { void SetUp() override { DawnTest::SetUp(); + // TODO(crbug.com/dawn/259): Failing because of a SPIRV-Cross issue. + DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); + renderPass = utils::CreateBasicRenderPass(device, kRTSize, kRTSize); } @@ -398,10 +401,6 @@ class VertexFormatTest : public DawnTest { }; TEST_P(VertexFormatTest, Uint8x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), 0, @@ -425,10 +424,6 @@ TEST_P(VertexFormatTest, Uint8x2) { } TEST_P(VertexFormatTest, Uint8x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), 0, @@ -448,10 +443,6 @@ TEST_P(VertexFormatTest, Uint8x4) { } TEST_P(VertexFormatTest, Sint8x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), 0, @@ -475,10 +466,6 @@ TEST_P(VertexFormatTest, Sint8x2) { } TEST_P(VertexFormatTest, Sint8x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), 0, @@ -498,10 +485,6 @@ TEST_P(VertexFormatTest, Sint8x4) { } TEST_P(VertexFormatTest, Unorm8x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), std::numeric_limits::min(), @@ -528,10 +511,6 @@ TEST_P(VertexFormatTest, Unorm8x2) { } TEST_P(VertexFormatTest, Unorm8x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), std::numeric_limits::min(), 0, @@ -549,10 +528,6 @@ TEST_P(VertexFormatTest, Unorm8x4) { } TEST_P(VertexFormatTest, Snorm8x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), std::numeric_limits::min(), @@ -581,10 +556,6 @@ TEST_P(VertexFormatTest, Snorm8x2) { } TEST_P(VertexFormatTest, Snorm8x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), std::numeric_limits::min(), 0, @@ -602,10 +573,6 @@ TEST_P(VertexFormatTest, Snorm8x4) { } TEST_P(VertexFormatTest, Uint16x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), 0, std::numeric_limits::min(), @@ -617,10 +584,6 @@ TEST_P(VertexFormatTest, Uint16x2) { } TEST_P(VertexFormatTest, Uint16x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), std::numeric_limits::max(), @@ -640,10 +603,6 @@ TEST_P(VertexFormatTest, Uint16x4) { } TEST_P(VertexFormatTest, Sint16x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), 0, std::numeric_limits::min(), @@ -655,10 +614,6 @@ TEST_P(VertexFormatTest, Sint16x2) { } TEST_P(VertexFormatTest, Sint16x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), 0, @@ -678,10 +633,6 @@ TEST_P(VertexFormatTest, Sint16x4) { } TEST_P(VertexFormatTest, Unorm16x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), std::numeric_limits::min(), std::numeric_limits::max() / 2u, @@ -693,10 +644,6 @@ TEST_P(VertexFormatTest, Unorm16x2) { } TEST_P(VertexFormatTest, Unorm16x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), std::numeric_limits::min(), 0, @@ -714,10 +661,6 @@ TEST_P(VertexFormatTest, Unorm16x4) { } TEST_P(VertexFormatTest, Snorm16x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), std::numeric_limits::min(), std::numeric_limits::max() / 2, @@ -729,10 +672,6 @@ TEST_P(VertexFormatTest, Snorm16x2) { } TEST_P(VertexFormatTest, Snorm16x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), std::numeric_limits::min(), 0, @@ -750,10 +689,6 @@ TEST_P(VertexFormatTest, Snorm16x4) { } TEST_P(VertexFormatTest, Float16x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - // Fails on NVIDIA's Vulkan drivers on CQ but passes locally. DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsNvidia()); @@ -764,10 +699,6 @@ TEST_P(VertexFormatTest, Float16x2) { } TEST_P(VertexFormatTest, Float16x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - // Fails on NVIDIA's Vulkan drivers on CQ but passes locally. DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsNvidia()); @@ -778,10 +709,6 @@ TEST_P(VertexFormatTest, Float16x4) { } TEST_P(VertexFormatTest, Float32) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {1.3f, +0.0f, -0.0f}; DoVertexFormatTest(wgpu::VertexFormat::Float32, vertexData, vertexData); @@ -792,10 +719,6 @@ TEST_P(VertexFormatTest, Float32) { } TEST_P(VertexFormatTest, Float32x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - // Fails on NVIDIA's Vulkan drivers on CQ but passes locally. DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsNvidia()); @@ -805,10 +728,6 @@ TEST_P(VertexFormatTest, Float32x2) { } TEST_P(VertexFormatTest, Float32x3) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - // Fails on NVIDIA's Vulkan drivers on CQ but passes locally. DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsNvidia()); @@ -820,10 +739,6 @@ TEST_P(VertexFormatTest, Float32x3) { } TEST_P(VertexFormatTest, Float32x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { 19.2f, -19.3f, +0.0f, 1.0f, -0.0f, 1.0f, 1.3f, -1.0f, 13.078f, 21.1965f, -1.1f, -1.2f, }; @@ -832,10 +747,6 @@ TEST_P(VertexFormatTest, Float32x4) { } TEST_P(VertexFormatTest, Uint32) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), std::numeric_limits::max(), std::numeric_limits::max()}; @@ -844,10 +755,6 @@ TEST_P(VertexFormatTest, Uint32) { } TEST_P(VertexFormatTest, Uint32x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), 32, std::numeric_limits::max(), 64, std::numeric_limits::max(), 128}; @@ -856,10 +763,6 @@ TEST_P(VertexFormatTest, Uint32x2) { } TEST_P(VertexFormatTest, Uint32x3) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), 32, 64, std::numeric_limits::max(), 164, 128, std::numeric_limits::max(), 1283, 256}; @@ -868,10 +771,6 @@ TEST_P(VertexFormatTest, Uint32x3) { } TEST_P(VertexFormatTest, Uint32x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), 32, 64, 5460, std::numeric_limits::max(), 164, 128, 0, std::numeric_limits::max(), 1283, 256, 4567}; @@ -880,10 +779,6 @@ TEST_P(VertexFormatTest, Uint32x4) { } TEST_P(VertexFormatTest, Sint32) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = {std::numeric_limits::max(), std::numeric_limits::min(), std::numeric_limits::max()}; @@ -892,10 +787,6 @@ TEST_P(VertexFormatTest, Sint32) { } TEST_P(VertexFormatTest, Sint32x2) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), std::numeric_limits::min(), std::numeric_limits::max(), std::numeric_limits::min(), @@ -905,10 +796,6 @@ TEST_P(VertexFormatTest, Sint32x2) { } TEST_P(VertexFormatTest, Sint32x3) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), std::numeric_limits::min(), 64, std::numeric_limits::max(), std::numeric_limits::min(), 128, @@ -918,10 +805,6 @@ TEST_P(VertexFormatTest, Sint32x3) { } TEST_P(VertexFormatTest, Sint32x4) { - // TODO(cwallez@chromium.org): Failing because of a SPIRV-Cross issue. - // See http://crbug.com/dawn/259 - DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); - std::vector vertexData = { std::numeric_limits::max(), std::numeric_limits::min(), 64, -5460, std::numeric_limits::max(), std::numeric_limits::min(), -128, 0,