diff --git a/docs/configuration.md b/docs/configuration.md
index fb36e1593d6..9a08d0c2bd3 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -848,37 +848,6 @@ editing the `conf` file in a text editor. Use the examples as reference.
     </tr>
 </table>
 
-### gpu_preference
-
-<table>
-    <tr>
-        <td>Description</td>
-        <td colspan="2">
-            Specify the GPU preference for the Sunshine process.
-            <br>
-            <br>
-            If set to negative number (-1 by default), Sunshine will try to detect the best GPU for the streamed display, but if it fails you will get a black screen.
-            <br>
-            Setting it to 0 will allow Windows to try and select the best GPU.
-            <br>
-            Setting it to 1 and above will prioritize the GPU that matches this number (the number has to be guessed, but it starts at 1 and increases).
-            @note{Applies to Windows only.}
-        </td>
-    </tr>
-    <tr>
-        <td>Default</td>
-        <td colspan="2">@code{}
-            -1
-            @endcode</td>
-    </tr>
-    <tr>
-        <td>Example</td>
-        <td colspan="2">@code{}
-            2
-            @endcode</td>
-    </tr>
-</table>
-
 ### output_name
 
 <table>
diff --git a/src/config.cpp b/src/config.cpp
index 25a2f51eb58..40bbde61e1d 100644
--- a/src/config.cpp
+++ b/src/config.cpp
@@ -468,7 +468,6 @@ namespace config {
     {},  // capture
     {},  // encoder
     {},  // adapter_name
-    -1,  // gpu_preference
     {},  // output_name
 
     {
@@ -1122,7 +1121,6 @@ namespace config {
     string_f(vars, "capture", video.capture);
     string_f(vars, "encoder", video.encoder);
     string_f(vars, "adapter_name", video.adapter_name);
-    int_f(vars, "gpu_preference", video.gpu_preference);
     string_f(vars, "output_name", video.output_name);
 
     generic_f(vars, "dd_configuration_option", video.dd.configuration_option, dd::config_option_from_view);
diff --git a/src/config.h b/src/config.h
index c8fea38c9f0..e429f0a9918 100644
--- a/src/config.h
+++ b/src/config.h
@@ -77,7 +77,6 @@ namespace config {
     std::string capture;
     std::string encoder;
     std::string adapter_name;
-    int gpu_preference;
     std::string output_name;
 
     struct dd_t {
diff --git a/src/platform/windows/display_base.cpp b/src/platform/windows/display_base.cpp
index b52c3c3b041..3239c68b00c 100644
--- a/src/platform/windows/display_base.cpp
+++ b/src/platform/windows/display_base.cpp
@@ -386,7 +386,12 @@ namespace platf::dxgi {
       // would have been raised first if it wasn't.
       if (result == S_OK || result == E_ACCESSDENIED) {
         // We found a working GPU preference, so set ourselves to use that.
-        return set_gpu_preference_on_self(i);
+        if (set_gpu_preference_on_self(i)) {
+          return true;
+        }
+        else {
+          return false;
+        }
       }
     }
 
@@ -413,25 +418,16 @@ namespace platf::dxgi {
       return true;
     }
 
-    // If the GPU preference was manually specified, we can skip the probe.
-    if (config::video.gpu_preference >= 0) {
-      if (set_gpu_preference_on_self(config::video.gpu_preference)) {
-        set_gpu_preference = true;
-        return true;
-      }
+    // Try probing with different GPU preferences and verify_frame_capture flag
+    if (validate_and_test_gpu_preference(display_name, true)) {
+      set_gpu_preference = true;
+      return true;
     }
-    else {
-      // Try probing with different GPU preferences and verify_frame_capture flag
-      if (validate_and_test_gpu_preference(display_name, true)) {
-        set_gpu_preference = true;
-        return true;
-      }
 
-      // If no valid configuration was found, try again with verify_frame_capture == false
-      if (validate_and_test_gpu_preference(display_name, false)) {
-        set_gpu_preference = true;
-        return true;
-      }
+    // If no valid configuration was found, try again with verify_frame_capture == false
+    if (validate_and_test_gpu_preference(display_name, false)) {
+      set_gpu_preference = true;
+      return true;
     }
 
     // If neither worked, return false
diff --git a/src_assets/common/assets/web/config.html b/src_assets/common/assets/web/config.html
index e6f4f2f7362..d5ada9469e3 100644
--- a/src_assets/common/assets/web/config.html
+++ b/src_assets/common/assets/web/config.html
@@ -167,7 +167,6 @@ <h1 class="my-4">{{ $t('config.configuration') }}</h1>
               "virtual_sink": "",
               "install_steam_audio_drivers": "enabled",
               "adapter_name": "",
-              "gpu_preference": -1,
               "output_name": "",
               "dd_configuration_option": "verify_only",
               "dd_resolution_option": "auto",
diff --git a/src_assets/common/assets/web/configs/tabs/AudioVideo.vue b/src_assets/common/assets/web/configs/tabs/AudioVideo.vue
index cfd7e373e02..6791a9c60db 100644
--- a/src_assets/common/assets/web/configs/tabs/AudioVideo.vue
+++ b/src_assets/common/assets/web/configs/tabs/AudioVideo.vue
@@ -68,18 +68,6 @@ const config = ref(props.config)
         :config="config"
     />
 
-    <PlatformLayout :platform="platform">
-      <template #windows>
-        <!-- GPU Preference -->
-        <div class="mb-3">
-          <label for="gpu_preference" class="form-label">{{ $t('config.gpu_preference') }}</label>
-          <input type="number" class="form-control" id="gpu_preference" placeholder="-1" min="-1"
-                 v-model="config.gpu_preference" />
-          <div class="form-text">{{ $t('config.gpu_preference_desc') }}</div>
-        </div>
-      </template>
-    </PlatformLayout>
-
     <DisplayOutputSelector
       :platform="platform"
       :config="config"
diff --git a/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayDeviceOptions.vue b/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayDeviceOptions.vue
index ee2951733a7..653cf4ab240 100644
--- a/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayDeviceOptions.vue
+++ b/src_assets/common/assets/web/configs/tabs/audiovideo/DisplayDeviceOptions.vue
@@ -144,7 +144,7 @@ function addRemappingEntry() {
                 <label for="dd_config_revert_delay" class="form-label">
                   {{ $t('config.dd_config_revert_delay') }}
                 </label>
-                <input type="number" class="form-control" id="dd_config_revert_delay" placeholder="3000" min="0"
+                <input type="text" class="form-control" id="dd_config_revert_delay" placeholder="3000"
                        v-model="config.dd_config_revert_delay" />
                 <div class="form-text">
                   {{ $t('config.dd_config_revert_delay_desc') }}
diff --git a/src_assets/common/assets/web/public/assets/locale/en.json b/src_assets/common/assets/web/public/assets/locale/en.json
index 3786a6824a4..57b8846eca8 100644
--- a/src_assets/common/assets/web/public/assets/locale/en.json
+++ b/src_assets/common/assets/web/public/assets/locale/en.json
@@ -199,8 +199,6 @@
     "fec_percentage": "FEC Percentage",
     "fec_percentage_desc": "Percentage of error correcting packets per data packet in each video frame. Higher values can correct for more network packet loss, but at the cost of increasing bandwidth usage.",
     "ffmpeg_auto": "auto -- let ffmpeg decide (default)",
-    "gpu_preference": "GPU Preference",
-    "gpu_preference_desc": "Specify the GPU preference for the Sunshine process. If set to negative number (-1 by default), Sunshine will try to detect the best GPU for the streamed display, but if it fails you will get a black screen. Setting it to 0 will allow Windows to try and select the best GPU. Setting it to 1 and above will prioritize the GPU that matches this number (the number has to be guessed, but it starts at 1 and increases).",
     "file_apps": "Apps File",
     "file_apps_desc": "The file where current apps of Sunshine are stored.",
     "file_state": "State File",