Home | History | Annotate | Download | only in i965
      1 /*
      2  * Mesa 3-D graphics library
      3  *
      4  * Copyright 2012 Intel Corporation
      5  * Copyright 2013 Google
      6  *
      7  * Permission is hereby granted, free of charge, to any person obtaining a
      8  * copy of this software and associated documentation files (the
      9  * "Software"), to deal in the Software without restriction, including
     10  * without limitation the rights to use, copy, modify, merge, publish,
     11  * distribute, sublicense, and/or sell copies of the Software, and to
     12  * permit persons to whom the Software is furnished to do so, subject to
     13  * the following conditions:
     14  *
     15  * The above copyright notice and this permission notice (including the
     16  * next paragraph) shall be included in all copies or substantial portions
     17  * of the Software.
     18  *
     19  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
     20  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     21  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
     22  * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
     23  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
     24  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
     25  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     26  *
     27  * Authors:
     28  *    Chad Versace <chad.versace (at) linux.intel.com>
     29  *    Frank Henigman <fjhenigman (at) google.com>
     30  */
     31 
     32 #ifndef INTEL_TILED_MEMCPY_H
     33 #define INTEL_TILED_MEMCPY_H
     34 
     35 #include <stdint.h>
     36 #include "main/mtypes.h"
     37 
     38 typedef void *(*mem_copy_fn)(void *dest, const void *src, size_t n);
     39 
     40 void
     41 linear_to_tiled(uint32_t xt1, uint32_t xt2,
     42                 uint32_t yt1, uint32_t yt2,
     43                 char *dst, const char *src,
     44                 uint32_t dst_pitch, int32_t src_pitch,
     45                 bool has_swizzling,
     46                 uint32_t tiling,
     47                 mem_copy_fn mem_copy);
     48 
     49 void
     50 tiled_to_linear(uint32_t xt1, uint32_t xt2,
     51                 uint32_t yt1, uint32_t yt2,
     52                 char *dst, const char *src,
     53                 int32_t dst_pitch, uint32_t src_pitch,
     54                 bool has_swizzling,
     55                 uint32_t tiling,
     56                 mem_copy_fn mem_copy);
     57 
     58 bool intel_get_memcpy(mesa_format tiledFormat, GLenum format,
     59                       GLenum type, mem_copy_fn *mem_copy, uint32_t *cpp);
     60 
     61 #endif /* INTEL_TILED_MEMCPY */
     62