summaryrefslogtreecommitdiff
path: root/shared-core/drm.h
AgeCommit message (Collapse)Author
2007-12-18remove output namesDave Airlie
2007-12-13Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into ↵Alan Hourihane
modesetting-101
2007-12-11Allow relocation to be skipped when buffers don't move.Keith Packard
One of the costs of superioctl has been the need to perform relocations inside the kernel. The cost of mapping the buffers to the CPU and writing data is fairly high, especially if those buffers have been mapped and read by the GPU. If we assume that buffers don't move around very often, we can have the client compute the relocations itself using the previous GPU address. When that object doesn't move, the kernel can skip computing and writing the updated data. Here's a patch which adds a new field to struct drm_bo_info_req called 'presumed_offset', and a new DRM_BO_HINT_PRESUMED_OFFSET that is set when this field has been filled in by the client. There are two separate optimizations performed when the presumed_offset is correct: 1. i915_exec_reloc checks to see if all previous buffer offsets were guessed correctly. If so, there's no need for it to look at *any* of the relocations for a buffer. When this happens, it skips the whole relocation process, simply returning success. 2. i915_apply_reloc checks to see if the target buffer offset was guessed correctly. If so, it skips mapping the relocatee, computing the relocation and writing the value. If no relocations are needed, the relocatee should never be mapped to the CPU, and so the kernel shouldn't need to wait for any fences to pass.
2007-12-11Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/drm into ↵Dave Airlie
modesetting-101 Conflicts: linux-core/drm_drv.c shared-core/drm.h shared-core/i915_dma.c
2007-12-11modesetting: fixup property setting and add connector propertyDave Airlie
2007-12-11modesetting: add dpms property and initial settable property ioctlDave Airlie
2007-12-06add property blobs and edid reporting supportDave Airlie
2007-12-05more WIP on blobs..Dave Airlie
I'm going to pass back a list of blob ids and lengths in the getproperty. will need another ioctl to return the blob data as it is variable length.
2007-12-05arrgggh.. make all ioctl structs 32/64-bit compatible hopefully.Dave Airlie
This also starts to add blob property support. someone needs to check this work for other things like ppc/x86 alignment diffs
2007-12-03finish of mode add/remove, just have attach/detach modesDave Airlie
2007-12-03modesetting API change for removing mode ids and making modes per output.Dave Airlie
so really want to get a list of modes per output not the global hammer list. also we remove the mode ids and let the user pass back the full mode description need to fix up add/remove mode for user modes now
2007-12-01drm: Add _DRM_DRIVER map flag.Robert Noland
This flag indicates that the driver is responsible for the map.
2007-11-27drm/modesetting: add initial gettable properites code.Dave Airlie
This allow the user to retrieve a list of properties for an output. Properties can either be 32-bit values or an enum with an associated name. Range properties are to be supported. This API is probably not all correct, I may make properties part of the general resource get when I think about it some more. So basically you can create properties and attached them to whatever outputs you want, so it should be possible to create some generics and just attach them to every output.
2007-11-22Merge branch 'origin' into modesetting-101Dave Airlie
Conflicts: linux-core/drmP.h shared-core/i915_dma.c shared-core/i915_drm.h shared-core/radeon_drv.h
2007-11-22drm: major whitespace/coding style realignment with kernelDave Airlie
2007-11-15modes: pass type to userspace for preferred showingDave Airlie
2007-11-05Merge branch 'master' into modesetting-101Thomas Hellstrom
Conflicts: linux-core/drm_bufs.c shared-core/i915_dma.c shared-core/i915_drv.h shared-core/i915_irq.c
2007-11-05drm: remove lots of spurious whitespace.Dave Airlie
Kernel "cleanfile" script run.
2007-11-01Merge branch 'master' into modesetting-101Jesse Barnes
Conflicts: linux-core/Makefile.kernel linux-core/drm_stub.c linux-core/i915_drv.c shared-core/i915_dma.c shared-core/i915_drv.h Fixup suspend/resume conflicts (basically use what's in DRM master for now). Also fix up a few other conflicts that snuck in (i915_dma changes etc.).
2007-11-01drm/ttm: add support for cached un-snooped mappings.Dave Airlie
This mapping allows cached objects to be mapped in/out of the TT space with the appropriate flushing calls. It should put back the old CACHED functionality for snooped mappings
2007-10-29Move struct drm_drawable_info out of public header file.Kristian Høgsberg
2007-10-25Merge branch 'master' into modesetting-101Thomas Hellstrom
Conflicts: linux-core/Makefile.kernel linux-core/drm_bo.c linux-core/drm_objects.h
2007-10-25Tighten permissions on some buffer manager ioctls.Thomas Hellstrom
Set bo init minor to 0. Add the version function to header.
2007-10-25Buffer manager:Thomas Hellstrom
Implement a version check IOCTL for drivers that don't use drmMMInit from user-space. Remove the minor check from the kernel code. That's really up to the driver. Bump major.
2007-10-21Remove the need for the hardware lock in the buffer manager.Thomas Hellstrom
Add interface entry cleaning a memory type without touching NO_EVICT buffers.
2007-10-20Simple replacement for hardware lock in some cases.Thomas Hellstrom
Fix i915 since last commit.
2007-10-17Remove the op ioctl, and replace it with a setuser ioctl.Thomas Hellstrom
Remove need for lock for now. May create races when we clean memory areas or on takedown. Needs to be fixed. Really do a validate on buffer creation in order to avoid problems with fixed memory buffers.
2007-10-17Revert "Replace NO_MOVE/NO_EVICT flags to buffer objects with an ioctl to ↵Thomas Hellstrom
set pinning." This reverts cf2d569daca6954d11a796f4d110148ae2e0c827 commit.
2007-10-17Revert "Add some more verbosity to drm_bo_set_pin_req comments."Thomas Hellstrom
This reverts e7bfeb3031374653f7e55d67cc1b5c823849359f commit.
2007-10-16Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into ↵Alan Hourihane
modesetting-101 Conflicts: linux-core/drm_bo.c linux-core/drm_objects.h shared-core/i915_dma.c shared-core/i915_drv.h
2007-10-16Drop destroy ioctls for fences and buffer objects.Kristian Høgsberg
We now always create a drm_ref_object for user objects and this is then the only things that holds a reference to the user object. This way unreference on will destroy the user object when the last drm_ref_object goes way.
2007-10-16Take bo type argument out of the ioctl interface.Kristian Høgsberg
The buffer object type is still tracked internally, but it is no longer part of the user space visible ioctl interface. If the bo create ioctl specifies a non-NULL buffer address we assume drm_bo_type_user, otherwise drm_bo_type_dc. Kernel side allocations call drm_buffer_object_create() directly and can still specify drm_bo_type_kernel. Not 100% this makes sense either, but with this patch, the buffer type is no longer exported and we can clean up the internals later on.
2007-10-16Eliminate support for fake buffers.[utf-8] Kristian Høgsberg
2007-09-25Merge branch 'master' into pre-superioctl-branchThomas Hellstrom
Conflicts: linux-core/drm_bo.c linux-core/drm_fence.c linux-core/drm_objects.h shared-core/drm.h
2007-09-25drm: use fence_class as name instead of classDave Airlie
2007-09-24Merge branch 'master' into modesetting-101 - TTM & typedef removalJesse Barnes
Conflicts: linux-core/drmP.h linux-core/drm_bo.c linux-core/drm_drv.c linux-core/drm_objects.h shared-core/drm.h shared-core/i915_dma.c shared-core/i915_drv.h shared-core/i915_irq.c Mostly removing typedefs that snuck into the modesetting code and updating to the latest TTM APIs. As of today, the i915 driver builds, but there are likely to be problems, so debugging and bugfixes will come next.
2007-09-22Add fence error member.Thomas Hellstrom
Modify the TTM backend bind arguments. Export a number of functions needed for driver-specific super-ioctls. Add a function to map buffer objects from the kernel, regardless of where they're currently placed. A number of error fixes.
2007-09-21Add some more verbosity to drm_bo_set_pin_req comments.Eric Anholt
2007-09-19Merge branch 'origin' into bo-set-pinEric Anholt
2007-08-28drm: remove XFREE86_VERSION macrosDave Airlie
2007-07-26Replace NO_MOVE/NO_EVICT flags to buffer objects with an ioctl to set pinning.Eric Anholt
This cleans up the create/validate interfaces for this very uncommon path, and makes pinned object creation much easier to use for the X Server.
2007-07-18fix some missing whitespace/tabDave Airlie
2007-07-18drm: remove drm_u64_t, replace with uint64_t everwhereDave Airlie
This might break something, stdint.h inclusion in drm.h maybe required but I'm not sure yet what platforms have it what ones don't.
2007-07-16drm: remove ttm userspace typedefsDave Airlie
2007-07-16drm: detypedef drm.h and fixup all problemsDave Airlie
2007-07-16drm: remove typedefs in drm.h to their own sectionDave Airlie
2007-06-26More 64-bit padding.Thomas Hellstrom
2007-06-12Fix some obvious bugs.Thomas Hellstrom
2007-06-12Try to make buffer object / fence object ioctl args 64-bit safe.Thomas Hellstrom
Introduce tile members for future tiled buffer support. Allow user-space to explicitly define a fence-class. Remove the implicit fence-class mechanism. 64-bit wide buffer object flag member.
2007-05-18Fix merge problem.Alan Hourihane