9003fb1eaeea852bea5b1b35d03948283bd3d674
[mesa.git] / src / mesa / drivers / dri / nouveau / nouveau_object.c
1
2 #include "nouveau_fifo.h"
3 #include "nouveau_object.h"
4
5
6 static GLboolean NVDmaCreateContextObject(nouveauContextPtr nmesa, int handle, int class, uint32_t flags,
7 uint32_t dma_in, uint32_t dma_out, uint32_t dma_notifier)
8 {
9 drm_nouveau_object_init_t cto;
10 int ret;
11
12 cto.handle = handle;
13 cto.class = class;
14 cto.flags = flags;
15 cto.dma0= dma_in;
16 cto.dma1= dma_out;
17 cto.dma_notifier = dma_notifier;
18 ret = drmCommandWrite(nmesa->driFd, DRM_NOUVEAU_OBJECT_INIT, &cto, sizeof(cto));
19
20 return ret == 0;
21 }
22
23 static void nouveauObjectOnSubchannel(nouveauContextPtr nmesa, int handle, int subchannel)
24 {
25 BEGIN_RING_SIZE(subchannel, 0, 1);
26 OUT_RING(handle);
27 }
28
29 void nouveauObjectInit(nouveauContextPtr nmesa)
30 {
31 NVDmaCreateContextObject(nmesa, Nv3D, nmesa->screen->card->class_3d, 0, 0, 0, 0);
32 nouveauObjectOnSubchannel(nmesa, NvSub3D, Nv3D);
33 }
34
35
36