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;
242 intel_screen_private *intel = intel_get_screen_private(scrn);
245 intel->dri2 = intel->dri3 = DRI_NONE;
246 level = intel_option_cast_to_unsigned(intel->Options, OPTION_DRI, DEFAULT_DRI_LEVEL);
247 if (level < 3 || INTEL_INFO(intel)->gen < 040)
248 intel->dri3 = DRI_DISABLED;
250 intel->dri2 = DRI_DISABLED;
256 intel->dri2 = intel->dri3 = DRI_DISABLED;
262 intel_screen_private *intel = intel_get_screen_private(scrn);
263 intel->dev = intel_get_device(scrn, &intel->drmSubFD);
264 return intel->dev != NULL;
267 static int intel_init_bufmgr(intel_screen_private *intel)
272 if (IS_I865G(intel))
276 intel->bufmgr = drm_intel_bufmgr_gem_init(intel->drmSubFD, batch_size);
277 if (!intel->bufmgr)
280 if (xf86ReturnOptValBool(intel->Options, OPTION_BUFFER_CACHE, TRUE))
281 drm_intel_bufmgr_gem_enable_reuse(intel->bufmgr);
282 drm_intel_bufmgr_gem_set_vma_cache_size(intel->bufmgr, 512);
283 drm_intel_bufmgr_gem_enable_fenced_relocs(intel->bufmgr);
285 list_init(&intel->batch_pixmaps);
287 if ((INTEL_INFO(intel)->gen == 060)) {
288 intel->wa_scratch_bo =
289 drm_intel_bo_alloc(intel->bufmgr, "wa scratch",
296 static void intel_bufmgr_fini(intel_screen_private *intel)
298 if (intel->bufmgr == NULL)
301 drm_intel_bo_unreference(intel->wa_scratch_bo);
302 drm_intel_bufmgr_destroy(intel->bufmgr);
307 intel_screen_private *intel = intel_get_screen_private(scrn);
310 intel->XvPreferOverlay =
311 xf86ReturnOptValBool(intel->Options, OPTION_PREFER_OVERLAY, FALSE);
313 if (xf86GetOptValInteger(intel->Options, OPTION_VIDEO_KEY,
314 &(intel->colorKey))) {
316 } else if (xf86GetOptValInteger(intel->Options, OPTION_COLOR_KEY,
317 &(intel->colorKey))) {
320 intel->colorKey =
327 intel->colorKey);
330 static Bool drm_has_boolean_param(struct intel_screen_private *intel,
338 if (drmIoctl(intel->drmSubFD, DRM_IOCTL_I915_GETPARAM, &gp))
344 static Bool has_kernel_flush(struct intel_screen_private *intel)
349 return drm_has_boolean_param(intel, I915_PARAM_HAS_BLT);
352 static Bool has_relaxed_fencing(struct intel_screen_private *intel)
354 return drm_has_boolean_param(intel, I915_PARAM_HAS_RELAXED_FENCING);
357 static Bool has_prime_vmap_flush(struct intel_screen_private *intel)
359 return drm_has_boolean_param(intel, I915_PARAM_HAS_PRIME_VMAP_FLUSH);
362 static Bool can_accelerate_blt(struct intel_screen_private *intel)
364 if (INTEL_INFO(intel)->gen == -1)
367 if (!xf86ReturnOptValBool(intel->Options, OPTION_ACCEL_ENABLE, TRUE) ||
368 !intel_option_cast_to_bool(intel->Options, OPTION_ACCEL_METHOD, TRUE)) {
369 xf86DrvMsg(intel->scrn->scrnIndex, X_CONFIG,
374 if (INTEL_INFO(intel)->gen == 060) {
375 struct pci_device *const device = xf86GetPciInfoForEntity(intel->pEnt->index);
382 xf86DrvMsg(intel->scrn->scrnIndex, X_WARNING,
389 if (INTEL_INFO(intel)->gen >= 060) {
398 if (drmIoctl(intel->drmSubFD, DRM_IOCTL_I915_GETPARAM, &gp))
408 intel_screen_private *intel = intel_get_screen_private(scrn);
414 ret = drmGetCap(intel->drmSubFD, DRM_CAP_PRIME, &value);
439 intel_screen_private *intel;
463 intel = xnfcalloc(sizeof(*intel), 1);
464 if (intel == NULL)
467 intel->info = (void *)((uintptr_t)scrn->driverPrivate & ~3);
468 scrn->driverPrivate = intel;
470 intel = intel_get_screen_private(scrn);
471 intel->scrn = scrn;
472 intel->pEnt = pEnt;
500 "Given depth (%d) is not supported by intel driver\n",
511 intel->cpp = scrn->bitsPerPixel / 8;
520 if (!intel_init_bufmgr(intel)) {
525 intel->force_fallback =
526 drmCommandNone(intel->drmSubFD, DRM_I915_GEM_THROTTLE) != 0;
529 intel->tiling = INTEL_TILING_ALL;
532 if (!xf86ReturnOptValBool(intel->Options, OPTION_TILING_2D, TRUE))
533 intel->tiling &= ~INTEL_TILING_2D;
534 if (xf86ReturnOptValBool(intel->Options, OPTION_TILING_FB, FALSE))
535 intel->tiling &= ~INTEL_TILING_FB;
536 if (!can_accelerate_blt(intel)) {
537 intel->force_fallback = TRUE;
538 intel->tiling &= ~INTEL_TILING_FB;
541 intel->has_kernel_flush = has_kernel_flush(intel);
543 intel->has_prime_vmap_flush = has_prime_vmap_flush(intel);
545 intel->has_relaxed_fencing = INTEL_INFO(intel)->gen >= 033;
547 if (intel->has_relaxed_fencing)
548 intel->has_relaxed_fencing = has_relaxed_fencing(intel);
552 intel->has_relaxed_fencing ? "enabled" : "disabled");
555 intel->swapbuffers_wait = xf86ReturnOptValBool(intel->Options,
559 intel->swapbuffers_wait ? "enabled" : "disabled");
561 intel->use_triple_buffer =
562 xf86ReturnOptValBool(intel->Options,
566 intel->use_triple_buffer ? "enabled" : "disabled");
569 intel->tiling & INTEL_TILING_FB ? "tiled" : "linear");
571 intel->tiling & INTEL_TILING_2D ? "tiled" : "linear");
573 intel->tiling & INTEL_TILING_3D ? "tiled" : "linear");
575 intel->swapbuffers_wait ? "en" : "dis");
579 if (!intel_mode_pre_init(scrn, intel->drmSubFD, intel->cpp)) {
607 if (intel->dri2 != DRI_DISABLED && !xf86LoadSubModule(scrn, "dri2"))
608 intel->dri2 = DRI_DISABLED;
611 if (intel->dri3 != DRI_DISABLED && !xf86LoadSubModule(scrn, "dri3"))
612 intel->dri3 = DRI_DISABLED;
627 intel_screen_private *intel = intel_get_screen_private(scrn);
645 intel_flush(intel);
646 if (!intel->has_prime_vmap_flush) {
659 intel_dirty_update(intel_screen_private *intel)
661 ScreenPtr screen = xf86ScrnToScreen(intel->scrn);
684 intel_screen_private *intel = intel_get_screen_private(scrn);
686 screen->BlockHandler = intel->BlockHandler;
690 intel->BlockHandler = screen->BlockHandler;
693 intel_uxa_block_handler(intel);
694 intel_video_block_handler(intel);
696 intel_dirty_update(intel);
703 intel_screen_private *intel = data;
705 intel_uxa_block_handler(intel);
706 intel_video_block_handler(intel);
708 intel_dirty_update(intel);
716 intel_screen_private *intel = intel_get_screen_private(scrn);
722 intel->front_buffer = intel_allocate_framebuffer(scrn,
724 intel->cpp,
727 if (!intel->front_buffer) {
733 intel->front_pitch = pitch;
734 intel->front_tiling = tiling;
735 scrn->displayWidth = pitch / intel->cpp;
756 intel_screen_private *intel = intel_get_screen_private(scrn);
762 dev = udev_monitor_receive_device(intel->uevent_monitor);
767 if (fstat(intel->drmSubFD, &s)) {
782 intel_mode_hotplug(intel);
800 intel_screen_private *intel = intel_get_screen_private(scrn);
810 if (!xf86GetOptValBool(intel->Options, OPTION_HOTPLUG, &hotplug)) {
841 intel->uevent_handler = xf86AddGeneralHandler(udev_monitor_get_fd(mon),
843 if (!intel->uevent_handler) {
849 intel->uevent_monitor = mon;
855 intel_screen_private *intel = intel_get_screen_private(scrn);
857 if (intel->uevent_handler) {
858 struct udev *u = udev_monitor_get_udev(intel->uevent_monitor);
860 xf86RemoveGeneralHandler(intel->uevent_handler);
862 udev_monitor_unref(intel->uevent_monitor);
864 intel->uevent_handler = NULL;
865 intel->uevent_monitor = NULL;
874 intel_screen_private *intel = intel_get_screen_private(scrn);
879 struct pci_device *const device = xf86GetPciInfoForEntity(intel->pEnt->index);
880 int fb_bar = IS_GEN2(intel) ? 0 : 2;
884 intel->last_3d = LAST_3D_OTHER;
885 intel->overlayOn = FALSE;
891 intel->XvEnabled = TRUE;
937 if (intel->dri2 == DRI_NONE && I830DRI2ScreenInit(screen))
938 intel->dri2 = DRI_ACTIVE;
943 intel->dri3 = DRI_DISABLED;
944 if (intel->dri3 == DRI_NONE && intel_dri3_screen_init(screen))
945 intel->dri3 = DRI_ACTIVE;
948 if (xf86ReturnOptValBool(intel->Options, OPTION_PRESENT, TRUE))
970 intel->BlockHandler = screen->BlockHandler;
975 intel);
987 intel->CloseScreen = screen->CloseScreen;
989 intel->CreateScreenResources = screen->CreateScreenResources;
1011 if (INTEL_INFO(intel)->gen >= 040)
1012 intel->XvMCEnabled = TRUE;
1013 from = (intel->dri2 == DRI_ACTIVE &&
1014 xf86GetOptValBool(intel->Options, OPTION_XVMC,
1015 &intel->XvMCEnabled) ? X_CONFIG : X_DEFAULT);
1017 intel->XvMCEnabled ? "en" : "dis");
1020 if (intel->XvEnabled)
1024 switch (intel->dri2) {
1044 switch (intel->dri3) {
1066 intel_mode_init(intel);
1068 intel->suspended = FALSE;
1088 intel_screen_private *intel = intel_get_screen_private(scrn);
1090 if (intel && !((uintptr_t)intel & 3)) {
1091 intel_mode_fini(intel);
1092 intel_bufmgr_fini(intel);
1093 intel_put_device(intel->dev);
1095 free(intel);
1103 intel_screen_private *intel = intel_get_screen_private(scrn);
1109 if (intel_put_master(intel->dev))
1120 intel_screen_private *intel = intel_get_screen_private(scrn);
1122 if (intel_get_master(intel->dev)) {
1146 intel_screen_private *intel = intel_get_screen_private(scrn);
1152 intel_mode_close(intel);
1156 TimerFree(intel->cache_expire);
1157 intel->cache_expire = NULL;
1159 if (intel->uxa_driver) {
1161 free(intel->uxa_driver);
1162 intel->uxa_driver = NULL;
1165 if (intel->back_buffer) {
1166 drm_intel_bo_unreference(intel->back_buffer);
1167 intel->back_buffer = NULL;
1170 if (intel->front_buffer) {
1171 intel_mode_remove_fb(intel);
1172 drm_intel_bo_unreference(intel->front_buffer);
1173 intel->front_buffer = NULL;
1182 if (INTEL_INFO(intel)->gen >= 040 && INTEL_INFO(intel)->gen < 0100)
1189 screen->CloseScreen = intel->CloseScreen;
1192 if (intel->dri2 == DRI_ACTIVE) {
1194 intel->dri2 = DRI_NONE;
1197 if (intel->dri3 == DRI_ACTIVE) {
1199 intel->dri3 = DRI_NONE;
1238 intel_screen_private *intel = intel_get_screen_private(scrn);
1246 if (!undo && !intel->suspended) {
1248 intel->suspended = TRUE;
1250 } else if (undo && intel->suspended) {
1253 intel->suspended = FALSE;
1259 if (intel->suspended) {
1262 intel->suspended = FALSE;