1bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 2bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz#ifndef INTEL_DRM_WINSYS_H 3bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz#define INTEL_DRM_WINSYS_H 4bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 5bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz#include "i915/i915_batchbuffer.h" 6bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 7bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz#include "drm.h" 8bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz#include "intel_bufmgr.h" 9bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 10bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 11bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz/* 12bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz * Winsys 13bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz */ 14bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 15bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 16bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzstruct i915_drm_winsys 17bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz{ 18bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz struct i915_winsys base; 19bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 20bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz boolean dump_cmd; 21fc30910c65e7ab078b900c29d2066e45d3edd8c2Brian Paul const char *dump_raw_file; 222d818ed0f86b216774dd4663b12aa0bb3119c215Jakob Bornecrantz boolean send_cmd; 23bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 24bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz int fd; /**< Drm file discriptor */ 25bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 26bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz size_t max_batch_size; 27bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 28c8fca58d9d5b3f25cb1ac2056ac2b437b79c04eeDaniel Vetter drm_intel_bufmgr *gem_manager; 29bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz}; 30bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 31bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzstatic INLINE struct i915_drm_winsys * 32bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzi915_drm_winsys(struct i915_winsys *iws) 33bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz{ 34bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz return (struct i915_drm_winsys *)iws; 35bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz} 36bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 37bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzstruct pipe_fence_handle * i915_drm_fence_create(drm_intel_bo *bo); 38bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 39bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzvoid i915_drm_winsys_init_batchbuffer_functions(struct i915_drm_winsys *idws); 40bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzvoid i915_drm_winsys_init_buffer_functions(struct i915_drm_winsys *idws); 41bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzvoid i915_drm_winsys_init_fence_functions(struct i915_drm_winsys *idws); 42bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 43bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 44bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz/* 45bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz * Buffer 46bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz */ 47bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 48bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 49bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzstruct i915_drm_buffer { 50bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz unsigned magic; 51bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 52bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz drm_intel_bo *bo; 53bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 54bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz void *ptr; 55bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz unsigned map_count; 56bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 57bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz boolean flinked; 58bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz unsigned flink; 59bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz}; 60bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 61bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzstatic INLINE struct i915_drm_buffer * 62bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzi915_drm_buffer(struct i915_winsys_buffer *buffer) 63bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz{ 64bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz return (struct i915_drm_buffer *)buffer; 65bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz} 66bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 67bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzstatic INLINE drm_intel_bo * 68bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantzintel_bo(struct i915_winsys_buffer *buffer) 69bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz{ 70bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz return i915_drm_buffer(buffer)->bo; 71bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz} 72bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz 73bc88c95990f871a206a8fe93e7541f1f41841f7eJakob Bornecrantz#endif 74