softpipe: don't clamp or do logical operations on floating-point buffers.
[mesa.git] / src / gallium / drivers / nouveau / nouveau_winsys.h
index cd7da9977d8e0eaea6b56688272f0848df181518..524e63652f6ddab185d4bd7426ea36bd60e25ac0 100644 (file)
@@ -2,18 +2,27 @@
 #define NOUVEAU_WINSYS_H
 
 #include <stdint.h>
+#include <inttypes.h>
+
 #include "pipe/p_defines.h"
 
 #include "nouveau/nouveau_bo.h"
 #include "nouveau/nouveau_channel.h"
-#include "nouveau/nouveau_class.h"
 #include "nouveau/nouveau_device.h"
 #include "nouveau/nouveau_grobj.h"
 #include "nouveau/nouveau_notifier.h"
-#include "nouveau/nouveau_resource.h"
-#include "nouveau/nouveau_pushbuf.h"
+#ifndef NOUVEAU_NVC0
+#include "nouveau/nv04_pushbuf.h"
+#endif
+
+#ifndef NV04_PFIFO_MAX_PACKET_LEN
+#define NV04_PFIFO_MAX_PACKET_LEN 2047
+#endif
+
+#define NOUVEAU_RESOURCE_FLAG_LINEAR   (PIPE_RESOURCE_FLAG_DRV_PRIV << 0)
+#define NOUVEAU_RESOURCE_FLAG_DRV_PRIV (PIPE_RESOURCE_FLAG_DRV_PRIV << 1)
 
-static inline uint32_t
+static INLINE uint32_t
 nouveau_screen_transfer_flags(unsigned pipe)
 {
        uint32_t flags = 0;
@@ -24,11 +33,10 @@ nouveau_screen_transfer_flags(unsigned pipe)
                flags |= NOUVEAU_BO_WR;
        if (pipe & PIPE_TRANSFER_DISCARD)
                flags |= NOUVEAU_BO_INVAL;
-       if (pipe & PIPE_TRANSFER_DONTBLOCK)
-               flags |= NOUVEAU_BO_NOWAIT;
-       else
        if (pipe & PIPE_TRANSFER_UNSYNCHRONIZED)
                flags |= NOUVEAU_BO_NOSYNC;
+       else if (pipe & PIPE_TRANSFER_DONTBLOCK)
+               flags |= NOUVEAU_BO_NOWAIT;
 
        return flags;
 }
@@ -39,4 +47,7 @@ nvfx_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
 extern struct pipe_screen *
 nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
 
+extern struct pipe_screen *
+nvc0_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
+
 #endif