Lines Matching refs:intel
62 #include "intel.h"
159 intel_screen_private *intel = intel_get_screen_private(scrn);
161 screen->CreateScreenResources = intel->CreateScreenResources;
185 intel_flush(intel_screen_private *intel)
187 intel_batch_submit(intel->scrn);
201 intel_screen_private *intel = intel_get_screen_private(scrn);
202 intel_detect_chipset(scrn, intel->dev);
207 intel_screen_private *intel = intel_get_screen_private(scrn);
210 intel->Options = intel_options_get(scrn);
211 if (!intel->Options)
215 intel->fallback_debug = xf86ReturnOptValBool(intel->Options,
219 intel->debug_flush = 0;
221 if (xf86ReturnOptValBool(intel->Options,
224 intel->debug_flush |= DEBUG_FLUSH_BATCHES;
226 if (xf86ReturnOptValBool(intel->Options,
229 intel->debug_flush |= DEBUG_FLUSH_CACHES;
231 if (xf86ReturnOptValBool(intel->Options,
234 intel->debug_flush |= DEBUG_FLUSH_WAIT;
240 static Bool intel_option_cast_string_to_bool(intel_screen_private *intel,
244 xf86getBoolValue(&val, xf86GetOptValString(intel->Options, id));
253 intel_screen_private *intel = intel_get_screen_private(scrn);
255 intel->dri2 = intel->dri3 = DRI_NONE;
256 if (!intel_option_cast_string_to_bool(intel, OPTION_DRI, TRUE))
257 intel->dri2 = intel->dri3 = DRI_DISABLED;
263 intel->dri2 = intel->dri3 = DRI_DISABLED;
269 intel_screen_private *intel = intel_get_screen_private(scrn);
270 intel->dev = intel_get_device(scrn, &intel->drmSubFD);
271 return intel->dev != NULL;
274 static int intel_init_bufmgr(intel_screen_private *intel)
279 if (IS_I865G(intel))
283 intel->bufmgr = drm_intel_bufmgr_gem_init(intel->drmSubFD, batch_size);
284 if (!intel->bufmgr)
287 if (xf86ReturnOptValBool(intel->Options, OPTION_BUFFER_CACHE, TRUE))
288 drm_intel_bufmgr_gem_enable_reuse(intel->bufmgr);
289 drm_intel_bufmgr_gem_set_vma_cache_size(intel->bufmgr, 512);
290 drm_intel_bufmgr_gem_enable_fenced_relocs(intel->bufmgr);
292 list_init(&intel->batch_pixmaps);
294 if ((INTEL_INFO(intel)->gen == 060)) {
295 intel->wa_scratch_bo =
296 drm_intel_bo_alloc(intel->bufmgr, "wa scratch",
303 static void intel_bufmgr_fini(intel_screen_private *intel)
305 if (intel->bufmgr == NULL)
308 drm_intel_bo_unreference(intel->wa_scratch_bo);
309 drm_intel_bufmgr_destroy(intel->bufmgr);
314 intel_screen_private *intel = intel_get_screen_private(scrn);
317 intel->XvPreferOverlay =
318 xf86ReturnOptValBool(intel->Options, OPTION_PREFER_OVERLAY, FALSE);
320 if (xf86GetOptValInteger(intel->Options, OPTION_VIDEO_KEY,
321 &(intel->colorKey))) {
323 } else if (xf86GetOptValInteger(intel->Options, OPTION_COLOR_KEY,
324 &(intel->colorKey))) {
327 intel->colorKey =
334 intel->colorKey);
337 static Bool drm_has_boolean_param(struct intel_screen_private *intel,
345 if (drmIoctl(intel->drmSubFD, DRM_IOCTL_I915_GETPARAM, &gp))
351 static Bool has_kernel_flush(struct intel_screen_private *intel)
356 return drm_has_boolean_param(intel, I915_PARAM_HAS_BLT);
359 static Bool has_relaxed_fencing(struct intel_screen_private *intel)
361 return drm_has_boolean_param(intel, I915_PARAM_HAS_RELAXED_FENCING);
364 static Bool has_prime_vmap_flush(struct intel_screen_private *intel)
366 return drm_has_boolean_param(intel, I915_PARAM_HAS_PRIME_VMAP_FLUSH);
369 static Bool can_accelerate_blt(struct intel_screen_private *intel)
371 if (INTEL_INFO(intel)->gen == -1)
374 if (xf86ReturnOptValBool(intel->Options, OPTION_ACCEL_DISABLE, FALSE) ||
375 !intel_option_cast_string_to_bool(intel, OPTION_ACCEL_METHOD, TRUE)) {
376 xf86DrvMsg(intel->scrn->scrnIndex, X_CONFIG,
381 if (INTEL_INFO(intel)->gen == 060) {
382 struct pci_device *const device = xf86GetPciInfoForEntity(intel->pEnt->index);
389 xf86DrvMsg(intel->scrn->scrnIndex, X_WARNING,
396 if (INTEL_INFO(intel)->gen >= 060) {
405 if (drmIoctl(intel->drmSubFD, DRM_IOCTL_I915_GETPARAM, &gp))
415 intel_screen_private *intel = intel_get_screen_private(scrn);
421 ret = drmGetCap(intel->drmSubFD, DRM_CAP_PRIME, &value);
446 intel_screen_private *intel;
470 intel = xnfcalloc(sizeof(*intel), 1);
471 if (intel == NULL)
474 intel->info = (void *)((uintptr_t)scrn->driverPrivate & ~3);
475 scrn->driverPrivate = intel;
477 intel = intel_get_screen_private(scrn);
478 intel->scrn = scrn;
479 intel->pEnt = pEnt;
507 "Given depth (%d) is not supported by intel driver\n",
518 intel->cpp = scrn->bitsPerPixel / 8;
527 if (!intel_init_bufmgr(intel)) {
532 intel->force_fallback =
533 drmCommandNone(intel->drmSubFD, DRM_I915_GEM_THROTTLE) != 0;
536 intel->tiling = INTEL_TILING_ALL;
539 if (!xf86ReturnOptValBool(intel->Options, OPTION_TILING_2D, TRUE))
540 intel->tiling &= ~INTEL_TILING_2D;
541 if (xf86ReturnOptValBool(intel->Options, OPTION_TILING_FB, FALSE))
542 intel->tiling &= ~INTEL_TILING_FB;
543 if (!can_accelerate_blt(intel)) {
544 intel->force_fallback = TRUE;
545 intel->tiling &= ~INTEL_TILING_FB;
548 intel->has_kernel_flush = has_kernel_flush(intel);
550 intel->has_prime_vmap_flush = has_prime_vmap_flush(intel);
552 intel->has_relaxed_fencing = INTEL_INFO(intel)->gen >= 033;
554 if (intel->has_relaxed_fencing)
555 intel->has_relaxed_fencing = has_relaxed_fencing(intel);
559 intel->has_relaxed_fencing ? "enabled" : "disabled");
562 intel->swapbuffers_wait = xf86ReturnOptValBool(intel->Options,
566 intel->swapbuffers_wait ? "enabled" : "disabled");
568 intel->use_triple_buffer =
569 xf86ReturnOptValBool(intel->Options,
573 intel->use_triple_buffer ? "enabled" : "disabled");
576 intel->tiling & INTEL_TILING_FB ? "tiled" : "linear");
578 intel->tiling & INTEL_TILING_2D ? "tiled" : "linear");
580 intel->tiling & INTEL_TILING_3D ? "tiled" : "linear");
582 intel->swapbuffers_wait ? "en" : "dis");
586 if (!intel_mode_pre_init(scrn, intel->drmSubFD, intel->cpp)) {
614 if (intel->dri2 != DRI_DISABLED && !xf86LoadSubModule(scrn, "dri2"))
615 intel->dri2 = DRI_DISABLED;
618 if (intel->dri3 != DRI_DISABLED && !xf86LoadSubModule(scrn, "dri3"))
619 intel->dri3 = DRI_DISABLED;
634 intel_screen_private *intel = intel_get_screen_private(scrn);
656 intel_flush(intel);
657 if (!intel->has_prime_vmap_flush) {
693 intel_screen_private *intel = intel_get_screen_private(scrn);
695 screen->BlockHandler = intel->BlockHandler;
699 intel->BlockHandler = screen->BlockHandler;
702 intel_uxa_block_handler(intel);
703 intel_video_block_handler(intel);
712 intel_screen_private *intel = intel_get_screen_private(scrn);
718 intel->front_buffer = intel_allocate_framebuffer(scrn,
720 intel->cpp,
723 if (!intel->front_buffer) {
729 intel->front_pitch = pitch;
730 intel->front_tiling = tiling;
731 scrn->displayWidth = pitch / intel->cpp;
750 intel_screen_private *intel = intel_get_screen_private(scrn);
756 dev = udev_monitor_receive_device(intel->uevent_monitor);
761 if (fstat(intel->drmSubFD, &s)) {
776 intel_mode_hotplug(intel);
785 intel_screen_private *intel = intel_get_screen_private(scrn);
791 if (!xf86GetOptValBool(intel->Options, OPTION_HOTPLUG, &hotplug)) {
822 intel->uevent_handler = xf86AddGeneralHandler(udev_monitor_get_fd(mon),
824 if (!intel->uevent_handler) {
830 intel->uevent_monitor = mon;
836 intel_screen_private *intel = intel_get_screen_private(scrn);
838 if (intel->uevent_handler) {
839 struct udev *u = udev_monitor_get_udev(intel->uevent_monitor);
841 xf86RemoveGeneralHandler(intel->uevent_handler);
843 udev_monitor_unref(intel->uevent_monitor);
845 intel->uevent_handler = NULL;
846 intel->uevent_monitor = NULL;
855 intel_screen_private *intel = intel_get_screen_private(scrn);
860 struct pci_device *const device = xf86GetPciInfoForEntity(intel->pEnt->index);
861 int fb_bar = IS_GEN2(intel) ? 0 : 2;
865 intel->last_3d = LAST_3D_OTHER;
866 intel->overlayOn = FALSE;
872 intel->XvEnabled = TRUE;
918 if (intel->dri2 == DRI_NONE && I830DRI2ScreenInit(screen))
919 intel->dri2 = DRI_ACTIVE;
924 intel->dri3 = DRI_DISABLED;
925 if (intel->dri3 == DRI_NONE && intel_dri3_screen_init(screen))
926 intel->dri3 = DRI_ACTIVE;
929 if (xf86ReturnOptValBool(intel->Options, OPTION_PRESENT, TRUE))
950 intel->BlockHandler = screen->BlockHandler;
962 intel->CloseScreen = screen->CloseScreen;
964 intel->CreateScreenResources = screen->CreateScreenResources;
982 if (INTEL_INFO(intel)->gen >= 040)
983 intel->XvMCEnabled = TRUE;
984 from = (intel->dri2 == DRI_ACTIVE &&
985 xf86GetOptValBool(intel->Options, OPTION_XVMC,
986 &intel->XvMCEnabled) ? X_CONFIG : X_DEFAULT);
988 intel->XvMCEnabled ? "en" : "dis");
991 if (intel->XvEnabled)
995 switch (intel->dri2) {
1015 switch (intel->dri3) {
1037 intel_mode_init(intel);
1039 intel->suspended = FALSE;
1059 intel_screen_private *intel = intel_get_screen_private(scrn);
1061 if (intel && !((uintptr_t)intel & 3)) {
1062 intel_mode_fini(intel);
1063 intel_bufmgr_fini(intel);
1064 intel_put_device(intel->dev);
1066 free(intel);
1074 intel_screen_private *intel = intel_get_screen_private(scrn);
1080 if (intel_put_master(intel->dev))
1091 intel_screen_private *intel = intel_get_screen_private(scrn);
1093 if (intel_get_master(intel->dev)) {
1117 intel_screen_private *intel = intel_get_screen_private(scrn);
1123 intel_mode_close(intel);
1127 TimerFree(intel->cache_expire);
1128 intel->cache_expire = NULL;
1130 if (intel->uxa_driver) {
1132 free(intel->uxa_driver);
1133 intel->uxa_driver = NULL;
1136 if (intel->back_buffer) {
1137 drm_intel_bo_unreference(intel->back_buffer);
1138 intel->back_buffer = NULL;
1141 if (intel->front_buffer) {
1142 intel_mode_remove_fb(intel);
1143 drm_intel_bo_unreference(intel->front_buffer);
1144 intel->front_buffer = NULL;
1153 if (INTEL_INFO(intel)->gen >= 040 && INTEL_INFO(intel)->gen < 0100)
1160 screen->CloseScreen = intel->CloseScreen;
1163 if (intel->dri2 == DRI_ACTIVE) {
1165 intel->dri2 = DRI_NONE;
1168 if (intel->dri3 == DRI_ACTIVE) {
1170 intel->dri3 = DRI_NONE;
1211 intel_screen_private *intel = intel_get_screen_private(scrn);
1219 if (!undo && !intel->suspended) {
1221 intel->suspended = TRUE;
1223 } else if (undo && intel->suspended) {
1226 intel->suspended = FALSE;
1232 if (intel->suspended) {
1235 intel->suspended = FALSE;