diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index e4873ab..47ca2fc 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -4896,28 +4896,32 @@
     for (frame = LAST_FRAME; frame <= ALTREF_FRAME; ++frame) {
       ref_buf = get_ref_frame_buffer(cpi, frame);
       if (ref_buf) {
+        TransformationType model;
         aom_clear_system_state();
-        if (compute_global_motion_feature_based(GLOBAL_TRANS_TYPES - 1,
-                                                cpi->Source, ref_buf,
+        for (model = ROTZOOM; model < GLOBAL_TRANS_TYPES; ++model) {
+          if (compute_global_motion_feature_based(model, cpi->Source, ref_buf,
 #if CONFIG_AOM_HIGHBITDEPTH
-                                                cpi->common.bit_depth,
+                                                  cpi->common.bit_depth,
 #endif  // CONFIG_AOM_HIGHBITDEPTH
-                                                params)) {
-          convert_model_to_params(params, &cm->global_motion[frame]);
-          if (cm->global_motion[frame].wmtype != IDENTITY) {
-            erroradvantage = refine_integerized_param(
-                &cm->global_motion[frame], cm->global_motion[frame].wmtype,
+                                                  params)) {
+            convert_model_to_params(params, &cm->global_motion[frame]);
+            if (cm->global_motion[frame].wmtype != IDENTITY) {
+              erroradvantage = refine_integerized_param(
+                  &cm->global_motion[frame], cm->global_motion[frame].wmtype,
 #if CONFIG_AOM_HIGHBITDEPTH
-                xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH, xd->bd,
+                  xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH, xd->bd,
 #endif  // CONFIG_AOM_HIGHBITDEPTH
-                ref_buf->y_buffer, ref_buf->y_width, ref_buf->y_height,
-                ref_buf->y_stride, cpi->Source->y_buffer, cpi->Source->y_width,
-                cpi->Source->y_height, cpi->Source->y_stride, 3);
-            if (erroradvantage >
-                gm_advantage_thresh[cm->global_motion[frame].wmtype]) {
-              set_default_gmparams(&cm->global_motion[frame]);
+                  ref_buf->y_buffer, ref_buf->y_width, ref_buf->y_height,
+                  ref_buf->y_stride, cpi->Source->y_buffer,
+                  cpi->Source->y_width, cpi->Source->y_height,
+                  cpi->Source->y_stride, 3);
+              if (erroradvantage >
+                  gm_advantage_thresh[cm->global_motion[frame].wmtype]) {
+                set_default_gmparams(&cm->global_motion[frame]);
+              }
             }
           }
+          if (cm->global_motion[frame].wmtype != IDENTITY) break;
         }
         aom_clear_system_state();
       }
