I assert xf86-video-intel problems due to 2 bugs SIX characters total

David Shao davshao at gmail.com
Fri Mar 17 02:02:49 UTC 2017

My testing using pkgsrc merged with FreeBSD ports patches on
FreeBSD 11-release, 11-stable, and 12-current has shown that only
2 bugs, a total of SIX characters, were preventing proper functioning
of xf86-video-intel, one of those bugs not even in xf86-video-intel but
instead in libdrm.  The xf86-video-intel was instantly patched minutes
after I submitted a bug report.  I also submitted the libdrm bug report:


"libdrm atomic_add_unless() may reverse return value meaning"

--- xf86atomic.h.orig 2015-09-22 04:34:51.000000000 +0000
+++ xf86atomic.h
@@ -111,7 +111,7 @@ static inline int atomic_add_unless(atom
  c = atomic_read(v);
  while (c != unless && (old = atomic_cmpxchg(v, c, c + add)) != c)
  c = old;
- return c == unless;
+ return c != unless;

I am curious what exactly people are successfully running.  Are they
even using xf86-video-intel?

I am using libdrm 2.4.75, mesa 17.0.1, xorg-server 1.19.2, and
xf86-video-intel up through the 2017-02-28 patch for the above bug.
For mesa 17.0.1 I am using --enable-glx-tls in full awareness that
FreeBSD does not match what Linux's glibc does.

For an Intel IvyBridge machine with an i3-3225 CPU, Xorg.0.log has
entries similar to:

[   240.791] intel: card at 0:2:0 is claimed by a Device section
[   240.792] (II) intel(0): Using Kernel Mode Setting driver: i915,
version 1.6.0 20080730
[   240.792] (II) intel(0): SNA compiled with assertions enabled
[   240.827] (WW) Falling back to old probe method for vesa
[   240.827] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[   240.828] (--) intel(0): Integrated Graphics Chipset: Intel(R) HD
Graphics 4000
[   240.901] (II) intel(0): SNA initialized with Ivybridge (gen7, gt2) backend
[   240.901] (==) intel(0): Backing store enabled
[   240.901] (==) intel(0): Silken mouse enabled
[   240.902] (II) intel(0): HW Cursor enabled
[   240.902] (II) intel(0): RandR 1.2 enabled, ignore the following
RandR disabled message.
[   240.904] (==) intel(0): DPMS enabled
[   240.919] (II) intel(0): [DRI2] Setup complete
[   240.919] (II) intel(0): [DRI2]   DRI driver: i965
[   240.919] (II) intel(0): [DRI2]   VDPAU driver: va_gl
[   240.919] (II) intel(0): direct rendering: DRI2 enabled
[   240.919] (II) intel(0): hardware support for Present enabled
[   240.919] InitOutput - xf86Screens[0]->pScreen = 0x803538400
[   240.919] xf86Screens[0]->pScreen->CreateWindow = 0x805a5a230
[   240.919] (--) RandR disabled
[   240.926] XFree86VidModeExtensionInitVidModeAddExtension
[   241.156] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
[   241.156] (II) AIGLX: enabled GLX_ARB_create_context
[   241.156] (II) AIGLX: enabled GLX_ARB_create_context_profile
[   241.156] (II) AIGLX: enabled GLX_EXT_create_context_es{,2}_profile
[   241.156] (II) AIGLX: enabled GLX_INTEL_swap_event

etc.  So SNA with dri2.

For Firefox 52, I use:

LD_PRELOAD=/usr/pkg/lib/libGL.so firefox &

In about:config I set
layers.acceleration.force-enabled true

If you try and follow this, know how to edit the local prefs.js!

Then in about:support I obtain:

Compositing    OpenGL
Asynchronous Pan/Zoom    none
WebGL Renderer    Intel Open Source Technology Center -- Mesa DRI
Intel(R) Ivybridge Desktop
WebGL2 Renderer    Intel Open Source Technology Center -- Mesa DRI
Intel(R) Ivybridge Desktop
Hardware H264 Decoding    No
Audio Backend    oss
GPU #1
Active    Yes
Description    Intel Open Source Technology Center -- Mesa DRI
Intel(R) Ivybridge Desktop
Vendor ID    Intel Open Source Technology Center
Device ID    Mesa DRI Intel(R) Ivybridge Desktop
Driver Version    3.0 Mesa 17.0.1
AzureCanvasAccelerated    0
AzureCanvasBackend    skia
AzureContentBackend    skia
AzureFallbackCanvasBackend    none
CairoUseXRender    0
Decision Log
blocked by default: Acceleration blocked by platform
force_enabled by user: Force-enabled by pref
force_enabled by user: Force-enabled by pref

I am then able to go to sites such as


to view the webgl demos.  Again before trying these demos
know how to edit prefs.js!

Now for the sake of full disclosure, on the IvyBridge machine
running FreeBSD 12-current, after a while there have been
lockup problems with WebGL Water


(Same pkgsrc code on NetBSD current lower tier Radeon card
on another amd cpu machine very smoothly runs webgl-water.)

To summarize, applications such as glxgears and Firefox with
webgl and hardware acceleration enabled work for me with the
ONE CHARACTER patch to libdrm in atomic_add_unless, using
xf86-video-intel.  I'm writing this right now in the same Firefox 52 on

FreeBSD xxxxxx.xxx 12.0-CURRENT FreeBSD 12.0-CURRENT
#2 r314974+16bf7dd2d06(svn_head): Wed Mar 15 20:52:59 PDT 2017
xxxxxx at xxxxxx.xxx:/usr/obj/usr/src/sys/GENERIC  amd64

More information about the freebsd-x11 mailing list