          break;
        }
  
        pthread_mutex_lock(&transform_lock);
        mat3 transform = cur_transform;
        const bool run_model_this_iter = run_model;
        pthread_mutex_unlock(&transform_lock);
  
        if (sm.update(0) > 0){
          // TODO: path planner timeout?
 
</s> remove         mat3 model_transform = matmul3(yuv_transform, transform);
        
 </s> add  </s> remove   // debayering does a 2x downscale
  mat3 yuv_transform = transform_scale_buffer((mat3){{
    1.0, 0.0, 0.0,
    0.0, 1.0, 0.0,
    0.0, 0.0, 1.0,
  }}, 0.5);

 </s> add 
      mat3 model_transform = cur_transform;
          break;
        }
  
        pthread_mutex_lock(&transform_lock);
      mat3 model_transform = cur_transform;
        const bool run_model_this_iter = run_model;
        pthread_mutex_unlock(&transform_lock);
  
        if (sm.update(0) > 0){
          // TODO: path planner timeout?
keep keep keep keep replace keep keep keep keep keep
 move matmul3 into live_thread (#2069) 
selfdrive/modeld/modeld.cc