2
* Copyright © 2008 Rodrigo Kumpera
3
* Copyright © 2008 André Tupinambá
5
* Permission to use, copy, modify, distribute, and sell this software and its
6
* documentation for any purpose is hereby granted without fee, provided that
7
* the above copyright notice appear in all copies and that both that
8
* copyright notice and this permission notice appear in supporting
9
* documentation, and that the name of Red Hat not be used in advertising or
10
* publicity pertaining to distribution of the software without specific,
11
* written prior permission. Red Hat makes no representations about the
12
* suitability of this software for any purpose. It is provided "as is"
13
* without express or implied warranty.
15
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
16
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
17
* FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
18
* SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
20
* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
21
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
24
* Author: Rodrigo Kumpera (kumpera@gmail.com)
25
* André Tupinambá (andrelrt@gmail.com)
27
* Based on work by Owen Taylor and Søren Sandmann
29
#ifndef _PIXMAN_SSE_H_
30
#define _PIXMAN_SSE_H_
32
#ifdef HAVE_DIX_CONFIG_H
33
#include <dix-config.h>
36
#include "pixman-private.h"
40
#if !defined(__amd64__) && !defined(__x86_64__)
41
pixman_bool_t pixman_have_sse2(void);
43
#define pixman_have_sse2() TRUE
47
#define pixman_have_sse2() FALSE
52
void fbComposeSetupSSE2(void);
55
pixmanFillsse2 (uint32_t *bits,
65
pixmanBltsse2 (uint32_t *src_bits,
73
int width, int height);
76
fbCompositeSolid_nx8888sse2 (pixman_op_t op,
77
pixman_image_t * pSrc,
78
pixman_image_t * pMask,
79
pixman_image_t * pDst,
90
fbCompositeSolid_nx0565sse2 (pixman_op_t op,
91
pixman_image_t * pSrc,
92
pixman_image_t * pMask,
93
pixman_image_t * pDst,
104
fbCompositeSolidMask_nx8888x8888Csse2 (pixman_op_t op,
105
pixman_image_t * pSrc,
106
pixman_image_t * pMask,
107
pixman_image_t * pDst,
118
fbCompositeSrc_8888x8x8888sse2 (pixman_op_t op,
119
pixman_image_t * pSrc,
120
pixman_image_t * pMask,
121
pixman_image_t * pDst,
132
fbCompositeSrc_x888xnx8888sse2 (pixman_op_t op,
133
pixman_image_t * pSrc,
134
pixman_image_t * pMask,
135
pixman_image_t * pDst,
146
fbCompositeSrc_8888x8888sse2 (pixman_op_t op,
147
pixman_image_t * pSrc,
148
pixman_image_t * pMask,
149
pixman_image_t * pDst,
160
fbCompositeSrc_8888x0565sse2 (pixman_op_t op,
161
pixman_image_t * pSrc,
162
pixman_image_t * pMask,
163
pixman_image_t * pDst,
174
fbCompositeSolidMask_nx8x8888sse2 (pixman_op_t op,
175
pixman_image_t * pSrc,
176
pixman_image_t * pMask,
177
pixman_image_t * pDst,
188
fbCompositeSolidMaskSrc_nx8x8888sse2 (pixman_op_t op,
189
pixman_image_t * pSrc,
190
pixman_image_t * pMask,
191
pixman_image_t * pDst,
202
fbCompositeSolidMask_nx8x0565sse2 (pixman_op_t op,
203
pixman_image_t * pSrc,
204
pixman_image_t * pMask,
205
pixman_image_t * pDst,
216
fbCompositeSrc_8888RevNPx0565sse2 (pixman_op_t op,
217
pixman_image_t * pSrc,
218
pixman_image_t * pMask,
219
pixman_image_t * pDst,
230
fbCompositeSrc_8888RevNPx8888sse2 (pixman_op_t op,
231
pixman_image_t * pSrc,
232
pixman_image_t * pMask,
233
pixman_image_t * pDst,
244
fbCompositeSolidMask_nx8888x0565Csse2 (pixman_op_t op,
245
pixman_image_t * pSrc,
246
pixman_image_t * pMask,
247
pixman_image_t * pDst,
258
fbCompositeIn_nx8x8sse2 (pixman_op_t op,
259
pixman_image_t * pSrc,
260
pixman_image_t * pMask,
261
pixman_image_t * pDst,
272
fbCompositeIn_8x8sse2 (pixman_op_t op,
273
pixman_image_t * pSrc,
274
pixman_image_t * pMask,
275
pixman_image_t * pDst,
286
fbCompositeSrcAdd_8888x8x8sse2 (pixman_op_t op,
287
pixman_image_t * pSrc,
288
pixman_image_t * pMask,
289
pixman_image_t * pDst,
301
fbCompositeSrcAdd_8000x8000sse2 (pixman_op_t op,
302
pixman_image_t * pSrc,
303
pixman_image_t * pMask,
304
pixman_image_t * pDst,
315
fbCompositeSrcAdd_8888x8888sse2 (pixman_op_t op,
316
pixman_image_t * pSrc,
317
pixman_image_t * pMask,
318
pixman_image_t * pDst,
329
fbCompositeCopyAreasse2 (pixman_op_t op,
330
pixman_image_t * pSrc,
331
pixman_image_t * pMask,
332
pixman_image_t * pDst,
343
fbCompositeOver_x888x8x8888sse2 (pixman_op_t op,
344
pixman_image_t * pSrc,
345
pixman_image_t * pMask,
346
pixman_image_t * pDst,
356
#endif /* USE_SSE2 */
358
#endif /* _PIXMAN_SSE_H_ */