mirror of
				https://github.com/encounter/dawn-cmake.git
				synced 2025-10-27 12:10:29 +00:00 
			
		
		
		
	Improve various error messages
Improves various error messages that have received feeback indicating that they were too confusing or poorly worded. Bug: dawn:1152 Bug: dawn:1157 Change-Id: If740300f31278ab04d4493887c03918a09cf0f86 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/68100 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org> Commit-Queue: Brandon Jones <bajones@chromium.org>
This commit is contained in:
		
							parent
							
								
									e5b6bbc433
								
							
						
					
					
						commit
						d4b9cda056
					
				| @ -110,15 +110,17 @@ namespace dawn_native { | |||||||
|             wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc; |             wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc; | ||||||
|         DAWN_INVALID_IF( |         DAWN_INVALID_IF( | ||||||
|             usage & wgpu::BufferUsage::MapWrite && !IsSubset(usage, kMapWriteAllowedUsages), |             usage & wgpu::BufferUsage::MapWrite && !IsSubset(usage, kMapWriteAllowedUsages), | ||||||
|             "Buffer usages (%s) contains %s but is not a subset of %s.", usage, |             "Buffer usages (%s) is invalid. If a buffer usage contains %s the only other allowed " | ||||||
|             wgpu::BufferUsage::MapWrite, kMapWriteAllowedUsages); |             "usage is %s.", | ||||||
|  |             usage, wgpu::BufferUsage::MapWrite, wgpu::BufferUsage::CopySrc); | ||||||
| 
 | 
 | ||||||
|         const wgpu::BufferUsage kMapReadAllowedUsages = |         const wgpu::BufferUsage kMapReadAllowedUsages = | ||||||
|             wgpu::BufferUsage::MapRead | wgpu::BufferUsage::CopyDst; |             wgpu::BufferUsage::MapRead | wgpu::BufferUsage::CopyDst; | ||||||
|         DAWN_INVALID_IF( |         DAWN_INVALID_IF( | ||||||
|             usage & wgpu::BufferUsage::MapRead && !IsSubset(usage, kMapReadAllowedUsages), |             usage & wgpu::BufferUsage::MapRead && !IsSubset(usage, kMapReadAllowedUsages), | ||||||
|             "Buffer usages (%s) contains %s but is not a subset of %s.", usage, |             "Buffer usages (%s) is invalid. If a buffer usage contains %s the only other allowed " | ||||||
|             wgpu::BufferUsage::MapRead, kMapReadAllowedUsages); |             "usage is %s.", | ||||||
|  |             usage, wgpu::BufferUsage::MapRead, wgpu::BufferUsage::CopyDst); | ||||||
| 
 | 
 | ||||||
|         DAWN_INVALID_IF(descriptor->mappedAtCreation && descriptor->size % 4 != 0, |         DAWN_INVALID_IF(descriptor->mappedAtCreation && descriptor->size % 4 != 0, | ||||||
|                         "Buffer is mapped at creation but its size (%u) is not a multiple of 4.", |                         "Buffer is mapped at creation but its size (%u) is not a multiple of 4.", | ||||||
|  | |||||||
| @ -238,6 +238,8 @@ namespace dawn_native { | |||||||
|             return {}; |             return {}; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         DAWN_INVALID_IF(aspects[VALIDATION_ASPECT_PIPELINE], "No pipeline set."); | ||||||
|  | 
 | ||||||
|         if (DAWN_UNLIKELY(aspects[VALIDATION_ASPECT_INDEX_BUFFER])) { |         if (DAWN_UNLIKELY(aspects[VALIDATION_ASPECT_INDEX_BUFFER])) { | ||||||
|             DAWN_INVALID_IF(!mIndexBufferSet, "Index buffer was not set."); |             DAWN_INVALID_IF(!mIndexBufferSet, "Index buffer was not set."); | ||||||
| 
 | 
 | ||||||
| @ -263,15 +265,43 @@ namespace dawn_native { | |||||||
| 
 | 
 | ||||||
|         if (DAWN_UNLIKELY(aspects[VALIDATION_ASPECT_BIND_GROUPS])) { |         if (DAWN_UNLIKELY(aspects[VALIDATION_ASPECT_BIND_GROUPS])) { | ||||||
|             for (BindGroupIndex i : IterateBitSet(mLastPipelineLayout->GetBindGroupLayoutsMask())) { |             for (BindGroupIndex i : IterateBitSet(mLastPipelineLayout->GetBindGroupLayoutsMask())) { | ||||||
|  |                 ASSERT(HasPipeline()); | ||||||
|  | 
 | ||||||
|                 DAWN_INVALID_IF(mBindgroups[i] == nullptr, "No bind group set at index %u.", |                 DAWN_INVALID_IF(mBindgroups[i] == nullptr, "No bind group set at index %u.", | ||||||
|                                 static_cast<uint32_t>(i)); |                                 static_cast<uint32_t>(i)); | ||||||
| 
 | 
 | ||||||
|  |                 BindGroupLayoutBase* requiredBGL = mLastPipelineLayout->GetBindGroupLayout(i); | ||||||
|  |                 BindGroupLayoutBase* currentBGL = mBindgroups[i]->GetLayout(); | ||||||
|  | 
 | ||||||
|  |                 DAWN_INVALID_IF( | ||||||
|  |                     requiredBGL->GetPipelineCompatibilityToken() != PipelineCompatibilityToken(0) && | ||||||
|  |                         currentBGL->GetPipelineCompatibilityToken() != | ||||||
|  |                             requiredBGL->GetPipelineCompatibilityToken(), | ||||||
|  |                     "The current pipeline (%s) was created with a default layout, and is not " | ||||||
|  |                     "compatible with the %s at index %u which uses a %s that was not created by " | ||||||
|  |                     "the pipeline. Either use the bind group layout returned by calling " | ||||||
|  |                     "getBindGroupLayout(%u) on the pipeline when creating the bind group, or " | ||||||
|  |                     "provide an explicit pipeline layout when creating the pipeline.", | ||||||
|  |                     mLastPipeline, mBindgroups[i], static_cast<uint32_t>(i), currentBGL, | ||||||
|  |                     static_cast<uint32_t>(i)); | ||||||
|  | 
 | ||||||
|  |                 DAWN_INVALID_IF( | ||||||
|  |                     requiredBGL->GetPipelineCompatibilityToken() == PipelineCompatibilityToken(0) && | ||||||
|  |                         currentBGL->GetPipelineCompatibilityToken() != | ||||||
|  |                             PipelineCompatibilityToken(0), | ||||||
|  |                     "%s at index %u uses a %s which was created as part of the default layout for " | ||||||
|  |                     "a different pipeline than the current one (%s), and as a result is not " | ||||||
|  |                     "compatible. Use an explicit bind group layout when creating bind groups and " | ||||||
|  |                     "an explicit pipeline layout when creating pipelines to share bind groups " | ||||||
|  |                     "between pipelines.", | ||||||
|  |                     mBindgroups[i], static_cast<uint32_t>(i), currentBGL, mLastPipeline); | ||||||
|  | 
 | ||||||
|                 DAWN_INVALID_IF( |                 DAWN_INVALID_IF( | ||||||
|                     mLastPipelineLayout->GetBindGroupLayout(i) != mBindgroups[i]->GetLayout(), |                     mLastPipelineLayout->GetBindGroupLayout(i) != mBindgroups[i]->GetLayout(), | ||||||
|                     "Bind group layout %s of pipeline layout %s does not match layout %s of bind " |                     "Bind group layout %s of pipeline layout %s does not match layout %s of bind " | ||||||
|                     "group %s at index %u.", |                     "group %s at index %u.", | ||||||
|                     mLastPipelineLayout->GetBindGroupLayout(i), mLastPipelineLayout, |                     requiredBGL, mLastPipelineLayout, currentBGL, mBindgroups[i], | ||||||
|                     mBindgroups[i]->GetLayout(), mBindgroups[i], static_cast<uint32_t>(i)); |                     static_cast<uint32_t>(i)); | ||||||
| 
 | 
 | ||||||
|                 // TODO(dawn:563): Report the binding sizes and which ones are failing.
 |                 // TODO(dawn:563): Report the binding sizes and which ones are failing.
 | ||||||
|                 DAWN_INVALID_IF(!BufferSizesAtLeastAsBig(mBindgroups[i]->GetUnverifiedBufferSizes(), |                 DAWN_INVALID_IF(!BufferSizesAtLeastAsBig(mBindgroups[i]->GetUnverifiedBufferSizes(), | ||||||
| @ -288,8 +318,6 @@ namespace dawn_native { | |||||||
|             return DAWN_FORMAT_VALIDATION_ERROR("Bind groups are invalid."); |             return DAWN_FORMAT_VALIDATION_ERROR("Bind groups are invalid."); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         DAWN_INVALID_IF(aspects[VALIDATION_ASPECT_PIPELINE], "No pipeline set."); |  | ||||||
| 
 |  | ||||||
|         UNREACHABLE(); |         UNREACHABLE(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user