nouveau_context.h revision 6d1cdec3ba151168bfc3aef222fba6265dfb41fb
1#ifndef __NOUVEAU_CONTEXT_H__
2#define __NOUVEAU_CONTEXT_H__
3
4#include "pipe/p_context.h"
5
6struct nouveau_pushbuf;
7
8struct nouveau_context {
9   struct pipe_context pipe;
10   struct nouveau_screen *screen;
11
12   struct nouveau_pushbuf *pushbuf;
13
14   boolean vbo_dirty;
15   boolean cb_dirty;
16
17   void (*copy_data)(struct nouveau_context *,
18                     struct nouveau_bo *dst, unsigned, unsigned,
19                     struct nouveau_bo *src, unsigned, unsigned, unsigned);
20   void (*push_data)(struct nouveau_context *,
21                     struct nouveau_bo *dst, unsigned, unsigned,
22                     unsigned, const void *);
23   /* base, size refer to the whole constant buffer */
24   void (*push_cb)(struct nouveau_context *,
25                   struct nouveau_bo *, unsigned domain,
26                   unsigned base, unsigned size,
27                   unsigned offset, unsigned words, const uint32_t *);
28};
29
30static INLINE struct nouveau_context *
31nouveau_context(struct pipe_context *pipe)
32{
33   return (struct nouveau_context *)pipe;
34}
35
36void
37nouveau_context_init_vdec(struct nouveau_context *);
38
39#endif
40