diff options
author | Jakob Bornecrantz <[email protected]> | 2009-09-01 00:42:39 +0100 |
---|---|---|
committer | Jakob Bornecrantz <[email protected]> | 2009-09-01 00:47:02 +0100 |
commit | 935e4c56e5b10a0a702d95f78e9f4e6660c452dc (patch) | |
tree | bf5b550ac5159ca9755cd269c875f9f872ae2bf2 /src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h | |
parent | d2110064c2075a8537d4b7f87ba894ebaa6ccb33 (diff) |
i915g: Implement new winsys
Diffstat (limited to 'src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h')
-rw-r--r-- | src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h b/src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h new file mode 100644 index 00000000000..415c45feea0 --- /dev/null +++ b/src/gallium/winsys/drm/intel/gem/intel_drm_winsys.h @@ -0,0 +1,78 @@ + +#ifndef INTEL_DRM_WINSYS_H +#define INTEL_DRM_WINSYS_H + +#include "i915simple/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 |