r600g: remove the fences which were used for the cache buffer manager
[mesa.git] / src / gallium / winsys / r600 / drm / r600_priv.h
index 45bc64fcf9abab1bf974e4891e89b064dd525718..49d3060bbf2a7acc8d69e91679eb938538cb93ec 100644 (file)
 #ifndef R600_PRIV_H
 #define R600_PRIV_H
 
-#include <errno.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <util/u_double_list.h>
-#include <util/u_inlines.h>
-#include "util/u_hash_table.h"
-#include <os/os_thread.h>
 #include "r600.h"
+#include "../../radeon/drm/radeon_winsys.h"
+#include "util/u_hash_table.h"
+#include "os/os_thread.h"
 
 #define PKT_COUNT_C                     0xC000FFFF
 #define PKT_COUNT_S(x)                  (((x) & 0x3FFF) << 16)
 
-struct r600_bomgr;
-struct r600_bo;
-
 struct radeon {
-       int                             fd;
-       int                             refcount;
-       unsigned                        device;
+       struct radeon_winsys            *ws;
+       struct radeon_info              info;
        unsigned                        family;
        enum chip_class                 chip_class;
        struct r600_tiling_info         tiling_info;
-       struct r600_bomgr               *bomgr;
-       unsigned                        fence;
-       unsigned                        *cfence;
-       struct r600_bo                  *fence_bo;
-       unsigned                        clock_crystal_freq;
-       unsigned                        num_backends;
-       unsigned                        minor_version;
-
-        /* List of buffer handles and its mutex. */
-       struct util_hash_table          *bo_handles;
-       pipe_mutex bo_handles_mutex;
+       unsigned                        num_tile_pipes;
+       unsigned                        backend_map;
+       boolean                         backend_map_valid;
 };
 
 /* these flags are used in register flags and added into block flags */
@@ -69,6 +52,7 @@ struct radeon {
 #define REG_FLAG_NOT_R600 8
 #define REG_FLAG_ENABLE_ALWAYS 16
 #define BLOCK_FLAG_RESOURCE 32
+#define REG_FLAG_FLUSH_CHANGE 64
 
 struct r600_reg {
        unsigned                        offset;
@@ -80,54 +64,25 @@ struct r600_reg {
 #define BO_BOUND_TEXTURE 1
 struct radeon_bo {
        struct pipe_reference           reference;
+       struct pb_buffer                *buf;
        unsigned                        handle;
        unsigned                        size;
-       unsigned                        alignment;
        int                             map_count;
        void                            *data;
-       struct list_head                fencedlist;
-       unsigned                        fence;
-       struct r600_context             *ctx;
-       boolean                         shared;
+
        struct r600_reloc               *reloc;
        unsigned                        reloc_id;
        unsigned                        last_flush;
-       unsigned                        name;
        unsigned                        binding;
 };
 
 struct r600_bo {
        struct pipe_reference           reference; /* this must be the first member for the r600_bo_reference inline to work */
        /* DO NOT MOVE THIS ^ */
-       unsigned                        size;
-       unsigned                        tiling_flags;
-       unsigned                        kernel_pitch;
        unsigned                        domains;
        struct radeon_bo                *bo;
-       unsigned                        fence;
-       /* manager data */
-       struct list_head                list;
-       unsigned                        manager_id;
-       unsigned                        alignment;
-       unsigned                        offset;
-       int64_t                         start;
-       int64_t                         end;
-};
-
-struct r600_bomgr {
-       struct radeon                   *radeon;
-       unsigned                        usecs;
-       pipe_mutex                      mutex;
-       struct list_head                delayed;
-       unsigned                        num_delayed;
 };
 
-/*
- * r600_drm.c
- */
-struct radeon *r600_new(int fd, unsigned device);
-void r600_delete(struct radeon *r600);
-
 /*
  * radeon_pciid.c
  */
@@ -137,7 +92,7 @@ unsigned radeon_family_from_device(unsigned device);
  * radeon_bo.c
  */
 struct radeon_bo *radeon_bo(struct radeon *radeon, unsigned handle,
-                           unsigned size, unsigned alignment, unsigned initial_domain);
+                           unsigned size, unsigned alignment, unsigned bind, unsigned initial_domain);
 void radeon_bo_reference(struct radeon *radeon, struct radeon_bo **dst,
                         struct radeon_bo *src);
 int radeon_bo_wait(struct radeon *radeon, struct radeon_bo *bo);
@@ -145,8 +100,7 @@ int radeon_bo_busy(struct radeon *radeon, struct radeon_bo *bo, uint32_t *domain
 int radeon_bo_fencelist(struct radeon *radeon, struct radeon_bo **bolist, uint32_t num_bo);
 int radeon_bo_get_tiling_flags(struct radeon *radeon,
                               struct radeon_bo *bo,
-                              uint32_t *tiling_flags,
-                              uint32_t *pitch);
+                              uint32_t *tiling_flags);
 int radeon_bo_get_name(struct radeon *radeon,
                       struct radeon_bo *bo,
                       uint32_t *name);
@@ -192,23 +146,6 @@ static INLINE void r600_context_bo_reloc(struct r600_context *ctx, u32 *pm4, str
  */
 void r600_bo_destroy(struct radeon *radeon, struct r600_bo *bo);
 
-/*
- * r600_bomgr.c
- */
-struct r600_bomgr *r600_bomgr_create(struct radeon *radeon, unsigned usecs);
-void r600_bomgr_destroy(struct r600_bomgr *mgr);
-boolean r600_bomgr_bo_destroy(struct r600_bomgr *mgr, struct r600_bo *bo);
-void r600_bomgr_bo_init(struct r600_bomgr *mgr, struct r600_bo *bo);
-struct r600_bo *r600_bomgr_bo_create(struct r600_bomgr *mgr,
-                                       unsigned size,
-                                       unsigned alignment,
-                                       unsigned cfence);
-
-
-/*
- * helpers
- */
-
 
 /*
  * radeon_bo.c