  #define INTER_REMAP_COEF_BITS 15
  #define INTER_REMAP_COEF_SCALE (1 << INTER_REMAP_COEF_BITS)
  
  __kernel void warpPerspective(__global const uchar * src,
                                int src_step, int src_offset, int src_rows, int src_cols,
                                __global uchar * dst,
                                int dst_step, int dst_offset, int dst_rows, int dst_cols,
                                __constant float * M)
  {
      int dx = get_global_id(0);
 
</s> remove                               int dst_step, int dst_offset, int dst_rows, int dst_cols,
 </s> add                               int dst_row_stride, int dst_offset, int dst_rows, int dst_cols, </s> remove         int dst_index = mad24(dy, dst_step, dst_offset + dx);
 </s> add         int dst_index = mad24(dy, dst_row_stride, dst_offset + dx); </s> remove                      cl_mem yuv, int in_width, int in_height,
 </s> add                      cl_mem yuv, int in_width, int in_height, int in_stride, int in_uv_offset, </s> remove             convert_int(src[mad24(sy, src_step, src_offset + sx)]) : 0;
 </s> add             convert_int(src[mad24(sy, src_row_stride, src_offset + sx*src_px_stride)]) : 0;
                              int src_row_stride, int src_px_stride, int src_offset, int src_rows, int src_cols,
  #define INTER_REMAP_COEF_BITS 15
  #define INTER_REMAP_COEF_SCALE (1 << INTER_REMAP_COEF_BITS)
  
  __kernel void warpPerspective(__global const uchar * src,
                              int src_row_stride, int src_px_stride, int src_offset, int src_rows, int src_cols,
                                __global uchar * dst,
                                int dst_step, int dst_offset, int dst_rows, int dst_cols,
                                __constant float * M)
  {
      int dx = get_global_id(0);
keep keep keep keep replace keep keep keep keep keep
 nv12: encoderd avoids a full frame copy (#24519)

* rgb to nv12

* nv12 works (w memcpy)

* correct now

* no copy

* fix nv12 with fast debayer

* reverts of unused stuff

* ui use nv12

* comment out thumbnails for now

* rebase fix

* dm read nv12

* model read nv12

* fix ffmpeg encoder

* thumbnails from nv12

* replay to nv12

* python framereader support nv12

* remove hardcoded frame/buffer sizes

* fix build

* ffmpeg encoder fix buffers

* small cleanup

* reduce power usage test

* fix cpu usage test

* fix snapshot

* fix loggerd test

* bump cereal

Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Joost Wooning <jwooning@gmail.com> 
selfdrive/modeld/transforms/transform.cl