diff --git a/call/rtp_payload_params.cc b/call/rtp_payload_params.cc
index 3f98a58..53a4cca 100644
--- a/call/rtp_payload_params.cc
+++ b/call/rtp_payload_params.cc
@@ -131,10 +131,7 @@
     : ssrc_(ssrc),
       generic_picture_id_experiment_(
           absl::StartsWith(trials.Lookup("WebRTC-GenericPictureId"),
-                           "Enabled")),
-      simulate_generic_vp9_(
-          !absl::StartsWith(trials.Lookup("WebRTC-Vp9DependencyDescriptor"),
-                            "Disabled")) {
+                           "Enabled")) {
   for (auto& spatial_layer : last_shared_frame_id_)
     spatial_layer.fill(-1);
 
@@ -281,7 +278,7 @@
       }
       return;
     case VideoCodecType::kVideoCodecVP9:
-      if (simulate_generic_vp9_ && codec_specific_info != nullptr) {
+      if (codec_specific_info != nullptr) {
         Vp9ToGeneric(codec_specific_info->codecSpecific.VP9, frame_id,
                      *rtp_video_header);
       }
diff --git a/call/rtp_payload_params.h b/call/rtp_payload_params.h
index 23827dd..48b0ec2 100644
--- a/call/rtp_payload_params.h
+++ b/call/rtp_payload_params.h
@@ -136,7 +136,6 @@
   RtpPayloadState state_;
 
   const bool generic_picture_id_experiment_;
-  const bool simulate_generic_vp9_;
 };
 }  // namespace webrtc
 #endif  // CALL_RTP_PAYLOAD_PARAMS_H_
diff --git a/call/rtp_video_sender.cc b/call/rtp_video_sender.cc
index 39296cf..c83d697 100644
--- a/call/rtp_video_sender.cc
+++ b/call/rtp_video_sender.cc
@@ -367,9 +367,6 @@
           field_trials_.Lookup("WebRTC-Video-UseFrameRateForOverhead"),
           "Enabled")),
       has_packet_feedback_(TransportSeqNumExtensionConfigured(rtp_config)),
-      simulate_vp9_structure_(!absl::StartsWith(
-          field_trials_.Lookup("WebRTC-Vp9DependencyDescriptor"),
-          "Disabled")),
       simulate_generic_structure_(absl::StartsWith(
           field_trials_.Lookup("WebRTC-GenericCodecDependencyDescriptor"),
           "Enabled")),
@@ -576,7 +573,7 @@
     RTPSenderVideo& sender_video = *rtp_streams_[stream_index].sender_video;
     if (codec_specific_info && codec_specific_info->template_structure) {
       sender_video.SetVideoStructure(&*codec_specific_info->template_structure);
-    } else if (simulate_vp9_structure_ && codec_specific_info &&
+    } else if (codec_specific_info &&
                codec_specific_info->codecType == kVideoCodecVP9) {
       const CodecSpecificInfoVP9& vp9 = codec_specific_info->codecSpecific.VP9;
 
diff --git a/call/rtp_video_sender.h b/call/rtp_video_sender.h
index d7e1d75..704ed0e 100644
--- a/call/rtp_video_sender.h
+++ b/call/rtp_video_sender.h
@@ -168,7 +168,6 @@
   const bool send_side_bwe_with_overhead_;
   const bool use_frame_rate_for_overhead_;
   const bool has_packet_feedback_;
-  const bool simulate_vp9_structure_;
   const bool simulate_generic_structure_;
 
   // TODO(holmer): Remove mutex_ once RtpVideoSender runs on the
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
index ebe4c1e..ffbaaaa 100644
--- a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
+++ b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.cc
@@ -227,9 +227,6 @@
       first_frame_in_picture_(true),
       ss_info_needed_(false),
       force_all_active_layers_(false),
-      use_svc_controller_(
-          !absl::StartsWith(trials.Lookup("WebRTC-Vp9DependencyDescriptor"),
-                            "Disabled")),
       is_flexible_mode_(false),
       variable_framerate_experiment_(ParseVariableFramerateConfig(trials)),
       variable_framerate_controller_(
@@ -552,9 +549,7 @@
     num_temporal_layers_ = 1;
   }
 
-  if (use_svc_controller_) {
-    svc_controller_ = CreateVp9ScalabilityStructure(*inst);
-  }
+  svc_controller_ = CreateVp9ScalabilityStructure(*inst);
   framerate_controller_ = std::vector<FramerateControllerDeprecated>(
       num_spatial_layers_, FramerateControllerDeprecated(codec_.maxFramerate));
 
diff --git a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.h b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.h
index fc40189..d2f98c1 100644
--- a/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.h
+++ b/modules/video_coding/codecs/vp9/libvpx_vp9_encoder.h
@@ -150,7 +150,6 @@
   VideoBitrateAllocation current_bitrate_allocation_;
   bool ss_info_needed_;
   bool force_all_active_layers_;
-  const bool use_svc_controller_;
 
   std::unique_ptr<ScalableVideoController> svc_controller_;
   std::vector<FramerateControllerDeprecated> framerate_controller_;
diff --git a/test/fuzzers/vp9_encoder_references_fuzzer.cc b/test/fuzzers/vp9_encoder_references_fuzzer.cc
index 5acea13..a26dc87 100644
--- a/test/fuzzers/vp9_encoder_references_fuzzer.cc
+++ b/test/fuzzers/vp9_encoder_references_fuzzer.cc
@@ -176,7 +176,6 @@
   ~FieldTrials() override = default;
   std::string Lookup(absl::string_view key) const override {
     static constexpr absl::string_view kBinaryFieldTrials[] = {
-        "WebRTC-Vp9DependencyDescriptor",
         "WebRTC-Vp9ExternalRefCtrl",
         "WebRTC-Vp9IssueKeyFrameOnLayerDeactivation",
     };
