nouveau_winsys.h revision 3464ebd5
1#ifndef NOUVEAU_WINSYS_H 2#define NOUVEAU_WINSYS_H 3 4#include <stdint.h> 5#include "pipe/p_defines.h" 6 7#include "nouveau/nouveau_bo.h" 8#include "nouveau/nouveau_channel.h" 9#include "nouveau/nouveau_device.h" 10#include "nouveau/nouveau_grobj.h" 11#include "nouveau/nouveau_notifier.h" 12#ifndef NOUVEAU_NVC0 13#include "nouveau/nv04_pushbuf.h" 14#endif 15 16#ifndef NV04_PFIFO_MAX_PACKET_LEN 17#define NV04_PFIFO_MAX_PACKET_LEN 2047 18#endif 19 20static INLINE uint32_t 21nouveau_screen_transfer_flags(unsigned pipe) 22{ 23 uint32_t flags = 0; 24 25 if (pipe & PIPE_TRANSFER_READ) 26 flags |= NOUVEAU_BO_RD; 27 if (pipe & PIPE_TRANSFER_WRITE) 28 flags |= NOUVEAU_BO_WR; 29 if (pipe & PIPE_TRANSFER_DISCARD) 30 flags |= NOUVEAU_BO_INVAL; 31 if (pipe & PIPE_TRANSFER_UNSYNCHRONIZED) 32 flags |= NOUVEAU_BO_NOSYNC; 33 else if (pipe & PIPE_TRANSFER_DONTBLOCK) 34 flags |= NOUVEAU_BO_NOWAIT; 35 36 return flags; 37} 38 39extern struct pipe_screen * 40nvfx_screen_create(struct pipe_winsys *ws, struct nouveau_device *); 41 42extern struct pipe_screen * 43nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *); 44 45extern struct pipe_screen * 46nvc0_screen_create(struct pipe_winsys *ws, struct nouveau_device *); 47 48#endif 49