summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/drm/i965/gem/intel_drm_winsys.h
diff options
context:
space:
mode:
authorKeith Whitwell <keithw@vmware.com>2009-10-23 23:36:02 +0100
committerKeith Whitwell <keithw@vmware.com>2009-10-23 23:36:02 +0100
commitb7efe646b66e617ff968cb69bad33308c3a2c06a (patch)
treeac1b055fa78caa16c438002858355b7cd9fa751c /src/gallium/winsys/drm/i965/gem/intel_drm_winsys.h
parent22906f730141a233341f3ec124bbb9dd2e8904e2 (diff)
ws/i965: clone the i915 winsys
I'll want to rework this, not sure trying to share this code is a very good idea at least until the interfaces from the two drivers calm down.
Diffstat (limited to 'src/gallium/winsys/drm/i965/gem/intel_drm_winsys.h')
-rw-r--r--src/gallium/winsys/drm/i965/gem/intel_drm_winsys.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/gallium/winsys/drm/i965/gem/intel_drm_winsys.h b/src/gallium/winsys/drm/i965/gem/intel_drm_winsys.h
new file mode 100644
index 0000000000..b4a60563ef
--- /dev/null
+++ b/src/gallium/winsys/drm/i965/gem/intel_drm_winsys.h
@@ -0,0 +1,78 @@
+
+#ifndef INTEL_DRM_WINSYS_H
+#define INTEL_DRM_WINSYS_H
+
+#include "i915/intel_batchbuffer.h"
+
+#include "drm.h"
+#include "intel_bufmgr.h"
+
+
+/*
+ * Winsys
+ */
+
+
+struct intel_drm_winsys
+{
+ struct intel_winsys base;
+
+ boolean softpipe;
+ boolean dump_cmd;
+
+ int fd; /**< Drm file discriptor */
+
+ unsigned id;
+
+ size_t max_batch_size;
+
+ struct {
+ drm_intel_bufmgr *gem;
+ } pools;
+};
+
+static INLINE struct intel_drm_winsys *
+intel_drm_winsys(struct intel_winsys *iws)
+{
+ return (struct intel_drm_winsys *)iws;
+}
+
+struct intel_drm_winsys * intel_drm_winsys_create(int fd, unsigned pci_id);
+struct pipe_fence_handle * intel_drm_fence_create(drm_intel_bo *bo);
+
+void intel_drm_winsys_init_batchbuffer_functions(struct intel_drm_winsys *idws);
+void intel_drm_winsys_init_buffer_functions(struct intel_drm_winsys *idws);
+void intel_drm_winsys_init_fence_functions(struct intel_drm_winsys *idws);
+
+
+/*
+ * Buffer
+ */
+
+
+struct intel_drm_buffer {
+ unsigned magic;
+
+ drm_intel_bo *bo;
+
+ void *ptr;
+ unsigned map_count;
+ boolean map_gtt;
+
+ boolean flinked;
+ unsigned flink;
+};
+
+static INLINE struct intel_drm_buffer *
+intel_drm_buffer(struct intel_buffer *buffer)
+{
+ return (struct intel_drm_buffer *)buffer;
+}
+
+static INLINE drm_intel_bo *
+intel_bo(struct intel_buffer *buffer)
+{
+ return intel_drm_buffer(buffer)->bo;
+}
+
+#endif