Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
value returned by I915_PARAM_HAS_RELAXED_FENCING. If the ioctl succeeds,
it assumes relaxed fencing is supported. So as long as we don't actually
support it, we need to fail with EINVAL.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We no longer support these paths, only memory managed mode is now allowed.
|
|
This enabled GEM for the intel driver unconditionally. The legacy
codepaths will be removed in approximately one week since they are now
completely unused.
After discussion with matthieu@, drahn@, kettenis@ and marco@ (well,
mostly nagging from marco ;).
|
|
actually do so).
|
|
Manager api.
This is currently disabled by default under ifdef INTELDRM_GEM (option
INTELDRM_GEM in a kernel config or a patch to i915_drv.h needed to
enable), mostly because the intel X driver currently in tree does not
always play well with GEM and needs to be switched to UXA accelmethod
(which is the only option on later drivers).
While based on the intel drm code in the linux kernel this has come cleanups and
some obvious behaviour changes:
1) mmap through the GTT is entirely coherent with the gpu cache, removing
mappings whenever the cache dirties so you can not race with userland to write
to memory at the same time as the gpu.
2) pread/pwrite access is tiling-correct, so userland does not need to tile
manually (mesa has already been fixed for this a while ago). The straw that
broke the camels back here was the bit17 swizzling stuff on some mobile gpus
meansing that while userland did the swizzle itself, the kernel had to do
*extra* swizzling, this was frankly retarded so the option was dropped.
3) there is no option to map via the cpu from userland, again due to
coherency issues.
4) additional integer overflow checking in some areas.
5) we only support the newer EXECBUFFER2 command submission ioctl. the
old one is not supported at all (libdrm was fixed WRT over a week ago).
now the TODOs:
1) the locking is funky and is only correct due to biglock. it does
however work due to that. This will be fixed in tree, the design in
formulating in my head as I type.
2) there are currently no memory limits on drm memory, this needs to be
changed.
3) we really need PAT support for the machines where MTRRs are useless, else drm
uses quite a lot of cpu (this is a bug that continues from the older code
though, nothing new).
4) gpu resetting support on other than 965 is not written yet.
5) currently a lot of the code is in inteldrm, when memory management
comes to other chipset common code will be factored out into the drm
midlayer.
Tested on: 855 (x40), GM965 and 915 by me. 945 by armani@ and jkmeuser@,
gm45 by armani@ and marco@. More testing is needed before I enable this
by default though. Others also provided testing by what they tested
escapes me right now.
In order to test this enable INTELDRM_GEM in a kernel and add the following line
to the driver section in xorg.conf (I am working on a patch to autodetect the X
stuff):
Option "AccelMethod" "UXA"
|
|
ok oga@ during h2k9.
|
|
there's more in here that needs doing though.
|
|
kill some more dead protos while i'm touching the lines around them
anyway.
|
|
wrapping our commands over.
The documentation says that wrap must not happen in the middle of
commands. and upstream have seen some odd bugs that may be attributed to
this.
Based on a diff by Chris Wilson (ickle) from Intel to the linux driver.
|
|
anywhere. And hasn't been for a long time.
The ddx sets up the heap (so just always pass that call and do nothing),
but nothing that touches inteldrm actually uses the other ioctls. So
just kill them and have one lese thing to worry about. Still got sis and
radeon using the common code though.
|
|
guarrantee that copyin won't pagefault and use a faster version in that
case.
Since we just use plain copyin, it's stupid.
|
|
kill the compat define. Should have done this ages ago.
|
|
instead of assuming BUS_SPACE_LINEAR + bus_space_vaddr while i'm at
it.
Cleans things up nicely, and shaves a little bit of space, too.
|
|
Due to the fact that most of the drivers didn't keep their mmio regions
mapped from attach, all irq-using drm drivers have a hook in lastclose()
to remove the irq before it unmaps its registers. Since now they all
keep them mapped, this isn't an issue. Remove the redundant calls.
|
|
hardware-status-page.
|
|
|
|
Deprecated and broken. Sanity checked by a few people, no problems
caused.
|
|
non-static code that's shared between both. While i'm here convert them
to TAILQ.
Eventually, both of these will die, but until then I'd rather shave the
space in the kernel.
Tested on radeon and intel.
|
|
dma_bufs; allow the driver to provide the size and not have the private
data pointer. only radeon only needs this so far, but intel with GEM
also needs it.
Postclose was only used for freeing said private data, so this allows me
to remove the postclose callback and rename preclose to close.
|
|
other way round. More dev->pa reduction
|
|
|
|
While we don't have code for this (yet!), mean I will be able to update
libdrm, and consequently the xf86-video-intel driver to 2.5.x.
Add PARAM_HAS_GEM to the getparam ioctl, and return no support.
|
|
so just inline it there.
also remove dev->pci_vendor and dev->pci_device, and insert pci_device
into the one place any of them are needed (inteldrm's interface can give
this info to the X driver. to remove that you'd need to fix X too).
|
|
the attach function. First step towards splitting drm off as it's own
(bus independant) device, as it should be.
|
|
pass in the dma tag
|
|
|
|
what revision it is to determine which route to take.
instead, use the flags field of the pcidevs array to provide a static
list of flags related to series, type, and certain features and check those
instead. Makes me less sad and knocks another 600 bytes off my kernel.
|
|
This should close kernel/5995.
|
|
registers directly (via the memory sharing interface that intagp uses).
It doesn't need to be in a map structure.
Idea taken from some of intel's work.
|
|
From intel.
|
|
support yet, but will) it won't exist, prepare for this by only writing to it if
it's there.
Bits of this came from Eric Anholt at intel.
|
|
using it allowed rendering to continue while waiting for a vblank swap,
and often this lead to flickering and rendering a new scene before the
swap. this broke a lot of things.
With the removal of this swap, userland falls back to the old way of
waiting for the vblank then doing the swap itself, this is smooth
enough.
I decided independantly to kill this, but the intel guys recently
concurred. Comment change comes from Eric Anholt at intel.
|