1 #ifndef __NOUVEAU_SCREEN_H__
2 #define __NOUVEAU_SCREEN_H__
4 struct nouveau_screen
{
5 struct pipe_screen base
;
6 struct nouveau_device
*device
;
7 struct nouveau_channel
*channel
;
9 /* note that OpenGL doesn't distinguish between these, so
10 * these almost always should be set to the same value */
11 unsigned vertex_buffer_flags
;
12 unsigned index_buffer_flags
;
15 static inline struct nouveau_screen
*
16 nouveau_screen(struct pipe_screen
*pscreen
)
18 return (struct nouveau_screen
*)pscreen
;
23 /* Not really sure if this is needed, or whether the individual
24 * drivers are happy to talk to the bo functions themselves. In a way
25 * this is what we'd expect from a regular winsys interface.
28 nouveau_screen_bo_new(struct pipe_screen
*pscreen
, unsigned alignment
,
29 unsigned usage
, unsigned bind
, unsigned size
);
31 nouveau_screen_bo_user(struct pipe_screen
*pscreen
, void *ptr
, unsigned bytes
);
33 nouveau_screen_bo_map(struct pipe_screen
*pscreen
,
34 struct nouveau_bo
*pb
,
37 nouveau_screen_bo_map_range(struct pipe_screen
*pscreen
, struct nouveau_bo
*bo
,
38 unsigned offset
, unsigned length
, unsigned usage
);
40 nouveau_screen_bo_map_flush_range(struct pipe_screen
*pscreen
, struct nouveau_bo
*bo
,
41 unsigned offset
, unsigned length
);
43 nouveau_screen_bo_unmap(struct pipe_screen
*pscreen
, struct nouveau_bo
*bo
);
45 nouveau_screen_bo_release(struct pipe_screen
*pscreen
, struct nouveau_bo
*bo
);
48 nouveau_screen_bo_get_handle(struct pipe_screen
*pscreen
,
49 struct nouveau_bo
*bo
,
51 struct winsys_handle
*whandle
);
53 nouveau_screen_bo_from_handle(struct pipe_screen
*pscreen
,
54 struct winsys_handle
*whandle
,
55 unsigned *out_stride
);
58 nouveau_reference_flags(struct nouveau_bo
*bo
);
62 int nouveau_screen_init(struct nouveau_screen
*, struct nouveau_device
*);
63 void nouveau_screen_fini(struct nouveau_screen
*);
68 static __inline__
unsigned
69 RING_3D(unsigned mthd
, unsigned size
)
71 return (7 << 13) | (size
<< 18) | mthd
;
74 static __inline__
unsigned
75 RING_3D_NI(unsigned mthd
, unsigned size
)
77 return 0x40000000 | (7 << 13) | (size
<< 18) | mthd
;