Remove WGSL extension `chromium_internal_dual_source_blending`
This patch removes `chromium_internal_dual_source_blending` from
Dawn after the removal of its last reference in Skia.
This patch also removes the `[dawn]` tag on the blend factors with
`Src1` as the proposal to add dual source blending in WebGPU is
very close to be accepted.
Bug: chromium:341973423
Change-Id: Id661595b3528e1d0a63a62b30efcc94759fe5671
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/191761
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/src/dawn/dawn.json b/src/dawn/dawn.json
index 8188df3..9dc6374 100644
--- a/src/dawn/dawn.json
+++ b/src/dawn/dawn.json
@@ -556,7 +556,6 @@
},
"blend factor": {
"category": "enum",
- "_comment": "TODO(github.com/gpuweb/gpuweb/issues/4283): make sure the dual source blending names match the spec when it lands, and remove the tags.",
"values": [
{"value": 0, "name": "undefined", "jsrepr": "undefined"},
{"value": 1, "name": "zero"},
@@ -572,10 +571,10 @@
{"value": 11, "name": "src alpha saturated"},
{"value": 12, "name": "constant"},
{"value": 13, "name": "one minus constant"},
- {"value": 14, "name": "src1", "tags": ["dawn"]},
- {"value": 15, "name": "one minus src1", "tags": ["dawn"]},
- {"value": 16, "name": "src1 alpha", "tags": ["dawn"]},
- {"value": 17, "name": "one minus src1 alpha", "tags": ["dawn"]}
+ {"value": 14, "name": "src1"},
+ {"value": 15, "name": "one minus src1"},
+ {"value": 16, "name": "src1 alpha"},
+ {"value": 17, "name": "one minus src1 alpha"}
]
},
"blend operation": {
diff --git a/src/dawn/native/Device.cpp b/src/dawn/native/Device.cpp
index ad32632..713a6eb 100644
--- a/src/dawn/native/Device.cpp
+++ b/src/dawn/native/Device.cpp
@@ -1802,8 +1802,6 @@
mWGSLAllowedFeatures.extensions.insert(tint::wgsl::Extension::kChromiumInternalGraphite);
}
if (mEnabledFeatures.IsEnabled(Feature::DualSourceBlending)) {
- mWGSLAllowedFeatures.extensions.insert(
- tint::wgsl::Extension::kChromiumInternalDualSourceBlending);
mWGSLAllowedFeatures.extensions.insert(tint::wgsl::Extension::kDualSourceBlending);
}
if (mEnabledFeatures.IsEnabled(Feature::PixelLocalStorageNonCoherent) ||
diff --git a/src/tint/cmd/fuzz/wgsl/dictionary.txt b/src/tint/cmd/fuzz/wgsl/dictionary.txt
index 1adc488..4a0055d 100644
--- a/src/tint/cmd/fuzz/wgsl/dictionary.txt
+++ b/src/tint/cmd/fuzz/wgsl/dictionary.txt
@@ -160,7 +160,6 @@
"chromium_experimental_pixel_local"
"chromium_experimental_push_constant"
"chromium_experimental_subgroups"
-"chromium_internal_dual_source_blending"
"chromium_internal_graphite"
"chromium_internal_input_attachments"
"chromium_internal_relaxed_uniform_layout"
diff --git a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
index c71943c..513d70b 100644
--- a/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/glsl/writer/ast_printer/ast_printer.cc
@@ -287,7 +287,6 @@
Vector{
wgsl::Extension::kChromiumDisableUniformityAnalysis,
wgsl::Extension::kChromiumExperimentalPushConstant,
- wgsl::Extension::kChromiumInternalDualSourceBlending,
wgsl::Extension::kChromiumInternalGraphite,
wgsl::Extension::kF16,
wgsl::Extension::kDualSourceBlending,
@@ -389,8 +388,7 @@
requires_f16_extension_ = true;
}
- if (enable->HasExtension(wgsl::Extension::kChromiumInternalDualSourceBlending) ||
- enable->HasExtension(wgsl::Extension::kDualSourceBlending)) {
+ if (enable->HasExtension(wgsl::Extension::kDualSourceBlending)) {
requires_dual_source_blending_extension_ = true;
}
}
diff --git a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
index b70890f..f528764 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc
@@ -396,7 +396,6 @@
wgsl::Extension::kChromiumExperimentalPixelLocal,
wgsl::Extension::kChromiumExperimentalPushConstant,
wgsl::Extension::kChromiumExperimentalSubgroups,
- wgsl::Extension::kChromiumInternalDualSourceBlending,
wgsl::Extension::kChromiumInternalGraphite,
wgsl::Extension::kF16,
wgsl::Extension::kDualSourceBlending,
diff --git a/src/tint/lang/msl/writer/ast_printer/ast_printer.cc b/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
index 6fb4080..266d26d 100644
--- a/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
+++ b/src/tint/lang/msl/writer/ast_printer/ast_printer.cc
@@ -284,7 +284,6 @@
wgsl::Extension::kChromiumExperimentalFramebufferFetch,
wgsl::Extension::kChromiumExperimentalPixelLocal,
wgsl::Extension::kChromiumExperimentalSubgroups,
- wgsl::Extension::kChromiumInternalDualSourceBlending,
wgsl::Extension::kChromiumInternalGraphite,
wgsl::Extension::kChromiumInternalRelaxedUniformLayout,
wgsl::Extension::kF16,
diff --git a/src/tint/lang/spirv/writer/ast_printer/builder.cc b/src/tint/lang/spirv/writer/ast_printer/builder.cc
index 668015c..890968d 100644
--- a/src/tint/lang/spirv/writer/ast_printer/builder.cc
+++ b/src/tint/lang/spirv/writer/ast_printer/builder.cc
@@ -280,7 +280,6 @@
wgsl::Extension::kChromiumDisableUniformityAnalysis,
wgsl::Extension::kChromiumExperimentalPushConstant,
wgsl::Extension::kChromiumExperimentalSubgroups,
- wgsl::Extension::kChromiumInternalDualSourceBlending,
wgsl::Extension::kChromiumInternalGraphite,
wgsl::Extension::kChromiumInternalInputAttachments,
wgsl::Extension::kF16,
diff --git a/src/tint/lang/wgsl/extension.cc b/src/tint/lang/wgsl/extension.cc
index 395a0a4..25bd7ba 100644
--- a/src/tint/lang/wgsl/extension.cc
+++ b/src/tint/lang/wgsl/extension.cc
@@ -57,9 +57,6 @@
if (str == "chromium_experimental_subgroups") {
return Extension::kChromiumExperimentalSubgroups;
}
- if (str == "chromium_internal_dual_source_blending") {
- return Extension::kChromiumInternalDualSourceBlending;
- }
if (str == "chromium_internal_graphite") {
return Extension::kChromiumInternalGraphite;
}
@@ -92,8 +89,6 @@
return "chromium_experimental_push_constant";
case Extension::kChromiumExperimentalSubgroups:
return "chromium_experimental_subgroups";
- case Extension::kChromiumInternalDualSourceBlending:
- return "chromium_internal_dual_source_blending";
case Extension::kChromiumInternalGraphite:
return "chromium_internal_graphite";
case Extension::kChromiumInternalInputAttachments:
diff --git a/src/tint/lang/wgsl/extension.h b/src/tint/lang/wgsl/extension.h
index dbf3ff7..ccf5429 100644
--- a/src/tint/lang/wgsl/extension.h
+++ b/src/tint/lang/wgsl/extension.h
@@ -51,7 +51,6 @@
kChromiumExperimentalPixelLocal,
kChromiumExperimentalPushConstant,
kChromiumExperimentalSubgroups,
- kChromiumInternalDualSourceBlending,
kChromiumInternalGraphite,
kChromiumInternalInputAttachments,
kChromiumInternalRelaxedUniformLayout,
@@ -82,7 +81,6 @@
"chromium_experimental_pixel_local",
"chromium_experimental_push_constant",
"chromium_experimental_subgroups",
- "chromium_internal_dual_source_blending",
"chromium_internal_graphite",
"chromium_internal_input_attachments",
"chromium_internal_relaxed_uniform_layout",
@@ -97,7 +95,6 @@
Extension::kChromiumExperimentalPixelLocal,
Extension::kChromiumExperimentalPushConstant,
Extension::kChromiumExperimentalSubgroups,
- Extension::kChromiumInternalDualSourceBlending,
Extension::kChromiumInternalGraphite,
Extension::kChromiumInternalInputAttachments,
Extension::kChromiumInternalRelaxedUniformLayout,
diff --git a/src/tint/lang/wgsl/extension_bench.cc b/src/tint/lang/wgsl/extension_bench.cc
index 18731c7..c0f6ce0 100644
--- a/src/tint/lang/wgsl/extension_bench.cc
+++ b/src/tint/lang/wgsl/extension_bench.cc
@@ -80,48 +80,41 @@
"chromium_exprimenal_ubgrouoos",
"chrmiumexperimenzzal_subgroups",
"chrmi11m_experppmeiita_subgroups",
- "chromium_internal_dual_sourcXX_blending",
- "chromium_internal_dual_99ou5IInce_blending",
- "crrroSSium_internYlaadual_source_bHHending",
- "chromium_internal_dual_source_blending",
- "chromium_internakk_ualsourc_blendHng",
- "chromium_inRRrnal_dujl_sourceblgnding",
- "chromiuminternal_duab_source_blendin",
- "chromiumjinternal_graphite",
- "chromium_inernal_graphite",
- "cromiu_internaq_graphite",
+ "chXXomium_internal_graphite",
+ "chromi55m_internnal_gra99hiIIe",
+ "chSSomiuY_internal_aarHHphrrte",
"chromium_internal_graphite",
- "chromium_intenalNNgraphite",
- "chromiuminternal_gvaphite",
- "chromium_internal_grphitQQ",
- "chromirm_ffnternalinpt_attachments",
- "chromium_internal_input_attachmenjs",
- "chwwomiu2_interNNal_inpu_att8chments",
+ "kkhromium_nternal_rahHte",
+ "chromium_nRegnaj_graphite",
+ "chromium_ntebnal_gaphite",
+ "chromium_internal_input_atjachments",
+ "chromium_internal_inpt_attachments",
+ "chromium_nteral_iqput_attachments",
"chromium_internal_input_attachments",
- "chromium_internalinput_attachments",
- "crrromium_internal_input_attachments",
- "Ghromium_internal_input_attachments",
- "chromium_internalFFrelaxed_uniform_layout",
- "chromEum_internal_relaxed_unifrmlyout",
- "chromium_internalrrrelaxd_uniform_layout",
+ "chromium_internal_input_aNNtachents",
+ "chromium_internalinpt_attavvhments",
+ "chromium_internal_inut_attacQQments",
+ "chromirm_intenal_rfflaxed_unifrm_layout",
+ "chromium_internal_jelaxed_uniform_layout",
+ "chromium_interna_relNNxed_uwwiform_lay82t",
"chromium_internal_relaxed_uniform_layout",
- "chromiuminternal_relaxed_uniform_layut",
- "cXroDium_internal_rJJlaed_uniform_layout",
- "chromium_int8nal_relaed_uniform_layut",
- "dul_okrc_blen11ing",
- "dua_source_blending",
- "duJl_source_blendig",
+ "chromium_internal_relaxed_uniform_layut",
+ "chromium_internal_relaxed_rrniform_layout",
+ "chromium_internal_relaxedGuniform_layout",
+ "dual_source_blendFFng",
+ "dEl_surce_bending",
+ "drra_source_blending",
"dual_source_blending",
- "dual_source_clending",
- "dual_sOurce_blending",
- "dualKKs__urce_blttvnding",
- "xx8",
- "__F",
- "f1q",
+ "dual_suce_blending",
+ "dul_DoXrcJJ_blending",
+ "dul_source_lening",
+ "k",
+ "16",
+ "J1",
"f16",
- "331O",
- "ftt6QQ",
- "666",
+ "c16",
+ "fO6",
+ "_KKttvv",
};
for (auto _ : state) {
for (auto* str : kStrings) {
diff --git a/src/tint/lang/wgsl/extension_test.cc b/src/tint/lang/wgsl/extension_test.cc
index 0237bd5..2e2dba4 100644
--- a/src/tint/lang/wgsl/extension_test.cc
+++ b/src/tint/lang/wgsl/extension_test.cc
@@ -62,7 +62,6 @@
{"chromium_experimental_pixel_local", Extension::kChromiumExperimentalPixelLocal},
{"chromium_experimental_push_constant", Extension::kChromiumExperimentalPushConstant},
{"chromium_experimental_subgroups", Extension::kChromiumExperimentalSubgroups},
- {"chromium_internal_dual_source_blending", Extension::kChromiumInternalDualSourceBlending},
{"chromium_internal_graphite", Extension::kChromiumInternalGraphite},
{"chromium_internal_input_attachments", Extension::kChromiumInternalInputAttachments},
{"chromium_internal_relaxed_uniform_layout", Extension::kChromiumInternalRelaxedUniformLayout},
@@ -86,24 +85,21 @@
{"chromiuX_experimentl_sugggroups", Extension::kUndefined},
{"chromiu_exuerimntal_XVbgroups", Extension::kUndefined},
{"chromium_experimen3al_subgroups", Extension::kUndefined},
- {"chromium_internal_dual_soErce_blending", Extension::kUndefined},
- {"chromiuPP_internal_dual_sourceblenTTing", Extension::kUndefined},
- {"chromim_internadd_dual_sxxurce_blending", Extension::kUndefined},
- {"chromi44m_internal_graphite", Extension::kUndefined},
- {"chromSSuVV_internal_graphite", Extension::kUndefined},
- {"cRromium_nternR22_graphite", Extension::kUndefined},
- {"chromium_int9rnaF_inpu_attachments", Extension::kUndefined},
- {"chrmium_internal_input_attachments", Extension::kUndefined},
- {"cOOromium_internVlHinput_ttachRRents", Extension::kUndefined},
- {"chromium_internl_relaxyd_uniform_layout", Extension::kUndefined},
- {"chromnnum_internrr77_Gelaxell_uniform_layout", Extension::kUndefined},
- {"chromium_intern4l_relaxe00_uniform_layout", Extension::kUndefined},
- {"dua_ource_bledoong", Extension::kUndefined},
- {"dualsorce_blendzzng", Extension::kUndefined},
- {"ua_sopiirce_bl11nding", Extension::kUndefined},
- {"f1XX", Extension::kUndefined},
- {"55199II", Extension::kUndefined},
- {"frSSHHa", Extension::kUndefined},
+ {"chromium_internal_graphitE", Extension::kUndefined},
+ {"chromium_nternal_gTTPaphite", Extension::kUndefined},
+ {"chxxdomium_interal_graphite", Extension::kUndefined},
+ {"c44romium_internal_input_attachments", Extension::kUndefined},
+ {"chromium_internal_inputSSaVVtachments", Extension::kUndefined},
+ {"chrom22Rm_internal_input_atRchments", Extension::kUndefined},
+ {"chromium_int9rnal_relaxed_Fnifor_layout", Extension::kUndefined},
+ {"chrmium_internal_relaxed_uniform_layout", Extension::kUndefined},
+ {"VRhHomium_internal_relaxd_uniform_OOayout", Extension::kUndefined},
+ {"dual_souyce_bleding", Extension::kUndefined},
+ {"dualrrllnource_blendiG77", Extension::kUndefined},
+ {"dual00source_ble4ding", Extension::kUndefined},
+ {"5", Extension::kUndefined},
+ {"u16", Extension::kUndefined},
+ {"f", Extension::kUndefined},
};
using ExtensionParseTest = testing::TestWithParam<Case>;
diff --git a/src/tint/lang/wgsl/reader/parser/enable_directive_test.cc b/src/tint/lang/wgsl/reader/parser/enable_directive_test.cc
index 3051677..604fefc 100644
--- a/src/tint/lang/wgsl/reader/parser/enable_directive_test.cc
+++ b/src/tint/lang/wgsl/reader/parser/enable_directive_test.cc
@@ -205,7 +205,7 @@
// Error when unknown extension found
EXPECT_TRUE(p->has_error());
EXPECT_EQ(p->error(), R"(1:8: expected extension
-Possible values: 'chromium_disable_uniformity_analysis', 'chromium_experimental_framebuffer_fetch', 'chromium_experimental_pixel_local', 'chromium_experimental_push_constant', 'chromium_experimental_subgroups', 'chromium_internal_dual_source_blending', 'chromium_internal_graphite', 'chromium_internal_input_attachments', 'chromium_internal_relaxed_uniform_layout', 'dual_source_blending', 'f16')");
+Possible values: 'chromium_disable_uniformity_analysis', 'chromium_experimental_framebuffer_fetch', 'chromium_experimental_pixel_local', 'chromium_experimental_push_constant', 'chromium_experimental_subgroups', 'chromium_internal_graphite', 'chromium_internal_input_attachments', 'chromium_internal_relaxed_uniform_layout', 'dual_source_blending', 'f16')");
auto program = p->program();
auto& ast = program.AST();
EXPECT_EQ(ast.Enables().Length(), 0u);
diff --git a/src/tint/lang/wgsl/reader/reader.cc b/src/tint/lang/wgsl/reader/reader.cc
index d446964..86bacef 100644
--- a/src/tint/lang/wgsl/reader/reader.cc
+++ b/src/tint/lang/wgsl/reader/reader.cc
@@ -83,7 +83,6 @@
case tint::wgsl::Extension::kChromiumExperimentalFramebufferFetch:
case tint::wgsl::Extension::kChromiumExperimentalPixelLocal:
case tint::wgsl::Extension::kChromiumExperimentalPushConstant:
- case tint::wgsl::Extension::kChromiumInternalDualSourceBlending:
case tint::wgsl::Extension::kChromiumInternalRelaxedUniformLayout:
return true;
default:
diff --git a/src/tint/lang/wgsl/resolver/validator.cc b/src/tint/lang/wgsl/resolver/validator.cc
index 3463f9d..aaa1259 100644
--- a/src/tint/lang/wgsl/resolver/validator.cc
+++ b/src/tint/lang/wgsl/resolver/validator.cc
@@ -2490,8 +2490,7 @@
bool Validator::BlendSrcAttribute(const ast::BlendSrcAttribute* attr,
ast::PipelineStage stage,
const std::optional<bool> is_input) const {
- if (!enabled_extensions_.Contains(wgsl::Extension::kChromiumInternalDualSourceBlending) &&
- !enabled_extensions_.Contains(wgsl::Extension::kDualSourceBlending)) {
+ if (!enabled_extensions_.Contains(wgsl::Extension::kDualSourceBlending)) {
AddError(attr->source) << "use of " << style::Attribute("@blend_src")
<< " requires enabling extension "
<< style::Code("dual_source_blending");
diff --git a/src/tint/lang/wgsl/wgsl.def b/src/tint/lang/wgsl/wgsl.def
index 770c6c7..240dcb8 100644
--- a/src/tint/lang/wgsl/wgsl.def
+++ b/src/tint/lang/wgsl/wgsl.def
@@ -85,10 +85,6 @@
chromium_internal_input_attachments
// A Chromium-specific extension that relaxes memory layout requirements for uniform storage.
chromium_internal_relaxed_uniform_layout
- // A Chromium-specific extension that enables dual source blending.
- // TODO(chromium:341973423): Remove `chromium_internal_dual_source_blending` when it is totally
- // replaced with `dual_source_blending`.
- chromium_internal_dual_source_blending
// A Chromium-specific extension that enables pixel local storage.
// Cannot be used with chromium_experimental_framebuffer_fetch
chromium_experimental_pixel_local
diff --git a/test/tint/extensions/dual_source_blending/input_output.wgsl b/test/tint/extensions/dual_source_blending/input_output.wgsl
index ba9bb95..89577e0 100644
--- a/test/tint/extensions/dual_source_blending/input_output.wgsl
+++ b/test/tint/extensions/dual_source_blending/input_output.wgsl
@@ -1,4 +1,4 @@
-enable chromium_internal_dual_source_blending;
+enable dual_source_blending;
struct FragInput {
@location(0) a : vec4<f32>,
diff --git a/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.wgsl b/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.wgsl
index d6c9013..529c73c 100644
--- a/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.wgsl
+++ b/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-enable chromium_internal_dual_source_blending;
+enable dual_source_blending;
struct FragInput {
@location(0)
diff --git a/test/tint/extensions/dual_source_blending/output.wgsl b/test/tint/extensions/dual_source_blending/output.wgsl
index 3ffc701..4477ac4 100644
--- a/test/tint/extensions/dual_source_blending/output.wgsl
+++ b/test/tint/extensions/dual_source_blending/output.wgsl
@@ -1,4 +1,4 @@
-enable chromium_internal_dual_source_blending;
+enable dual_source_blending;
struct FragOutput {
@location(0) @blend_src(0) color : vec4<f32>,
diff --git a/test/tint/extensions/dual_source_blending/output.wgsl.expected.wgsl b/test/tint/extensions/dual_source_blending/output.wgsl.expected.wgsl
index e2a9123..2ef1b88 100644
--- a/test/tint/extensions/dual_source_blending/output.wgsl.expected.wgsl
+++ b/test/tint/extensions/dual_source_blending/output.wgsl.expected.wgsl
@@ -1,4 +1,4 @@
-enable chromium_internal_dual_source_blending;
+enable dual_source_blending;
struct FragOutput {
@location(0) @blend_src(0)