summaryrefslogtreecommitdiff
path: root/shared-core
AgeCommit message (Collapse)Author
2007-12-11Bump driver minor for relocation optimzationsKeith Packard
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-10Merge branch 'master' into r500-supportDave Airlie
2007-12-08mach64: comment bus master / ring buffer behavior and securityJosé Fonseca
2007-12-08radeon_ms: fix pll computation to follow hw constraintJerome Glisse
2007-12-07Fix pipe<->plane mapping vs. vblank handling (again)Jesse Barnes
If drmMinor >= 6, the intel DDX driver will enable vblank events on both pipes. If drmMinor >= 10 on pre-965 chipsets, the intel DDX driver will swap the pipe<->plane mapping to allow for framebuffer compression on laptop screens. This means the secondary vblank counter (corresponding to pipe B) will be incremented when vblank interrupts occur. Now Mesa waits for vblank events on whichever plane has a greater portion of the displayed window. So it will happly ask to wait for the primary counter even though that one won't increment. So we can fix this in either the DDX driver, Mesa or the kernel (though I thought we already had several times). Since current (and previous) userspace assumes it's talking about a pipe == plane situation and now uses planes when talking to the kernel, we should probably just hide the mapping details there (indeed they already are hidden there for vblank swaps), which this patch does. So as far as userland is concerned, whether we call things planes or pipes is irrelevant, as long as kernel developers understand that userland hands them planes and they have to figure out which pipe that corresponds to (which will typically be the same on 965+ hardware and reversed on pre-965 mobile chips).
2007-12-06radeon_ms: update to lastest fb changeJerome Glisse
2007-12-06Merge commit 'origin/modesetting-101' into modesetting-radeonJerome Glisse
2007-12-06radeon_ms: avoid to unintialize things which haven't been initializedJerome Glisse
2007-12-06add property blobs and edid reporting supportDave Airlie
2007-12-05mach64: make buffer emission macros normal functionsJosé Fonseca
2007-12-05mach64: use utf-8José Fonseca
2007-12-05Remove references to the sarea_priv perf_boxes field.Kristian Høgsberg
This field isn't touched or read by any other code in the stack so it's time to retire these last few references.
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-04radeon_ms: radeon modesetting first commit.Jerome Glisse
This should work on all radeon but there is still many things todo: - add crtc2 - tmds - lvds - add bios data table so we don't need to hardcode dac/crtc infos - separate clock control to make power saving easier & cleaner - tiling (warning tiling shouldn't be enable in double scan or interlace) - surface reg manager (this goes along with tiling) - suspend/resume hook - avivo & r500 family support - atom bios support (for posting card mostly) - finish superioctl skeleton - what else ? :)
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-02bsd: Replace other occurrences of msleep with mtx_sleepRobert Noland
2007-12-01Clarify order of operationsRobert Noland
2007-12-01DRM_DEBUG already prints the function name.Robert Noland
2007-12-01drm: Add _DRM_DRIVER map flag.Robert Noland
This flag indicates that the driver is responsible for the map.
2007-11-30nouveau: Properly identify NV40 and NV44 generation.Maarten Maathuis
2007-11-29Beside the emitted warning, the added cast (u64 -> unsigned) strips outJiri Slaby
part of address on 64 bit. Cast to unsigned long instead. Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
2007-11-29drm: more cleanupsDave Airlie
2007-11-28i965: oops force mi batchbuffer startDave Airlie
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-27r500: add a bunch of all r5xx pci ids..Dave Airlie
fix up a range that may be needed for r500 mesa
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-22i915: add context handle to superioctl structDave Airlie
This will be used later for lockless operation.
2007-11-22r500: add pci id for X1650Dave Airlie
2007-11-21r500: suggestion from glisse to not add cliprect offset on r5xxDave Airlie
2007-11-20radeon: add initial r5xx supportDave Airlie
2007-11-19Fix capitalization of __linux__ define.Eric Anholt
2007-11-18Bug #13233: Fix build on FreeBSD.Robert Noland
2007-11-18radeon: refactor out the fb/agp location read/write.Dave Airlie
Add a new get param to get the fb location into userspace. Mesa currently hits MMIO to do this, but this isn't always possible.
2007-11-16nouveau: also mention the number of succcessfully copied bios bytes.Stephane Marchesin
2007-11-15nouveau: be verbose about PPC bios for now.Stephane Marchesin
2007-11-15nouveau: revert the nv34 context size change, it was not the culprit after all.Stephane Marchesin
2007-11-15nouveau: use get_property instead of of_get_property on pre-2.6.22 kernels.Stephane Marchesin
2007-11-15modes: pass type to userspace for preferred showingDave Airlie
2007-11-15Merge branch 'master' into modesetting-101Dave Airlie
Conflicts: shared-core/i915_dma.c tests/ttmtest/src/ttmtest.c
2007-11-15nouveau: Copy the PPC bios to RAMIN on init, that lets us do proper output ↵Stephane Marchesin
detection in user space.
2007-11-15intel: add flushing for i8xx chipsets.Dave Airlie
Add a nut vs hammer style chipset flush for the i8xx chipsets - reenable TTM code paths
2007-11-14nouveau: nv30: missing ramin init, does it brake other hw?Patrice Mandin
2007-11-14Add new shared header file drm_internal.h.Kristian Høgsberg
This header file is shared across linux and bsd, but is not installed for user space to access. It's the place to put prototypes and data types that aren't platform or chipset specific, but still internal to the drm.