xf86-video-intel: 6 commits - src/sna/gen3_render.c src/sna/gen4_render.c src/sna/gen5_render.c src/sna/gen6_render.c src/sna/gen7_render.c src/sna/kgem.c src/sna/kgem.h src/sna/sna_accel.c src/sna/sna_display.c src/sna/sna_dri.c src/sna/sna_driver.c src/sna/sna.h src/sna/sna_render.h src/sna/sna_transform.c src/sna/sna_video.h

Chris Wilson ickle at kemper.freedesktop.org
Tue May 29 05:13:37 PDT 2012


 src/sna/gen3_render.c   |    5 --
 src/sna/gen4_render.c   |    6 --
 src/sna/gen5_render.c   |    2 
 src/sna/gen6_render.c   |    2 
 src/sna/gen7_render.c   |    2 
 src/sna/kgem.c          |    4 +
 src/sna/kgem.h          |    5 ++
 src/sna/sna.h           |    9 +---
 src/sna/sna_accel.c     |   16 +++----
 src/sna/sna_display.c   |  107 ++++++++++++++++++++++--------------------------
 src/sna/sna_dri.c       |    9 +---
 src/sna/sna_driver.c    |    1 
 src/sna/sna_render.h    |    2 
 src/sna/sna_transform.c |    1 
 src/sna/sna_video.h     |    2 
 15 files changed, 80 insertions(+), 93 deletions(-)

