diff options
Diffstat (limited to 'vmwgfx/vmwgfx_saa_priv.h')
-rw-r--r-- | vmwgfx/vmwgfx_saa_priv.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/vmwgfx/vmwgfx_saa_priv.h b/vmwgfx/vmwgfx_saa_priv.h new file mode 100644 index 0000000..5f46dee --- /dev/null +++ b/vmwgfx/vmwgfx_saa_priv.h | |||
@@ -0,0 +1,125 @@ | |||
1 | /* | ||
2 | * Copyright 2011 VMWare, Inc. | ||
3 | * All Rights Reserved. | ||
4 | * | ||
5 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
6 | * copy of this software and associated documentation files (the | ||
7 | * "Software"), to deal in the Software without restriction, including | ||
8 | * without limitation the rights to use, copy, modify, merge, publish, | ||
9 | * distribute, sub license, and/or sell copies of the Software, and to | ||
10 | * permit persons to whom the Software is furnished to do so, subject to | ||
11 | * the following conditions: | ||
12 | * | ||
13 | * The above copyright notice and this permission notice (including the | ||
14 | * next paragraph) shall be included in all copies or substantial portions | ||
15 | * of the Software. | ||
16 | * | ||
17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||
18 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
19 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. | ||
20 | * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR | ||
21 | * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||
22 | * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||
23 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
24 | * | ||
25 | * Author: Thomas Hellstrom <thellstrom@vmware.com> | ||
26 | */ | ||
27 | #ifndef _VMWGFX_SAA_PRIV_H_ | ||
28 | #define _VMWGFX_SAA_PRIV_H_ | ||
29 | |||
30 | #define VMWGFX_PIX_MALLOC (1 << 0) | ||
31 | #define VMWGFX_PIX_GMR (1 << 1) | ||
32 | #define VMWGFX_PIX_SURFACE (1 << 2) | ||
33 | |||
34 | #include <xorg-server.h> | ||
35 | #include <picturestr.h> | ||
36 | #include "vmwgfx_saa.h" | ||
37 | |||
38 | struct vmwgfx_saa { | ||
39 | struct saa_driver driver; | ||
40 | struct vmwgfx_dma_ctx *ctx; | ||
41 | struct xa_tracker *xat; | ||
42 | struct xa_context *xa_ctx; | ||
43 | ScreenPtr pScreen; | ||
44 | int drm_fd; | ||
45 | struct vmwgfx_saa_pixmap *src_vpix; | ||
46 | struct vmwgfx_saa_pixmap *dst_vpix; | ||
47 | Bool present_copy; | ||
48 | Bool diff_valid; | ||
49 | int xdiff; | ||
50 | int ydiff; | ||
51 | RegionRec present_region; | ||
52 | uint32_t src_handle; | ||
53 | Bool can_optimize_dma; | ||
54 | Bool use_present_opt; | ||
55 | Bool only_hw_presents; | ||
56 | Bool rendercheck; | ||
57 | void (*present_flush) (ScreenPtr pScreen); | ||
58 | struct _WsbmListHead sync_x_list; | ||
59 | struct vmwgfx_composite *vcomp; | ||
60 | }; | ||
61 | |||
62 | static inline struct vmwgfx_saa * | ||
63 | to_vmwgfx_saa(struct saa_driver *driver) { | ||
64 | return (struct vmwgfx_saa *) driver; | ||
65 | } | ||
66 | |||
67 | /* | ||
68 | * In vmwgfx_saa.c | ||
69 | */ | ||
70 | |||
71 | Bool | ||
72 | vmwgfx_hw_kill(struct vmwgfx_saa *vsaa, | ||
73 | struct saa_pixmap *spix); | ||
74 | Bool | ||
75 | vmwgfx_create_hw(struct vmwgfx_saa *vsaa, | ||
76 | PixmapPtr pixmap); | ||
77 | |||
78 | |||
79 | /* | ||
80 | * vmwgfx_xa_surface.c | ||
81 | */ | ||
82 | |||
83 | enum xa_formats | ||
84 | vmwgfx_xa_format(enum _PictFormatShort format); | ||
85 | Bool | ||
86 | vmwgfx_hw_validate(PixmapPtr pixmap, RegionPtr region); | ||
87 | |||
88 | Bool | ||
89 | vmwgfx_hw_accel_stage(PixmapPtr pixmap, unsigned int depth, | ||
90 | uint32_t add_flags, uint32_t remove_flags); | ||
91 | Bool | ||
92 | vmwgfx_hw_composite_src_stage(PixmapPtr pixmap, | ||
93 | enum _PictFormatShort pict_format); | ||
94 | Bool | ||
95 | vmwgfx_hw_composite_dst_stage(PixmapPtr pixmap, | ||
96 | enum _PictFormatShort pict_format); | ||
97 | Bool | ||
98 | vmwgfx_hw_commit(PixmapPtr pixmap); | ||
99 | |||
100 | /* | ||
101 | * vmwgfx_xa_composite.c | ||
102 | */ | ||
103 | |||
104 | struct vmwgfx_composite; | ||
105 | |||
106 | void | ||
107 | vmwgfx_free_composite(struct vmwgfx_composite *vcomp); | ||
108 | struct vmwgfx_composite * | ||
109 | vmwgfx_alloc_composite(void); | ||
110 | |||
111 | Bool | ||
112 | vmwgfx_xa_update_comp(struct xa_composite *comp, | ||
113 | PixmapPtr src_pix, | ||
114 | PixmapPtr mask_pix, | ||
115 | PixmapPtr dst_pix); | ||
116 | |||
117 | struct xa_composite * | ||
118 | vmwgfx_xa_setup_comp(struct vmwgfx_composite *vcomp, | ||
119 | int op, | ||
120 | PicturePtr src_pict, | ||
121 | PicturePtr mask_pict, | ||
122 | PicturePtr dst_pict); | ||
123 | |||
124 | |||
125 | #endif | ||