4 #include "xorg_tracker.h"
6 #include <pipe/p_state.h>
11 /* src + mask + dst */
12 #define MAX_EXA_SAMPLERS 3
17 struct pipe_context
*pipe
;
18 struct pipe_screen
*scrn
;
19 struct xorg_renderer
*renderer
;
21 struct pipe_texture
*bound_textures
[MAX_EXA_SAMPLERS
];
22 int num_bound_samplers
;
25 boolean has_solid_color
;
29 /* float[9] projective matrix bound to pictures */
38 boolean use_surface_copy
;
40 struct exa_pixmap_priv
*src
;
41 struct exa_pixmap_priv
*dst
;
43 struct pipe_surface
*src_surface
;
44 struct pipe_surface
*dst_surface
;
46 struct pipe_texture
*src_texture
;
50 struct exa_pixmap_priv
59 struct pipe_texture
*tex
;
60 struct pipe_texture
*depth_stencil_tex
;
62 struct pipe_transfer
*map_transfer
;
66 #define XORG_FALLBACK(s, arg...) \
68 if (ms->debug_fallback) { \
69 xf86DrvMsg(pScrn->scrnIndex, X_INFO, \
70 "%s fallback " s "\n", __FUNCTION__, ##arg); \
76 xorg_gpu_surface(struct pipe_screen
*scrn
, struct exa_pixmap_priv
*priv
);
78 void xorg_exa_flush(struct exa_context
*exa
, uint pipeFlushFlags
,
79 struct pipe_fence_handle
**fence
);
80 void xorg_exa_finish(struct exa_context
*exa
);