[YCbCr Samplers] Add SampleTypeBit::External This adds SampleTypeBit::External and adds support in AddConditionalColorFormat. Note: It does not add corresponding wgpu::TextureSampleType as we only need it internally and does not need to be exposed. Accordingly it is set to a high value for future SampleTypeBit that can be added. Change-Id: I68fef904d3963910e96146a973d333d87365dab5 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/190160 Commit-Queue: Saifuddin Hitawala <hitawala@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org>
diff --git a/src/dawn/native/Format.cpp b/src/dawn/native/Format.cpp index 0af9b9f..75c54d9 100644 --- a/src/dawn/native/Format.cpp +++ b/src/dawn/native/Format.cpp
@@ -266,6 +266,7 @@ switch (sampleTypes) { case SampleTypeBit::Float: case SampleTypeBit::UnfilterableFloat: + case SampleTypeBit::External: firstAspect->baseType = TextureComponentType::Float; break; case SampleTypeBit::Sint:
diff --git a/src/dawn/native/Format.h b/src/dawn/native/Format.h index 1cabb2d..ca94056 100644 --- a/src/dawn/native/Format.h +++ b/src/dawn/native/Format.h
@@ -64,6 +64,9 @@ class DeviceBase; // This mirrors wgpu::TextureSampleType as a bitmask instead. +// NOTE: SampleTypeBit::External does not have an equivalent TextureSampleType. All future +// additions to SampleTypeBit that have an equivalent TextureSampleType should use +// SampleTypeBit::External's value and update SampleTypeBit::External to a higher value. enum class SampleTypeBit : uint8_t { None = 0x0, Float = 0x1, @@ -71,6 +74,7 @@ Depth = 0x4, Sint = 0x8, Uint = 0x10, + External = 0x20, }; // Converts a wgpu::TextureSampleType to its bitmask representation.