[dawn][headers] Removes InstanceDescriptor.features.

- Now that downstream users have migrated off of the rename,
  just remove the leftover struct member.

Bug: 383821628
Change-Id: I1abfa2ec41f62a65db4a54d105f87d1f6b5142b1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/223895
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Shrek Shao <shrekshao@google.com>
diff --git a/docs/quickstart-cmake.md b/docs/quickstart-cmake.md
index 00881b2..1f8f6b7 100644
--- a/docs/quickstart-cmake.md
+++ b/docs/quickstart-cmake.md
@@ -70,7 +70,7 @@
 
 int main(int argc, char *argv[]) {
   wgpu::InstanceDescriptor instanceDescriptor{};
-  instanceDescriptor.features.timedWaitAnyEnable = true;
+  instanceDescriptor.capabilities.timedWaitAnyEnable = true;
   wgpu::Instance instance = wgpu::CreateInstance(&instanceDescriptor);
   if (instance == nullptr) {
     std::cerr << "Instance creation failed!\n";
diff --git a/src/dawn/dawn.json b/src/dawn/dawn.json
index ec1fab8..d8385c1 100644
--- a/src/dawn/dawn.json
+++ b/src/dawn/dawn.json
@@ -2451,8 +2451,7 @@
         "category": "structure",
         "extensible": "in",
         "members": [
-            {"name": "capabilities", "type": "instance capabilities"},
-            {"name": "features", "type": "instance capabilities"}
+            {"name": "capabilities", "type": "instance capabilities"}
         ]
     },
     "get instance capabilities": {
diff --git a/src/dawn/native/EventManager.cpp b/src/dawn/native/EventManager.cpp
index 8183497..835f92c 100644
--- a/src/dawn/native/EventManager.cpp
+++ b/src/dawn/native/EventManager.cpp
@@ -293,11 +293,9 @@
 
 MaybeError EventManager::Initialize(const UnpackedPtr<InstanceDescriptor>& descriptor) {
     if (descriptor) {
-        mTimedWaitAnyEnable =
-            descriptor->capabilities.timedWaitAnyEnable || descriptor->features.timedWaitAnyEnable;
+        mTimedWaitAnyEnable = descriptor->capabilities.timedWaitAnyEnable;
         mTimedWaitAnyMaxCount =
-            std::max({kTimedWaitAnyMaxCountDefault, descriptor->capabilities.timedWaitAnyMaxCount,
-                      descriptor->features.timedWaitAnyMaxCount});
+            std::max(kTimedWaitAnyMaxCountDefault, descriptor->capabilities.timedWaitAnyMaxCount);
     }
     if (mTimedWaitAnyMaxCount > kTimedWaitAnyMaxCountDefault) {
         // We don't yet support a higher timedWaitAnyMaxCount because it would be complicated
diff --git a/src/dawn/wire/client/Instance.cpp b/src/dawn/wire/client/Instance.cpp
index 2592d62..e4218fb 100644
--- a/src/dawn/wire/client/Instance.cpp
+++ b/src/dawn/wire/client/Instance.cpp
@@ -144,12 +144,11 @@
         return WireResult::Success;
     }
 
-    if (descriptor->capabilities.timedWaitAnyEnable || descriptor->features.timedWaitAnyEnable) {
+    if (descriptor->capabilities.timedWaitAnyEnable) {
         dawn::ErrorLog() << "Wire client instance doesn't support timedWaitAnyEnable = true";
         return WireResult::FatalError;
     }
-    if (descriptor->capabilities.timedWaitAnyMaxCount > 0 ||
-        descriptor->features.timedWaitAnyMaxCount > 0) {
+    if (descriptor->capabilities.timedWaitAnyMaxCount > 0) {
         dawn::ErrorLog() << "Wire client instance doesn't support non-zero timedWaitAnyMaxCount";
         return WireResult::FatalError;
     }