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_sampler_view *bound_sampler_views[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_resource *src_texture;
50 struct exa_pixmap_priv
59 struct pipe_resource *tex;
60 struct pipe_resource *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);