mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-13 23:26:24 +00:00
Make TextureFormat/ViewDimension::None Undefined and value 0.
This matches the conclusion the changes in the webgpu-header pull request where we discussed these values: https://github.com/webgpu-native/webgpu-headers/pull/5 BUG=dawn:22 Bug=dawn:214 Change-Id: I7e9168c2b5e09dcb4c1882725a5cc0580a73d853 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/10860 Reviewed-by: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
3bcb567d8f
commit
d55bd7ad94
@@ -134,7 +134,7 @@ namespace dawn_native {
|
||||
}
|
||||
|
||||
bool AttachmentState::HasDepthStencilAttachment() const {
|
||||
return mDepthStencilFormat != dawn::TextureFormat::None;
|
||||
return mDepthStencilFormat != dawn::TextureFormat::Undefined;
|
||||
}
|
||||
|
||||
dawn::TextureFormat AttachmentState::GetDepthStencilFormat() const {
|
||||
|
||||
@@ -51,8 +51,8 @@ namespace dawn_native {
|
||||
protected:
|
||||
std::bitset<kMaxColorAttachments> mColorAttachmentsSet;
|
||||
std::array<dawn::TextureFormat, kMaxColorAttachments> mColorFormats;
|
||||
// Default (texture format None) indicates there is no depth stencil attachment.
|
||||
dawn::TextureFormat mDepthStencilFormat = dawn::TextureFormat::None;
|
||||
// Default (texture format Undefined) indicates there is no depth stencil attachment.
|
||||
dawn::TextureFormat mDepthStencilFormat = dawn::TextureFormat::Undefined;
|
||||
uint32_t mSampleCount = 0;
|
||||
};
|
||||
|
||||
|
||||
@@ -64,9 +64,13 @@ namespace dawn_native {
|
||||
// Implementation details of the format table of the DeviceBase
|
||||
|
||||
// For the enum for formats are packed but this might change when we have a broader extension
|
||||
// mechanism for webgpu.h
|
||||
// mechanism for webgpu.h. Formats start at 1 because 0 is the undefined format.
|
||||
size_t ComputeFormatIndex(dawn::TextureFormat format) {
|
||||
return static_cast<size_t>(static_cast<uint32_t>(format));
|
||||
// This takes advantage of overflows to make the index of TextureFormat::Undefined outside
|
||||
// of the range of the FormatTable.
|
||||
static_assert(static_cast<uint32_t>(dawn::TextureFormat::Undefined) - 1 > kKnownFormatCount,
|
||||
"");
|
||||
return static_cast<size_t>(static_cast<uint32_t>(format) - 1);
|
||||
}
|
||||
|
||||
FormatTable BuildFormatTable(const DeviceBase* device) {
|
||||
|
||||
@@ -60,7 +60,7 @@ namespace dawn_native {
|
||||
}
|
||||
|
||||
if (descriptor->colorFormatsCount == 0 &&
|
||||
descriptor->depthStencilFormat == dawn::TextureFormat::None) {
|
||||
descriptor->depthStencilFormat == dawn::TextureFormat::Undefined) {
|
||||
return DAWN_VALIDATION_ERROR("Should have at least one attachment format");
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace dawn_native {
|
||||
DAWN_TRY(ValidateColorAttachmentFormat(device, descriptor->colorFormats[i]));
|
||||
}
|
||||
|
||||
if (descriptor->depthStencilFormat != dawn::TextureFormat::None) {
|
||||
if (descriptor->depthStencilFormat != dawn::TextureFormat::Undefined) {
|
||||
DAWN_TRY(ValidateDepthStencilAttachmentFormat(device, descriptor->depthStencilFormat));
|
||||
}
|
||||
|
||||
|
||||
@@ -282,10 +282,10 @@ namespace dawn_native {
|
||||
desc = *descriptor;
|
||||
}
|
||||
|
||||
if (desc.format == dawn::TextureFormat::None) {
|
||||
if (desc.format == dawn::TextureFormat::Undefined) {
|
||||
desc.format = texture->GetFormat().format;
|
||||
}
|
||||
if (desc.dimension == dawn::TextureViewDimension::None) {
|
||||
if (desc.dimension == dawn::TextureViewDimension::Undefined) {
|
||||
desc.dimension = GetDefaultViewDimension(texture);
|
||||
}
|
||||
if (desc.arrayLayerCount == 0) {
|
||||
|
||||
@@ -585,16 +585,18 @@ TEST_F(RenderBundleValidationTest, RequiresAtLeastOneTextureFormat) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(RenderBundleValidationTest, ColorFormatNone) {
|
||||
// Test that render bundle color formats cannot be set to undefined.
|
||||
TEST_F(RenderBundleValidationTest, ColorFormatUndefined) {
|
||||
utils::ComboRenderBundleEncoderDescriptor desc = {};
|
||||
desc.colorFormatsCount = 1;
|
||||
desc.cColorFormats[0] = dawn::TextureFormat::None;
|
||||
desc.cColorFormats[0] = dawn::TextureFormat::Undefined;
|
||||
ASSERT_DEVICE_ERROR(device.CreateRenderBundleEncoder(&desc));
|
||||
}
|
||||
|
||||
TEST_F(RenderBundleValidationTest, DepthStencilFormatNone) {
|
||||
// Test that the render bundle depth stencil format cannot be set to undefined.
|
||||
TEST_F(RenderBundleValidationTest, DepthStencilFormatUndefined) {
|
||||
utils::ComboRenderBundleEncoderDescriptor desc = {};
|
||||
desc.depthStencilFormat = dawn::TextureFormat::None;
|
||||
desc.depthStencilFormat = dawn::TextureFormat::Undefined;
|
||||
ASSERT_DEVICE_ERROR(device.CreateRenderBundleEncoder(&desc));
|
||||
}
|
||||
|
||||
|
||||
@@ -257,10 +257,10 @@ TEST_F(TextureValidationTest, NonRenderableAndOutputAttachment) {
|
||||
}
|
||||
}
|
||||
|
||||
// Test it is an error to create a texture with format "None".
|
||||
TEST_F(TextureValidationTest, TextureFormatNone) {
|
||||
// Test it is an error to create a texture with format "Undefined".
|
||||
TEST_F(TextureValidationTest, TextureFormatUndefined) {
|
||||
dawn::TextureDescriptor descriptor = CreateDefaultTextureDescriptor();
|
||||
descriptor.format = dawn::TextureFormat::None;
|
||||
descriptor.format = dawn::TextureFormat::Undefined;
|
||||
ASSERT_DEVICE_ERROR(device.CreateTexture(&descriptor));
|
||||
}
|
||||
|
||||
|
||||
@@ -187,7 +187,7 @@ TEST_F(TextureViewValidationTest, TextureViewDescriptorDefaultsArray) {
|
||||
}
|
||||
{
|
||||
dawn::TextureViewDescriptor descriptor;
|
||||
descriptor.format = dawn::TextureFormat::None;
|
||||
descriptor.format = dawn::TextureFormat::Undefined;
|
||||
texture.CreateView(&descriptor);
|
||||
descriptor.format = dawn::TextureFormat::RGBA8Unorm;
|
||||
texture.CreateView(&descriptor);
|
||||
@@ -196,7 +196,7 @@ TEST_F(TextureViewValidationTest, TextureViewDescriptorDefaultsArray) {
|
||||
}
|
||||
{
|
||||
dawn::TextureViewDescriptor descriptor;
|
||||
descriptor.dimension = dawn::TextureViewDimension::None;
|
||||
descriptor.dimension = dawn::TextureViewDimension::Undefined;
|
||||
texture.CreateView(&descriptor);
|
||||
descriptor.dimension = dawn::TextureViewDimension::e2DArray;
|
||||
texture.CreateView(&descriptor);
|
||||
@@ -225,7 +225,7 @@ TEST_F(TextureViewValidationTest, TextureViewDescriptorDefaultsNonArray) {
|
||||
}
|
||||
{
|
||||
dawn::TextureViewDescriptor descriptor;
|
||||
descriptor.format = dawn::TextureFormat::None;
|
||||
descriptor.format = dawn::TextureFormat::Undefined;
|
||||
texture.CreateView(&descriptor);
|
||||
descriptor.format = dawn::TextureFormat::RGBA8Unorm;
|
||||
texture.CreateView(&descriptor);
|
||||
@@ -234,7 +234,7 @@ TEST_F(TextureViewValidationTest, TextureViewDescriptorDefaultsNonArray) {
|
||||
}
|
||||
{
|
||||
dawn::TextureViewDescriptor descriptor;
|
||||
descriptor.dimension = dawn::TextureViewDimension::None;
|
||||
descriptor.dimension = dawn::TextureViewDimension::Undefined;
|
||||
texture.CreateView(&descriptor);
|
||||
descriptor.dimension = dawn::TextureViewDimension::e2D;
|
||||
texture.CreateView(&descriptor);
|
||||
|
||||
Reference in New Issue
Block a user