anchor.diff:    (let ((pixel-format (lisp-type->pixel-format
                          (c-array-element-type dst))))
       (setf (gpu-buffer-bound (cepl-context) :pixel-pack-buffer) nil)
  -    (pack-pixels-from-texture src
  -                              pixel-format
  -                              (c-array-row-alignment dst)
  -                              (c-array-pointer dst)))
  +    (pack-pixels-from-texture
  +     src
  +     pixel-format
  +     (c-array-row-alignment dst)
  +     (c-array-pointer dst)
  +     (cepl.c-arrays::%gl-calc-byte-size
  +      (c-array-element-byte-size dst)
  +      (gpu-array-dimensions src)
  +      (c-array-row-alignment dst))))
     dst)
   
   (defn copy-texture-backed-gpu-array-to-new-buffer-backed-gpu-array
  
positive.code: 
  (defn pack-pixels-from-texture ((tex-array gpu-array-t)
                                  (pixel-format pixel-format)
                                  row-alignment
                                  pointer/offset)
      (values)
    (with-gpu-array-t tex-array
      (destructuring-bind (pix-format pix-type)
          (cepl.pixel-formats::compile-pixel-format pixel-format)
        (%with-scratch-texture-bound texture
          (setf (pack-alignment) row-alignment)
          (%gl:get-tex-image (gl-enum texture-type)
                             (coerce level-num 'real)
                             pix-format
                             pix-type
                             pointer/offset))))
    (values))
  
  ;; [TODO] implement gl-fill and fill arguments
  
negative.code:      src
       p-format
       1
       (cffi:make-pointer
        (gpu-array-bb-offset-in-bytes-into-buffer gpu-array-bb))
       (gpu-array-bb-byte-size gpu-array-bb))
      gpu-array-bb))
  
  (defn copy-texture-backed-gpu-array-to-buffer-backed-gpu-array
  