New commits:
commit 264d1b1e1fb368f7845a8112bfa2ad2224acabd9
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue May 29 13:03:56 2012 +0100

    sna: Also check for a free exec slot for the upload buffers
    
    As we check before allocating the upload buffer, we can not be certain
    that we will allocate an already attached bo or that we have a free exec
    slot. So always check that we have an extra exec slot available - the
    false positive rate is going to be negligible.
    
    Reported-by: Zdenek Kabelac <zdenek.kabelac at gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50457
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c
index b8f0970..ee18ebe 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -1792,11 +1792,8 @@ static int gen3_get_rectangles__flush(struct sna *sna,
 {
 	if (!kgem_check_batch(&sna->kgem, op->need_magic_ca_pass ? 105: 5))
 		return 0;
-	if (!kgem_check_exec(&sna->kgem, 1))
+	if (!kgem_check_reloc_and_exec(&sna->kgem, 1))
 		return 0;
-	if (!kgem_check_reloc(&sna->kgem, 1))
-		return 0;
-
 	if (op->need_magic_ca_pass && sna->render.vbo)
 		return 0;
 
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 4bc4bf3..8ab707f 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -1155,9 +1155,7 @@ static int gen4_get_rectangles__flush(struct sna *sna,
 {
 	if (!kgem_check_batch(&sna->kgem, 25))
 		return 0;
-	if (!kgem_check_exec(&sna->kgem, 1))
-		return 0;
-	if (!kgem_check_reloc(&sna->kgem, 1))
+	if (!kgem_check_reloc_and_exec(&sna->kgem, 1))
 		return 0;
 
 	if (op->need_magic_ca_pass && sna->render.vbo)
diff --git a/src/sna/kgem.h b/src/sna/kgem.h
index bb6bcf2..deff5df 100644
--- a/src/sna/kgem.h
+++ b/src/sna/kgem.h
@@ -327,6 +327,11 @@ static inline bool kgem_check_exec(struct kgem *kgem, int n)
 	return likely(kgem->nexec + n <= KGEM_EXEC_SIZE(kgem));
 }
 
+static inline bool kgem_check_reloc_and_exec(struct kgem *kgem, int n)
+{
+	return kgem_check_reloc(kgem, n) && kgem_check_exec(kgem, n);
+}
+
 static inline bool kgem_check_batch_with_surfaces(struct kgem *kgem,
 						  int num_dwords,
 						  int num_surfaces)
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 02c11cf..9029d9f 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -3041,7 +3041,7 @@ sna_put_xybitmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region,
 
 		if (!kgem_check_batch(&sna->kgem, 8) ||
 		    !kgem_check_bo_fenced(&sna->kgem, bo) ||
-		    !kgem_check_reloc(&sna->kgem, 2)) {
+		    !kgem_check_reloc_and_exec(&sna->kgem, 2)) {
 			_kgem_submit(&sna->kgem);
 			_kgem_set_mode(&sna->kgem, KGEM_BLT);
 		}
@@ -3170,7 +3170,7 @@ sna_put_xypixmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region,
 
 			if (!kgem_check_batch(&sna->kgem, 12) ||
 			    !kgem_check_bo_fenced(&sna->kgem, bo) ||
-			    !kgem_check_reloc(&sna->kgem, 2)) {
+			    !kgem_check_reloc_and_exec(&sna->kgem, 2)) {
 				_kgem_submit(&sna->kgem);
 				_kgem_set_mode(&sna->kgem, KGEM_BLT);
 			}
@@ -5226,7 +5226,7 @@ sna_copy_bitmap_blt(DrawablePtr _bitmap, DrawablePtr drawable, GCPtr gc,
 
 			if (!kgem_check_batch(&sna->kgem, 8) ||
 			    !kgem_check_bo_fenced(&sna->kgem, arg->bo) ||
-			    !kgem_check_reloc(&sna->kgem, 2)) {
+			    !kgem_check_reloc_and_exec(&sna->kgem, 2)) {
 				_kgem_submit(&sna->kgem);
 				_kgem_set_mode(&sna->kgem, KGEM_BLT);
 			}
@@ -5344,7 +5344,7 @@ sna_copy_plane_blt(DrawablePtr source, DrawablePtr drawable, GCPtr gc,
 
 		if (!kgem_check_batch(&sna->kgem, 8) ||
 		    !kgem_check_bo_fenced(&sna->kgem, arg->bo) ||
-		    !kgem_check_reloc(&sna->kgem, 2)) {
+		    !kgem_check_reloc_and_exec(&sna->kgem, 2)) {
 			_kgem_submit(&sna->kgem);
 			_kgem_set_mode(&sna->kgem, KGEM_BLT);
 		}
@@ -9400,7 +9400,7 @@ sna_poly_fill_rect_stippled_1_blt(DrawablePtr drawable,
 
 				if (!kgem_check_batch(&sna->kgem, 8) ||
 				    !kgem_check_bo_fenced(&sna->kgem, bo) ||
-				    !kgem_check_reloc(&sna->kgem, 2)) {
+				    !kgem_check_reloc_and_exec(&sna->kgem, 2)) {
 					_kgem_submit(&sna->kgem);
 					_kgem_set_mode(&sna->kgem, KGEM_BLT);
 				}
@@ -9539,7 +9539,7 @@ sna_poly_fill_rect_stippled_1_blt(DrawablePtr drawable,
 				} else {
 					if (!kgem_check_batch(&sna->kgem, 8) ||
 					    !kgem_check_bo_fenced(&sna->kgem, bo) ||
-					    !kgem_check_reloc(&sna->kgem, 2)) {
+					    !kgem_check_reloc_and_exec(&sna->kgem, 2)) {
 						_kgem_submit(&sna->kgem);
 						_kgem_set_mode(&sna->kgem, KGEM_BLT);
 					}
@@ -9679,7 +9679,7 @@ sna_poly_fill_rect_stippled_1_blt(DrawablePtr drawable,
 					} else {
 						if (!kgem_check_batch(&sna->kgem, 8) ||
 						    !kgem_check_bo_fenced(&sna->kgem, bo) ||
-						    !kgem_check_reloc(&sna->kgem, 2)) {
+						    !kgem_check_reloc_and_exec(&sna->kgem, 2)) {
 							_kgem_submit(&sna->kgem);
 							_kgem_set_mode(&sna->kgem, KGEM_BLT);
 						}
@@ -11502,7 +11502,7 @@ sna_push_pixels_solid_blt(GCPtr gc,
 
 		if (!kgem_check_batch(&sna->kgem, 8) ||
 		    !kgem_check_bo_fenced(&sna->kgem, bo) ||
-		    !kgem_check_reloc(&sna->kgem, 2)) {
+		    !kgem_check_reloc_and_exec(&sna->kgem, 2)) {
 			_kgem_submit(&sna->kgem);
 			_kgem_set_mode(&sna->kgem, KGEM_BLT);
 		}
commit c7bcca9a3fb6c669d8b093e6399914693770b0b3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue May 29 12:49:12 2012 +0100

    sna: Make finding DPMS property valgrind clean
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index b8e69b5..5ed3179 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -1263,41 +1263,40 @@ sna_output_dpms(xf86OutputPtr output, int dpms)
 	DBG(("%s: dpms=%d\n", __FUNCTION__, dpms));
 
 	for (i = 0; i < koutput->count_props; i++) {
-		drmModePropertyPtr props;
+		struct drm_mode_get_property prop;
 
-		props = drmModeGetProperty(sna->kgem.fd, koutput->props[i]);
-		if (!props)
+		VG_CLEAR(prop);
+		prop.prop_id = koutput->props[i];
+		if (drmIoctl(sna->kgem.fd, DRM_IOCTL_MODE_GETPROPERTY, &prop))
 			continue;
 
-		if (!strcmp(props->name, "DPMS")) {
-			/* Record thevalue of the backlight before turning
-			 * off the display, and reset if after turnging it on.
-			 * Order is important as the kernel may record and also
-			 * reset the backlight across DPMS. Hence we need to
-			 * record the value before the kernel modifies it
-			 * and reapply it afterwards.
-			 */
-			if (dpms == DPMSModeOff)
-				sna_output_dpms_backlight(output,
-							  sna_output->dpms_mode,
-							  dpms);
-
-			drmModeConnectorSetProperty(sna->kgem.fd,
-						    sna_output->output_id,
-						    props->prop_id,
-						    dpms);
-
-			if (dpms != DPMSModeOff)
-				sna_output_dpms_backlight(output,
-							  sna_output->dpms_mode,
-							  dpms);
-
-			sna_output->dpms_mode = dpms;
-			drmModeFreeProperty(props);
-			return;
-		}
+		if (strcmp(prop.name, "DPMS"))
+			continue;
 
-		drmModeFreeProperty(props);
+		/* Record thevalue of the backlight before turning
+		 * off the display, and reset if after turnging it on.
+		 * Order is important as the kernel may record and also
+		 * reset the backlight across DPMS. Hence we need to
+		 * record the value before the kernel modifies it
+		 * and reapply it afterwards.
+		 */
+		if (dpms == DPMSModeOff)
+			sna_output_dpms_backlight(output,
+						  sna_output->dpms_mode,
+						  dpms);
+
+		drmModeConnectorSetProperty(sna->kgem.fd,
+					    sna_output->output_id,
+					    prop.prop_id,
+					    dpms);
+
+		if (dpms != DPMSModeOff)
+			sna_output_dpms_backlight(output,
+						  sna_output->dpms_mode,
+						  dpms);
+
+		sna_output->dpms_mode = dpms;
+		break;
 	}
 }
 
commit 3c074797094dc7675bb6ae549630fdf061ab5258
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue May 29 12:45:20 2012 +0100

    sna: Make GetEDID valgrind clean.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 1f67499..b8e69b5 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -1086,24 +1086,22 @@ sna_output_attach_edid(xf86OutputPtr output)
 
 	/* look for an EDID property */
 	for (i = 0; i < koutput->count_props; i++) {
-		drmModePropertyPtr props;
+		struct drm_mode_get_property prop;
 
-		props = drmModeGetProperty(sna->kgem.fd, koutput->props[i]);
-		if (!props)
+		VG_CLEAR(prop);
+		prop.prop_id = koutput->props[i];
+		if (drmIoctl(sna->kgem.fd, DRM_IOCTL_MODE_GETPROPERTY, &prop))
 			continue;
 
-		if (!(props->flags & DRM_MODE_PROP_BLOB)) {
-			drmModeFreeProperty(props);
+		if (!(prop.flags & DRM_MODE_PROP_BLOB))
 			continue;
-		}
 
-		if (!strcmp(props->name, "EDID")) {
-			drmModeFreePropertyBlob(edid_blob);
-			edid_blob =
-				drmModeGetPropertyBlob(sna->kgem.fd,
-						       koutput->prop_values[i]);
-		}
-		drmModeFreeProperty(props);
+		if (strcmp(prop.name, "EDID"))
+			continue;
+
+		drmModeFreePropertyBlob(edid_blob);
+		edid_blob = drmModeGetPropertyBlob(sna->kgem.fd,
+						   koutput->prop_values[i]);
 	}
 
 	if (edid_blob) {
commit 560e50c0a5afa0824086557581ca6aa5696b44a2
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue May 29 12:36:31 2012 +0100

    sna: Make GetEncoder() valgrind clean
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index ae0030d..1f67499 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -79,7 +79,6 @@ struct sna_output {
 	struct sna_mode *mode;
 	int output_id;
 	drmModeConnectorPtr mode_output;
-	drmModeEncoderPtr mode_encoder;
 	int num_props;
 	struct sna_property *props;
 	void *private_data;
@@ -1649,7 +1648,7 @@ sna_output_init(ScrnInfoPtr scrn, struct sna_mode *mode, int num)
 	struct sna *sna = to_sna(scrn);
 	xf86OutputPtr output;
 	drmModeConnectorPtr koutput;
-	drmModeEncoderPtr kencoder;
+	struct drm_mode_get_encoder enc;
 	struct sna_output *sna_output;
 	const char *output_name;
 	const char *s;
@@ -1660,8 +1659,9 @@ sna_output_init(ScrnInfoPtr scrn, struct sna_mode *mode, int num)
 	if (!koutput)
 		return;
 
-	kencoder = drmModeGetEncoder(sna->kgem.fd, koutput->encoders[0]);
-	if (!kencoder)
+	VG_CLEAR(enc);
+	enc.encoder_id = koutput->encoders[0];
+	if (drmIoctl(sna->kgem.fd, DRM_IOCTL_MODE_GETENCODER, &enc))
 		goto cleanup_connector;
 
 	if (koutput->connector_type < ARRAY_SIZE(output_names))
@@ -1673,12 +1673,12 @@ sna_output_init(ScrnInfoPtr scrn, struct sna_mode *mode, int num)
 	if (xf86IsEntityShared(scrn->entityList[0])) {
 		s = xf86GetOptValString(sna->Options, OPTION_ZAPHOD);
 		if (s && !sna_zaphod_match(s, name))
-			goto cleanup_encoder;
+			goto cleanup_connector;
 	}
 
 	output = xf86OutputCreate(scrn, &sna_output_funcs, name);
 	if (!output)
-		goto cleanup_encoder;
+		goto cleanup_connector;
 
 	sna_output = calloc(sizeof(struct sna_output), 1);
 	if (!sna_output)
@@ -1686,7 +1686,6 @@ sna_output_init(ScrnInfoPtr scrn, struct sna_mode *mode, int num)
 
 	sna_output->output_id = mode->mode_res->connectors[num];
 	sna_output->mode_output = koutput;
-	sna_output->mode_encoder = kencoder;
 	sna_output->mode = mode;
 
 	output->mm_width = koutput->mmWidth;
@@ -1698,8 +1697,8 @@ sna_output_init(ScrnInfoPtr scrn, struct sna_mode *mode, int num)
 	if (is_panel(koutput->connector_type))
 		sna_output_backlight_init(output);
 
-	output->possible_crtcs = kencoder->possible_crtcs;
-	output->possible_clones = kencoder->possible_clones;
+	output->possible_crtcs = enc.possible_crtcs;
+	output->possible_clones = enc.possible_clones;
 	output->interlaceAllowed = TRUE;
 
 	sna_output->output = output;
@@ -1711,8 +1710,6 @@ cleanup_output:
 	xf86OutputDestroy(output);
 cleanup_connector:
 	drmModeFreeConnector(koutput);
-cleanup_encoder:
-	drmModeFreeEncoder(kencoder);
 }
 
 struct sna_visit_set_pixmap_window {
commit b4b6fa795201379694a03d537064dbca446cfdfd
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue May 29 11:32:28 2012 +0100

    sna: Trim the set of includes
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 3372e7e..4bc4bf3 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -34,8 +34,6 @@
 #include "config.h"
 #endif
 
-#include <xf86.h>
-
 #include "sna.h"
 #include "sna_reg.h"
 #include "sna_render.h"
diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index b4d9203..68c1bb7 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -34,8 +34,6 @@
 #include "config.h"
 #endif
 
-#include <xf86.h>
-
 #include "sna.h"
 #include "sna_reg.h"
 #include "sna_render.h"
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index f3b7537..d9068de 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -34,8 +34,6 @@
 #include "config.h"
 #endif
 
-#include <xf86.h>
-
 #include "sna.h"
 #include "sna_reg.h"
 #include "sna_render.h"
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 9eed660..3f31437 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -34,8 +34,6 @@
 #include "config.h"
 #endif
 
-#include <xf86.h>
-
 #include "sna.h"
 #include "sna_reg.h"
 #include "sna_render.h"
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index a999441..8587936 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -39,6 +39,8 @@
 #include <errno.h>
 #include <fcntl.h>
 
+#include <xf86drm.h>
+
 #ifdef HAVE_VALGRIND
 #include <valgrind.h>
 #include <memcheck.h>
diff --git a/src/sna/sna.h b/src/sna/sna.h
index b4f2ba4..d9fd9d1 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -45,18 +45,15 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #include "compiler.h"
 
-#include <xf86_OSproc.h>
-#include <xf86Pci.h>
-#include <xf86Cursor.h>
-#include <xf86xv.h>
 #include <xf86Crtc.h>
-#include <xf86RandR12.h>
+#include <windowstr.h>
+#include <glyphstr.h>
+#include <picturestr.h>
 #include <gcstruct.h>
 
 #include <xorg-server.h>
 #include <pciaccess.h>
 
-#include <xf86drm.h>
 #include <xf86drmMode.h>
 
 #include "../compat-api.h"
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 3ec2d23..ae0030d 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -40,7 +40,8 @@
 #include <xorgVersion.h>
 #include <X11/Xatom.h>
 #include <X11/extensions/dpmsconst.h>
-#include <xf86DDC.h>
+#include <xf86drm.h>
+#include <xf86DDC.h> /* for xf86InterpretEDID */
 
 #include "sna.h"
 #include "sna_reg.h"
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index 59de4e2..c74ecc4 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -36,17 +36,16 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "config.h"
 #endif
 
-#include <xf86.h>
-#include <xf86_OSproc.h>
 #include <errno.h>
 #include <string.h>
 
-#include <i915_drm.h>
-#include <dri2.h>
-
 #include "sna.h"
 #include "sna_reg.h"
 
+#include <xf86drm.h>
+#include <i915_drm.h>
+#include <dri2.h>
+
 #if DRI2INFOREC_VERSION <= 2
 #error DRI2 version supported by the Xserver is too old
 #endif
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index af8bfe9..10f4421 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -46,6 +46,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <errno.h>
 
 #include <xf86cmap.h>
+#include <xf86drm.h>
 #include <micmap.h>
 #include <fb.h>
 
diff --git a/src/sna/sna_render.h b/src/sna/sna_render.h
index 9c49281..8764796 100644
--- a/src/sna/sna_render.h
+++ b/src/sna/sna_render.h
@@ -3,6 +3,8 @@
 
 #include "compiler.h"
 
+#include <picturestr.h>
+
 #define GRADIENT_CACHE_SIZE 16
 
 struct sna;
diff --git a/src/sna/sna_transform.c b/src/sna/sna_transform.c
index 3cd9b07..644d404 100644
--- a/src/sna/sna_transform.c
+++ b/src/sna/sna_transform.c
@@ -31,7 +31,6 @@
 #include "config.h"
 #endif
 
-#include "xf86.h"
 #include "sna.h"
 
 /**
diff --git a/src/sna/sna_video.h b/src/sna/sna_video.h
index 687fbe1..7bfc971 100644
--- a/src/sna/sna_video.h
+++ b/src/sna/sna_video.h
@@ -27,8 +27,8 @@ THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #ifndef SNA_VIDEO_H
 #define SNA_VIDEO_H
 
-#include <xf86.h>
 #include <xf86_OSproc.h>
+#include <xf86xv.h>
 #include <fourcc.h>
 
 #if defined(XvMCExtension) && defined(ENABLE_XVMC)
commit 9d1a9e666763a3e1270c8f000b1b37a6b926441f
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon May 28 20:06:35 2012 +0100

    sna: Bump experimental ioctl number for vmap
    
    Gazumped!
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index af5b4b9..a999441 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -82,7 +82,7 @@ search_linear_cache(struct kgem *kgem, unsigned int num_pages, unsigned flags);
 #define IS_VMAP_MAP(ptr) ((uintptr_t)(ptr) & 2)
 
 #if defined(USE_VMAP) && !defined(I915_PARAM_HAS_VMAP)
-#define DRM_I915_GEM_VMAP       0x2c
+#define DRM_I915_GEM_VMAP       0x2d
 #define DRM_IOCTL_I915_GEM_VMAP DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_VMAP, struct drm_i915_gem_vmap)
 #define I915_PARAM_HAS_VMAP              19
 struct drm_i915_gem_vmap {


More information about the xorg-commit mailing list