summaryrefslogtreecommitdiff
path: root/src/drm/cairo-drm-radeon-surface.c
AgeCommit message (Collapse)AuthorFilesLines
2012-08-17xlib: Implement SHM fallbacks and fast upload pathsChris Wilson1-1/+5
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-02-09Replace the ad-hoc surface unwrappers with a function pointerChris Wilson1-0/+3
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-15Implement cairo_backend_tChris Wilson1-0/+2
Allow a backend to completely reimplement the Cairo API as it wants. The goal is to pass operations to the native backends such as Quartz, Direct2D, Qt, Skia, OpenVG with no overhead. And to permit complete logging contexts, and whatever else the imagination holds. Perhaps to experiment with double-paths? Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-05-12drm: code dump, sorry.Chris Wilson1-36/+24
Lots upon lots of tiny fixes mixed in with experimental code. :(
2010-04-30surface: Convert snapshots from an array to a double-linked list.Chris Wilson1-7/+1
Saves the memory allocation for the array, and the overhead of maintaining the area for both insertions and more importantly deletes.
2010-04-27Update FSF addressAndrea Canciani1-1/+1
I updated the Free Software Foundation address using the following script. for i in $(git grep Temple | cut -d: -f1 ) do sed -e 's/59 Temple Place[, -]* Suite 330, Boston, MA *02111-1307[, ]* USA/51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA/' -i "$i" done Fixes http://bugs.freedesktop.org/show_bug.cgi?id=21356
2010-03-30Silence enumeration warnings following addition of RGB16_565Chris Wilson1-0/+1
2010-03-01Warnings cleanup for CAIRO_FORMAT_INVALID.Chris Wilson1-0/+1
A few more fixes required case statements to handle the addition of CAIRO_FORMAT_INVALID.
2010-03-01api: Introduce CAIRO_FORMAT_INVALID formally in the API.M Joonas Pihlaja1-1/+1
We were exposing the actual value of CAIRO_FORMAT_INVALID through API functions already, so it makes sense to just go ahead and put it in the cairo_format_t enum.
2010-01-22drm: Add backends for i915 and i965.Chris Wilson1-133/+148
As proof-of-principle add the nearly working demonstrations of using DRM to render directly with the GPU bypassing both RENDER and GL for performance whilst preserving high quality rendering. The basis behind developing these chip specific backends is that this is the idealised interface that we desire for this chips, and so a target for cairo-gl as we continue to develop both it and our GL stack. Note that this backends do not yet fully pass the test suite, so only use if you are brave and willing to help develop them further.
2010-01-22Add cairo_device_tChris Wilson1-1/+4
The device is a generic method for accessing the underlying interface with the native graphics subsystem, typically the X connection or perhaps the GL context. By exposing a cairo_device_t on a surface and its various methods we enable finer control over interoperability with external interactions of the device by applications. The use case in mind is, for example, a multi-threaded gstreamer which needs to serialise its own direct access to the device along with Cairo's across many threads. Secondly, the cairo_device_t is a unifying API for the mismash of backend specific methods for controlling creation of surfaces with explicit devices and a convenient hook for debugging and introspection. The principal components of the API are the memory management of: cairo_device_reference(), cairo_device_finish() and cairo_device_destroy(); along with a pair of routines for serialising interaction: cairo_device_acquire() and cairo_device_release() and a method to flush any outstanding accesses: cairo_device_flush(). The device for a particular surface may be retrieved using: cairo_surface_get_device(). The device returned is owned by the surface.
2010-01-22Remove content matching from snapshot lookup.Chris Wilson1-2/+1
This was never used, so remove the complexity from the interface.
2010-01-22Move _cairo_error() to a standalone headerChris Wilson1-0/+1
A pending commit will want to include some utility code from cairo and so we need to extricate the error handling from the PLT symbol hiding.
2009-07-23[drm] Add an accelerated image surface.Chris Wilson1-0/+437
Use the DRM interface to h/w accelerate composition on image surfaces. The purpose of the backend is simply to explore what such a hardware interface might look like and what benefits we might expect. The use case that might justify writing such custom backends are embedded devices running a drm compositor like wayland - which would, for example, allow one to write applications that seamlessly integrated accelerated, dynamic, high quality 2D graphics using Cairo with advanced interaction (e.g. smooth animations in the UI) driven by a clutter framework... In this first step we introduce the fundamental wrapping of GEM for intel and radeon chipsets, and, for comparison, gallium. No acceleration, all we do is use buffer objects (that is use the kernel memory manager) to allocate images and simply use the fallback mechanism. This provides a suitable base to start writing chip specific drivers.