3 #include "state_tracker/drm_driver.h"
5 #include "i915_drm_winsys.h"
6 #include "i915_drm_public.h"
7 #include "util/u_memory.h"
16 i915_drm_get_device_id(unsigned int *device_id
)
19 struct drm_i915_getparam gp
;
21 gp
.param
= I915_PARAM_CHIPSET_ID
;
22 gp
.value
= (int *)devid
;
24 ret
= ioctl(fd
, DRM_IOCTL_I915_GETPARAM
, &gp
, sizeof(gp
));
29 i915_drm_winsys_destroy(struct i915_winsys
*iws
)
31 struct i915_drm_winsys
*idws
= i915_drm_winsys(iws
);
33 drm_intel_bufmgr_destroy(idws
->gem_manager
);
39 i915_drm_winsys_create(int drmFD
)
41 struct i915_drm_winsys
*idws
;
42 unsigned int deviceID
;
44 idws
= CALLOC_STRUCT(i915_drm_winsys
);
48 i915_drm_get_device_id(&deviceID
);
50 i915_drm_winsys_init_batchbuffer_functions(idws
);
51 i915_drm_winsys_init_buffer_functions(idws
);
52 i915_drm_winsys_init_fence_functions(idws
);
55 idws
->base
.pci_id
= deviceID
;
56 idws
->max_batch_size
= 16 * 4096;
58 idws
->base
.destroy
= i915_drm_winsys_destroy
;
60 idws
->gem_manager
= drm_intel_bufmgr_gem_init(idws
->fd
, idws
->max_batch_size
);
61 drm_intel_bufmgr_gem_enable_reuse(idws
->gem_manager
);
62 drm_intel_bufmgr_gem_enable_fenced_relocs(idws
->gem_manager
);
64 idws
->dump_cmd
= debug_get_bool_option("I915_DUMP_CMD", FALSE
);
65 idws
->dump_raw_file
= debug_get_option("I915_DUMP_RAW_FILE", NULL
);
66 idws
->send_cmd
= !debug_get_bool_option("I915_NO_HW", FALSE
);