Age | Commit message (Collapse) | Author |
|
For the older chipsets, i.e. pre-i965, which have severe alignment
restrictions for tiled buffers we need to pessimistically assume that we
will waste the size of buffer to meet those alignment constraints.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
If the kernel immediately frees the backing store for a buffer when
marking it purgeable, then there is not point adding to the cache. Free
it immediately, instead.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
DRM_MAJOR is platform specific, but not used outside of xf86drm.c
that I can find.
|
|
lost in 500f5b524000ed5930301f4303744cb4c0a19b75
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
|
|
|
|
Determines the /dev filename of the drm fd argument.
|
|
This adds a minimal #ifdef clause to drm.h that we'll push upstream.
Once that goes in we can share drm.h between linux, libdrm, and
the bsd's.
|
|
Oops, I assumed intel was always enable, but it just defaults to on.
|
|
|
|
These files are userspace headers and live in radeon/
|
|
We may want to drop mach64 from mesa instead, but that's a different
discussion.
|
|
|
|
The nouveau_drmif.h is not the Nouveau DRM kernel ABI file, but purely
user space stuff. Remove it, it does not belong in include/drm/.
Copy the right header from Nouveau kernel v2.6.31-rc9-757-gaca551c.
Signed-off-by: Pekka Paalanen <pq@iki.fi>
|
|
|
|
|
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pekka Paalanen <pq@iki.fi>
|
|
Wrap the madvise ioctl for use in APPLE_object_purgeable.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
|
|
|
|
Signed-off-by: Ben Skeggs <skeggsb@beleth.(none)>
|
|
Signed-off-by: Ben Skeggs <skeggsb@beleth.(none)>
|
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
The old code increments the command stream size by another kbyte, but does
not make sure that the requested packet size fits into the stream. The patch
ensures that the whole next packet fits there and rounds the allocated size to
a power of two.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
The kernel will now write data to the DRM fd for various event types if
requested. Currently, the only supported event is a vblank event: it contains
the vblank count for the event as well as a timestamp from when the event
ocurred. Since the DRM fd is now pollable, it's easy to integrate into
existing event loops.
|
|
Notably when freeing a batchbuffer, we often end up freeing many of the
buffers it points at as well. Avoiding repeated calls brings us a 9% CPU
win for cairo-gl.
[ # ] backend test min(s) median(s) stddev. count
before:
[ 0] gl firefox-talos-gfx 58.941 58.966 0.75% 3/3
after:
[ 0] gl firefox-talos-gfx 54.186 54.195 0.49% 3/3
|
|
If the target we're asking about hasn't ever been used as a relocation
target, then it obviously hasn't been used as a target by the batch's reloc
tree. This is the common case for good GL programming where you only map
fresh buffers, and gives us a 5% win in cairo-gl.
[ # ] backend test min(s) median(s) stddev. count
before:
[ 0] gl firefox-talos-gfx 64.680 64.756 0.06% 3/3
after:
[ 0] gl firefox-talos-gfx 60.816 60.970 0.29% 3/3
|
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
Will be used to implement gallium's is_{texture,buffer}_referenced()
callbacks properly.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
|
|
|
|
Use the external implementation for atomic operations across a wide
range of architectures.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Only build libdrm_intel automatically if we have support for atomic
operations. To force configure to build drm pass --enable-intel, which
will cause the configure to error if no support is found. Or pass
--disable-intel to explicitly prevent libdrm_intel from being built.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
|
|
I slipped it in with the alloc_tiled changes, since we were explicitly
throwing the parameter away. It caught some bogus released code, which
we've now fixed, so remove the asserts to keep old drivers working.
|
|
This simplifies driver code in handling object allocation, and also gives us
an opportunity to possibly cache tiled buffers if it turns out to be a win.
[anholt: This is chopped out of the execbuf2 patch, as it seems to be useful
separately and cleans up the execbuf2 changes to be more obvious]
|
|
|
|
This is done with:
Lindent *.[ch]
perl -pi -e 's|drm_intel_bo \* |drm_intel_bo *|g' *.[ch]
perl -pi -e 's|drm_intel_bufmgr \* |drm_intel_bufmgr *|g' *.[ch]
perl -pi -e 's|drm_intel_bo_gem \* |drm_intel_bo_gem *|g' *.[ch]
perl -pi -e 's|drm_intel_bufmgr_gem \* |drm_intel_bufmgr_gem *|g' *.[ch]
perl -pi -e 's|_fake \* |_fake *|g' *.[ch]
hand-editing to whack indented comments into line and other touchups.
|
|
This saves 32k of relocation entry storage for many 965 state buffers. No
noticeable impact on performance for cairo-gl firefox.
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|