summaryrefslogtreecommitdiff
path: root/src/drm
diff options
context:
space:
mode:
Diffstat (limited to 'src/drm')
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-bo.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-gallium-surface.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-i915-glyphs.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-i915-private.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-i915-shader.c39
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-i915-spans.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-i915-surface.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-i965-glyphs.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-i965-private.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-i965-shader.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-i965-spans.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-i965-surface.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-brw-defines.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-brw-eu-emit.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-brw-eu-util.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-brw-eu.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-brw-eu.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-brw-structs.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-command-private.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-debug.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-ioctl-private.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-private.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel-surface.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-intel.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-ioctl-private.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-private.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-radeon-private.h0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-radeon-surface.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-radeon.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm-surface.c0
-rw-r--r--[-rwxr-xr-x]src/drm/cairo-drm.c9
31 files changed, 8 insertions, 40 deletions
diff --git a/src/drm/cairo-drm-bo.c b/src/drm/cairo-drm-bo.c
index a5b59f2c9..a5b59f2c9 100755..100644
--- a/src/drm/cairo-drm-bo.c
+++ b/src/drm/cairo-drm-bo.c
diff --git a/src/drm/cairo-drm-gallium-surface.c b/src/drm/cairo-drm-gallium-surface.c
index 164ab03ce..164ab03ce 100755..100644
--- a/src/drm/cairo-drm-gallium-surface.c
+++ b/src/drm/cairo-drm-gallium-surface.c
diff --git a/src/drm/cairo-drm-i915-glyphs.c b/src/drm/cairo-drm-i915-glyphs.c
index 9944f15a4..9944f15a4 100755..100644
--- a/src/drm/cairo-drm-i915-glyphs.c
+++ b/src/drm/cairo-drm-i915-glyphs.c
diff --git a/src/drm/cairo-drm-i915-private.h b/src/drm/cairo-drm-i915-private.h
index c750cf4cf..c750cf4cf 100755..100644
--- a/src/drm/cairo-drm-i915-private.h
+++ b/src/drm/cairo-drm-i915-private.h
diff --git a/src/drm/cairo-drm-i915-shader.c b/src/drm/cairo-drm-i915-shader.c
index a1911d0a4..85aa98433 100755..100644
--- a/src/drm/cairo-drm-i915-shader.c
+++ b/src/drm/cairo-drm-i915-shader.c
@@ -1467,42 +1467,6 @@ i915_shader_acquire_solid_surface (i915_shader_t *shader,
return CAIRO_STATUS_SUCCESS;
}
-static cairo_filter_t
-sampled_area (const cairo_surface_pattern_t *pattern,
- const cairo_rectangle_int_t *extents,
- cairo_rectangle_int_t *sample)
-{
- cairo_rectangle_int_t surface_extents;
- cairo_filter_t filter;
- double x1, x2, y1, y2;
- double pad;
-
- x1 = extents->x;
- y1 = extents->y;
- x2 = extents->x + (int) extents->width;
- y2 = extents->y + (int) extents->height;
-
- if (_cairo_matrix_is_translation (&pattern->base.matrix)) {
- x1 += pattern->base.matrix.x0; x2 += pattern->base.matrix.x0;
- y1 += pattern->base.matrix.y0; y2 += pattern->base.matrix.y0;
- } else {
- _cairo_matrix_transform_bounding_box (&pattern->base.matrix,
- &x1, &y1, &x2, &y2,
- NULL);
- }
-
- filter = _cairo_pattern_analyze_filter (&pattern->base, &pad);
- sample->x = floor (x1 - pad);
- sample->y = floor (y1 - pad);
- sample->width = ceil (x2 + pad) - sample->x;
- sample->height = ceil (y2 + pad) - sample->y;
-
- if (_cairo_surface_get_extents (pattern->surface, &surface_extents))
- _cairo_rectangle_intersect (sample, &surface_extents);
-
- return filter;
-}
-
static cairo_status_t
i915_shader_acquire_surface (i915_shader_t *shader,
union i915_shader_channel *src,
@@ -1524,7 +1488,8 @@ i915_shader_acquire_surface (i915_shader_t *shader,
extend = pattern->base.extend;
src->base.matrix = pattern->base.matrix;
- filter = sampled_area (pattern, extents, &sample);
+ filter = pattern->base.filter;
+ _cairo_pattern_sampled_area(&pattern->base, extents, sample);
if (surface->type == CAIRO_SURFACE_TYPE_DRM) {
if (surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) {
diff --git a/src/drm/cairo-drm-i915-spans.c b/src/drm/cairo-drm-i915-spans.c
index b3f4e0afd..b3f4e0afd 100755..100644
--- a/src/drm/cairo-drm-i915-spans.c
+++ b/src/drm/cairo-drm-i915-spans.c
diff --git a/src/drm/cairo-drm-i915-surface.c b/src/drm/cairo-drm-i915-surface.c
index c1a04529f..c1a04529f 100755..100644
--- a/src/drm/cairo-drm-i915-surface.c
+++ b/src/drm/cairo-drm-i915-surface.c
diff --git a/src/drm/cairo-drm-i965-glyphs.c b/src/drm/cairo-drm-i965-glyphs.c
index c66a63d73..c66a63d73 100755..100644
--- a/src/drm/cairo-drm-i965-glyphs.c
+++ b/src/drm/cairo-drm-i965-glyphs.c
diff --git a/src/drm/cairo-drm-i965-private.h b/src/drm/cairo-drm-i965-private.h
index 79568a63d..79568a63d 100755..100644
--- a/src/drm/cairo-drm-i965-private.h
+++ b/src/drm/cairo-drm-i965-private.h
diff --git a/src/drm/cairo-drm-i965-shader.c b/src/drm/cairo-drm-i965-shader.c
index eed5f5f09..eed5f5f09 100755..100644
--- a/src/drm/cairo-drm-i965-shader.c
+++ b/src/drm/cairo-drm-i965-shader.c
diff --git a/src/drm/cairo-drm-i965-spans.c b/src/drm/cairo-drm-i965-spans.c
index 5cba7cec8..5cba7cec8 100755..100644
--- a/src/drm/cairo-drm-i965-spans.c
+++ b/src/drm/cairo-drm-i965-spans.c
diff --git a/src/drm/cairo-drm-i965-surface.c b/src/drm/cairo-drm-i965-surface.c
index ec7b5954c..ec7b5954c 100755..100644
--- a/src/drm/cairo-drm-i965-surface.c
+++ b/src/drm/cairo-drm-i965-surface.c
diff --git a/src/drm/cairo-drm-intel-brw-defines.h b/src/drm/cairo-drm-intel-brw-defines.h
index b2be36f18..b2be36f18 100755..100644
--- a/src/drm/cairo-drm-intel-brw-defines.h
+++ b/src/drm/cairo-drm-intel-brw-defines.h
diff --git a/src/drm/cairo-drm-intel-brw-eu-emit.c b/src/drm/cairo-drm-intel-brw-eu-emit.c
index f27b23804..f27b23804 100755..100644
--- a/src/drm/cairo-drm-intel-brw-eu-emit.c
+++ b/src/drm/cairo-drm-intel-brw-eu-emit.c
diff --git a/src/drm/cairo-drm-intel-brw-eu-util.c b/src/drm/cairo-drm-intel-brw-eu-util.c
index 592235b12..592235b12 100755..100644
--- a/src/drm/cairo-drm-intel-brw-eu-util.c
+++ b/src/drm/cairo-drm-intel-brw-eu-util.c
diff --git a/src/drm/cairo-drm-intel-brw-eu.c b/src/drm/cairo-drm-intel-brw-eu.c
index 2b47d8c37..2b47d8c37 100755..100644
--- a/src/drm/cairo-drm-intel-brw-eu.c
+++ b/src/drm/cairo-drm-intel-brw-eu.c
diff --git a/src/drm/cairo-drm-intel-brw-eu.h b/src/drm/cairo-drm-intel-brw-eu.h
index 2662a2e7f..2662a2e7f 100755..100644
--- a/src/drm/cairo-drm-intel-brw-eu.h
+++ b/src/drm/cairo-drm-intel-brw-eu.h
diff --git a/src/drm/cairo-drm-intel-brw-structs.h b/src/drm/cairo-drm-intel-brw-structs.h
index f42483ed1..f42483ed1 100755..100644
--- a/src/drm/cairo-drm-intel-brw-structs.h
+++ b/src/drm/cairo-drm-intel-brw-structs.h
diff --git a/src/drm/cairo-drm-intel-command-private.h b/src/drm/cairo-drm-intel-command-private.h
index a93ac12ab..a93ac12ab 100755..100644
--- a/src/drm/cairo-drm-intel-command-private.h
+++ b/src/drm/cairo-drm-intel-command-private.h
diff --git a/src/drm/cairo-drm-intel-debug.c b/src/drm/cairo-drm-intel-debug.c
index 7068c933e..7068c933e 100755..100644
--- a/src/drm/cairo-drm-intel-debug.c
+++ b/src/drm/cairo-drm-intel-debug.c
diff --git a/src/drm/cairo-drm-intel-ioctl-private.h b/src/drm/cairo-drm-intel-ioctl-private.h
index 004d3bfd7..004d3bfd7 100755..100644
--- a/src/drm/cairo-drm-intel-ioctl-private.h
+++ b/src/drm/cairo-drm-intel-ioctl-private.h
diff --git a/src/drm/cairo-drm-intel-private.h b/src/drm/cairo-drm-intel-private.h
index 343270a3c..343270a3c 100755..100644
--- a/src/drm/cairo-drm-intel-private.h
+++ b/src/drm/cairo-drm-intel-private.h
diff --git a/src/drm/cairo-drm-intel-surface.c b/src/drm/cairo-drm-intel-surface.c
index 88f5b8f0c..88f5b8f0c 100755..100644
--- a/src/drm/cairo-drm-intel-surface.c
+++ b/src/drm/cairo-drm-intel-surface.c
diff --git a/src/drm/cairo-drm-intel.c b/src/drm/cairo-drm-intel.c
index d45155ebe..d45155ebe 100755..100644
--- a/src/drm/cairo-drm-intel.c
+++ b/src/drm/cairo-drm-intel.c
diff --git a/src/drm/cairo-drm-ioctl-private.h b/src/drm/cairo-drm-ioctl-private.h
index 4294de2d5..4294de2d5 100755..100644
--- a/src/drm/cairo-drm-ioctl-private.h
+++ b/src/drm/cairo-drm-ioctl-private.h
diff --git a/src/drm/cairo-drm-private.h b/src/drm/cairo-drm-private.h
index 2db7f38d6..2db7f38d6 100755..100644
--- a/src/drm/cairo-drm-private.h
+++ b/src/drm/cairo-drm-private.h
diff --git a/src/drm/cairo-drm-radeon-private.h b/src/drm/cairo-drm-radeon-private.h
index 546126c6f..546126c6f 100755..100644
--- a/src/drm/cairo-drm-radeon-private.h
+++ b/src/drm/cairo-drm-radeon-private.h
diff --git a/src/drm/cairo-drm-radeon-surface.c b/src/drm/cairo-drm-radeon-surface.c
index 6dbddaae4..6dbddaae4 100755..100644
--- a/src/drm/cairo-drm-radeon-surface.c
+++ b/src/drm/cairo-drm-radeon-surface.c
diff --git a/src/drm/cairo-drm-radeon.c b/src/drm/cairo-drm-radeon.c
index a6d22089b..a6d22089b 100755..100644
--- a/src/drm/cairo-drm-radeon.c
+++ b/src/drm/cairo-drm-radeon.c
diff --git a/src/drm/cairo-drm-surface.c b/src/drm/cairo-drm-surface.c
index 8c4dd0ee8..8c4dd0ee8 100755..100644
--- a/src/drm/cairo-drm-surface.c
+++ b/src/drm/cairo-drm-surface.c
diff --git a/src/drm/cairo-drm.c b/src/drm/cairo-drm.c
index 051b79e4f..661e181b6 100755..100644
--- a/src/drm/cairo-drm.c
+++ b/src/drm/cairo-drm.c
@@ -202,8 +202,7 @@ cairo_drm_device_get (struct udev_device *device)
parent = udev_device_get_parent (device);
pci_id = get_udev_property (parent, "PCI_ID");
if (pci_id == NULL || sscanf (pci_id, "%x:%x", &vendor_id, &chip_id) != 2) {
- dev = (cairo_drm_device_t *)
- _cairo_device_create_in_error (CAIRO_STATUS_DEVICE_ERROR);
+ dev = NULL;
goto DONE;
}
@@ -239,6 +238,7 @@ cairo_drm_device_get (struct udev_device *device)
if (fd == -1) {
/* XXX more likely to be a permissions issue... */
_cairo_error_throw (CAIRO_STATUS_FILE_NOT_FOUND);
+ dev = NULL;
goto DONE;
}
@@ -249,7 +249,10 @@ cairo_drm_device_get (struct udev_device *device)
DONE:
CAIRO_MUTEX_UNLOCK (_cairo_drm_device_mutex);
- return &dev->base;
+ if (dev == NULL)
+ return _cairo_device_create_in_error (CAIRO_STATUS_DEVICE_ERROR);
+ else
+ return &dev->base;
}
slim_hidden_def (cairo_drm_device_get);