6 #include "state_tracker/drm_driver.h"
8 #include "i915_drm_winsys.h"
9 #include "i915_drm_public.h"
10 #include "util/u_memory.h"
19 i915_drm_get_device_id(int fd
, unsigned int *device_id
)
22 struct drm_i915_getparam gp
;
24 gp
.param
= I915_PARAM_CHIPSET_ID
;
25 gp
.value
= (int *)device_id
;
27 ret
= ioctl(fd
, DRM_IOCTL_I915_GETPARAM
, &gp
, sizeof(gp
));
32 i915_drm_winsys_destroy(struct i915_winsys
*iws
)
34 struct i915_drm_winsys
*idws
= i915_drm_winsys(iws
);
36 drm_intel_bufmgr_destroy(idws
->gem_manager
);
42 i915_drm_winsys_create(int drmFD
)
44 struct i915_drm_winsys
*idws
;
45 unsigned int deviceID
;
47 idws
= CALLOC_STRUCT(i915_drm_winsys
);
51 i915_drm_get_device_id(drmFD
, &deviceID
);
53 i915_drm_winsys_init_batchbuffer_functions(idws
);
54 i915_drm_winsys_init_buffer_functions(idws
);
55 i915_drm_winsys_init_fence_functions(idws
);
58 idws
->base
.pci_id
= deviceID
;
59 idws
->max_batch_size
= 16 * 4096;
61 idws
->base
.destroy
= i915_drm_winsys_destroy
;
63 idws
->gem_manager
= drm_intel_bufmgr_gem_init(idws
->fd
, idws
->max_batch_size
);
64 drm_intel_bufmgr_gem_enable_reuse(idws
->gem_manager
);
65 drm_intel_bufmgr_gem_enable_fenced_relocs(idws
->gem_manager
);
67 idws
->dump_cmd
= debug_get_bool_option("I915_DUMP_CMD", FALSE
);
68 idws
->dump_raw_file
= debug_get_option("I915_DUMP_RAW_FILE", NULL
);
69 idws
->send_cmd
= !debug_get_bool_option("I915_NO_HW", FALSE
);