Emit float32-blendable deprecation warning in DevTools
This CL makes sure the float32-blendable deprecation warning
shows up in DevTools by using device->EmitWarningOnce() instead
of device->GetInstance()->EmitDeprecationWarning.
Bug: 364987733
Change-Id: I16dff5cb3c62dba88065142b7d1eeb598cdfa5ba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/211154
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Fr (se prononce Freu) <beaufort.francois@gmail.com>
diff --git a/src/dawn/native/Device.cpp b/src/dawn/native/Device.cpp
index fd8f037..4b92d19 100644
--- a/src/dawn/native/Device.cpp
+++ b/src/dawn/native/Device.cpp
@@ -1885,9 +1885,9 @@
++mLazyClearCountForTesting;
}
-void DeviceBase::EmitWarningOnce(const std::string& message) {
- if (mWarnings.insert(message).second) {
- this->EmitLog(WGPULoggingType_Warning, message.c_str());
+void DeviceBase::EmitWarningOnce(std::string_view message) {
+ if (mWarnings.insert(std::string{message}).second) {
+ this->EmitLog(WGPULoggingType_Warning, message);
}
}
diff --git a/src/dawn/native/Device.h b/src/dawn/native/Device.h
index 7979f28..ebb92c2 100644
--- a/src/dawn/native/Device.h
+++ b/src/dawn/native/Device.h
@@ -355,7 +355,7 @@
size_t GetLazyClearCountForTesting();
void IncrementLazyClearCountForTesting();
- void EmitWarningOnce(const std::string& message);
+ void EmitWarningOnce(std::string_view message);
void EmitLog(std::string_view message);
void EmitLog(WGPULoggingType loggingType, std::string_view message);
void EmitCompilationLog(const ShaderModuleBase* module);
diff --git a/src/dawn/native/RenderPipeline.cpp b/src/dawn/native/RenderPipeline.cpp
index d7827aa..49f9c8b 100644
--- a/src/dawn/native/RenderPipeline.cpp
+++ b/src/dawn/native/RenderPipeline.cpp
@@ -29,6 +29,7 @@
#include <algorithm>
#include <cmath>
+#include <string>
#include "absl/strings/str_format.h"
#include "dawn/common/BitSetIterator.h"
@@ -516,10 +517,11 @@
!(format->GetAspectInfo(Aspect::Color).supportedSampleTypes & SampleTypeBit::Float),
"Blending is enabled but color format (%s) is not blendable.", format->format);
- device->GetInstance()->EmitDeprecationWarning(absl::StrFormat(
+ std::string warning = absl::StrFormat(
"Blending for color format (%s) requires the %s feature. Enabling "
"blendability with %s was an implementation bug and is deprecated.",
- format->format, ToAPI(Feature::Float32Blendable), ToAPI(Feature::Float32Filterable)));
+ format->format, ToAPI(Feature::Float32Blendable), ToAPI(Feature::Float32Filterable));
+ device->EmitWarningOnce(warning.c_str());
}
if (!fragmentWritten) {
diff --git a/src/dawn/native/Texture.cpp b/src/dawn/native/Texture.cpp
index 8232ea5..aa24c90 100644
--- a/src/dawn/native/Texture.cpp
+++ b/src/dawn/native/Texture.cpp
@@ -1378,7 +1378,7 @@
"usages on texture views when the view format is not compatible with all inherited "
"texture usages.",
this, mFormat->format, inheritedUsage);
- GetDevice()->EmitLog(WGPULoggingType_Warning, warning.c_str());
+ GetDevice()->EmitWarningOnce(warning.c_str());
}
}
diff --git a/src/dawn/tests/unittests/validation/RenderPipelineValidationTests.cpp b/src/dawn/tests/unittests/validation/RenderPipelineValidationTests.cpp
index 9e8531b..7f6ccc2 100644
--- a/src/dawn/tests/unittests/validation/RenderPipelineValidationTests.cpp
+++ b/src/dawn/tests/unittests/validation/RenderPipelineValidationTests.cpp
@@ -556,8 +556,10 @@
}
};
-// Tests that blending a float32 color formats without the float32-blendable feature emits a
-// deprecation warning with the float32-filterable feature.
+// TODO(crbug.com/364987733): Remove this test once float filterable texture types
+// are not considered blendable.
+// Tests that blending a float32 color formats without the float32-blendable feature
+// is still valid with the float32-filterable feature.
TEST_F(Float32FilterableValidationTest, Float32BlendableFormatsWithoutFeature) {
for (const auto f32Format : {wgpu::TextureFormat::R32Float, wgpu::TextureFormat::RG32Float,
wgpu::TextureFormat::RGBA32Float}) {
@@ -567,7 +569,7 @@
descriptor.cTargets[0].blend = &descriptor.cBlends[0];
descriptor.cTargets[0].format = f32Format;
- EXPECT_DEPRECATION_WARNING(device.CreateRenderPipeline(&descriptor));
+ device.CreateRenderPipeline(&descriptor);
}
}