Commit Graph

427 Commits (322cf6cf736b22b62656ac0431936b3cdb784038)

Author SHA1 Message Date
Michel Dänzer 316e736768 Add definition of DRM_VBLANK_SECONDARY.
(cherry picked from 84b38b63f0 commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer 9810ec2737 Add support for tracking drawable information to core
Actually make the existing ioctls for adding and removing drawables do
something useful, and add another ioctl for the X server to update drawable
information. The only kind of drawable information tracked so far is cliprects.
(cherry picked from 29598e5253 commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer 89e323e490 Core vsync: Add flag DRM_VBLANK_NEXTONMISS.
When this flag is set and the target sequence is missed, wait for the next
vertical blank instead of returning immediately.
2006-09-28 15:41:36 +02:00
Michel Dänzer 84b38b63f0 Add definition of DRM_VBLANK_SECONDARY. 2006-09-28 15:41:36 +02:00
Michel Dänzer 29598e5253 Add support for tracking drawable information to core
Actually make the existing ioctls for adding and removing drawables do
something useful, and add another ioctl for the X server to update drawable
information. The only kind of drawable information tracked so far is cliprects.
2006-09-28 15:41:35 +02:00
Thomas Hellstrom bd8ca12b7b Silence valgrind. 2006-09-26 16:00:22 +02:00
Thomas Hellstrom fa511a3ff5 Allow for 64-bit map handles of ttms and buffer objects. 2006-09-20 16:31:15 +02:00
Thomas Hellstrom ca1b15d645 Alternative implementation of page table zeroing using zap page_range.
(Disabled for now)
Fix bo_wait_idle bug.
Remove stray debug message.
2006-09-18 20:43:31 +02:00
Thomas Hellstrom c4fad4c961 More verbose error reporting in some cases.
Add a buffer object waitIdle user-space function.
Fix some names and minor glitches.
2006-09-18 16:02:33 +02:00
Thomas Hellstrom 49fbeb339c Some bugfixes.
Change the fence object interface somewhat to allow some more flexibility.
Make list IOCTLS really restartable.
Try to avoid busy-waits in the kernel using immediate return to user-space with an -EAGAIN.
2006-09-15 11:18:35 +02:00
Thomas Hellstrom 861b26578c Use lazy fence wait when possible even for RW fences. Saves some CPU.
Lindent.
2006-09-12 16:28:34 +02:00
Thomas Hellstrom 191e284709 More bugfixes.
Disable the i915 IRQ turnoff for now since it seems to be causing problems.
2006-09-12 12:01:00 +02:00
Thomas Hellstrom 99acb79366 Various bugfixes. 2006-09-08 17:24:38 +02:00
Thomas Hellstrom e3f54ecdd9 Multithreaded application note. 2006-09-05 19:36:45 +02:00
Thomas Hellstrom 6042153968 Fence all unfenced buffers function. 2006-09-05 18:00:25 +02:00
Thomas Hellstrom f88c32fd4c Libdrm function headers. Some renaming. 2006-09-04 22:05:21 +02:00
Thomas Hellstrom 405b5d9ca8 Flag bit pattern bugfixes. Remove some error messages. 2006-09-01 18:11:05 +02:00
Thomas Hellstrom ef8e618cf3 Export buffer info on map and validate ioctls.
Add an info ioctl operation.
2006-09-01 16:38:06 +02:00
Thomas Hellstrom 4edb95d6e0 Various bugfixes. 2006-09-01 11:23:21 +02:00
Thomas Hellstrom ec8c79b79d More mapping synchronization.
libdrm validate and fencing functions.
2006-08-31 14:10:13 +02:00
Thomas Hellstrom d39055174b Remove the buffer object hint field and use it only
as an argument.
Validate stub.
2006-08-30 17:40:07 +02:00
Thomas Hellstrom ff95ea5536 Add missing map flags. 2006-08-30 15:11:50 +02:00
Thomas Hellstrom 14a835be61 Buffer object mapping and mapping synchronization for multiple clients. 2006-08-30 15:08:40 +02:00
Thomas Hellstrom e47a4fda2e Memory manager init and takedown. 2006-08-30 13:04:08 +02:00
Thomas Hellstrom de144ba23c Part of buffer object libdrm interface. 2006-08-29 21:57:37 +02:00
Thomas Hellstrom 23f01c9fe8 Checkpoint commit. Buffer object flags and IOCTL argument list. 2006-08-29 18:40:08 +02:00
Thomas Hellstrom 279e8d26c6 64-bit IOCTL integer (Michel Dnzer & Brian Paul) 2006-08-29 10:45:34 +02:00
Thomas Hellstrom e181f594a4 Add a 64-bit drm unsigned type for 64-bit clean IOCTLS.
Conversion functions in drmP.h and xf86drm.c.
2006-08-28 09:49:09 +02:00
Thomas Hellstrom 886d3b3061 Bugfixes. 2006-08-27 22:01:33 +02:00
Thomas Hellstrom b4b7b99760 Remove the ioctl multiplexing, and instead allow for generic
drm ioctls 0x80 - 0xFF.
2006-08-27 21:16:13 +02:00
Thomas Hellstrom a6535c8db4 Add a fence object class field for future use (For example VSYNC fence objects) 2006-08-22 10:44:09 +02:00
Thomas Hellstrom 166da9355d User / Kernel space fence objects (device-independent part). 2006-08-21 21:02:08 +02:00
Michel Dänzer b9243ce3d5 .cvsignore -> .gitignore
Sort the merged file, remove the redundant explicit .ko lines and add
some generated symlinks.
2006-07-19 18:31:43 +02:00
Adam Jackson 14d1219442 Avoid walking off the end of the hash table. (Coverity report #465) 2006-03-15 01:02:54 +00:00
Adam Jackson 22e41ef083 Formatting cleanup, dead code removal. Remove N() namespacing macro,
useless. Remove SIGIO handling functions as they're server-only and
    properly belong in libdri.
2006-02-20 23:09:00 +00:00
Eric Anholt 26462b9aa4 Initialize sv.drm_dd_minor to "don't care" along with dd_major, to appease
valgrind.
2005-12-31 11:48:12 +00:00
Adam Jackson 7d735a8c9f Bump package and DSO numbers to 2.0 to reflect 32/64 ABI change 2005-11-30 18:44:54 +00:00
Adam Jackson f28dddb551 Resync from Xorg head: conditional include of xorg-config.h 2005-11-30 03:51:46 +00:00
Adam Jackson ea08b613bd Resync from Xorg head (Bug #3815, GNU/kFreeBSD hack) 2005-11-30 02:55:14 +00:00
Adam Jackson b3189730e7 Add TODO based on my email from a while ago 2005-11-29 21:10:59 +00:00
Adam Jackson 6941b375e8 Remove redundant #ifdef stanza 2005-11-29 20:03:38 +00:00
Adam Jackson 48198970ce Error checking for drmStrdup (Tilman Sauerbeck) 2005-11-29 20:02:34 +00:00
Dave Airlie 7ede209ce0 fixup xf86drm.c for new headers 2005-11-29 09:50:47 +00:00
Dave Airlie 645e2d411d fixes from Egbert for 64bit 2005-11-29 09:19:20 +00:00
Adam Jackson ec0ef9a78d remove xf86drmCompat.*, unused since about XFree86 4.2. 2005-11-28 22:18:12 +00:00
Brian Paul 0472ac5d11 fix mem leak in HashHash() (bug 5171) 2005-11-28 17:33:01 +00:00
Adam Jackson 79f30e79ec Bug #328: Silence read-from-uninitialized warnings in DRM_CAS on Alpha.
(David Dawes)
2005-10-22 05:50:22 +00:00
Adam Jackson d74376779f Remove the remaining references to Xlib. libdrm is totally independent now. 2005-10-20 17:53:02 +00:00
Adam Jackson b3631ba02c Remove bogus Xlib dependency. 2005-10-20 17:32:31 +00:00
Eric Anholt 9942cad1f6 Add missing .cvsignore files for autotoolery. 2005-08-25 23:11:28 +00:00
Eric Anholt 7d5130d8fb Include appropriate CFLAGS to find X headers, needed to build libdrm. 2005-08-25 02:59:21 +00:00
Dave Airlie 5a52e533e1 add options for x86_64 and amd will small letters 2005-08-23 04:10:50 +00:00
Adam Jackson 017174085f Fix silly install issue by moving the header install rules for shared-core
into shared-core/Makefile.am. Bump to 1.0.3.
2005-08-20 03:32:09 +00:00
Adam Jackson 1abd165f5b Add r300_reg.h. Bump to 1.0.2. 2005-08-19 20:14:10 +00:00
Adam Jackson 5a5478de7a distcheck fixes 2005-07-13 00:13:12 +00:00
Adam Jackson 07d23f9c60 autoconfiscate libdrm 2005-07-10 22:42:42 +00:00
Dave Airlie a0454aba71 mirror changes made in main tree.. just happened to be doing this myself 2005-04-04 04:08:29 +00:00
Adam Jackson caa4212faa momentary revert. libdrm build may be broken now, but no one uses it yet... 2005-02-01 22:09:46 +00:00
Adam Jackson 4b23b5fc3e Final pass of libdrm.so work:
- Add $(DESTDIR) for distributors doing package creation
- Remove OS-specific include path from build
- Add /usr/include/drm for driver-kernel API
- Install all of shared-core/*.h in /usr/include/drm
- Rename xf86drm.h to libdrm.h since we're not X biased anymore
- Include backwards compat for xf86drm.h name, with a warning
- Fix libdrm source to account for drm.h living in /usr/include/drm
2005-01-30 03:30:45 +00:00
Adam Jackson 3df805bd4a Add drm.h to the install target. 2005-01-22 08:24:36 +00:00
Adam Jackson c74052cfae Add xf86drm.h to the install target. 2005-01-17 00:02:04 +00:00
Adam Jackson e5cc0b8f6f Shared libdrm work:
- create libdrm.so target
- build it by default
- drop xf86drmCompat.c from the build
- make 'clean' target never fail
- use pattern rules for .c -> .o for parallelism
- add 'install' target
2005-01-16 23:50:58 +00:00
Dave Airlie 354dd17d25 The patch makes drmAddBufs/drmMapBufs can handle buffers in video memory
The attached patch adds a new buffer type DRM_FB_BUFFER. It works like AGP
    memory but uses video memory.
From: austinyuan@viatech.com.cn (fd.o bug 1668) Signed-off-by: Dave Airlie
    <airlied@linux.ie>
2005-01-16 05:40:12 +00:00
Felix Kuehling ed165a2529 Added a new DRM map type _DRM_CONSISTENT for consistent PCI memory. It uses
drm_pci_alloc/free for allocating/freeing the memory. Only implemented
    in the Linux DRM so far.
2005-01-01 20:03:15 +00:00
Dave Airlie c21cdee38a respect cc and cflags 2004-11-07 02:15:11 +00:00
Jon Smirl 993a75a5d1 Makefile and missing file to build libxf86drm.a 2004-09-17 20:01:59 +00:00
Adam Jackson fd62869a0f Bug #979: Don't include <sys/sysmacros.h> on linux, it occasionally emits
makedev() as a function call that elfloader can't resolve. Originally
    Gentoo Bug #41962, reported by Ryan Breen, fix feedback from Ryan
    Lortie.
2004-08-11 23:23:35 +00:00
Dave Airlie cc4d03930c Patch picked up from Redhat xorg release:
Patch by John Dennis <jdennis@redhat.com> which fixes DRI locking bug on
    ia64 architecture.
    https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=104338
    http://bugs.xfree86.org/show_bug.cgi?id=778
2004-07-31 08:12:39 +00:00
Jon Smirl 8696e71db2 Make drm/libdrm/xf86drm.c match
xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c so
    that it matches the prototypes in xf86drm.h XFree86 bug: Reported by:
    Submitted by: Reviewed by: Obtained from:
2004-07-07 04:36:36 +00:00
Jon Smirl deed1eca09 Add xf86drm.h back to drm/libdrm until it's true home can be found.
mesa-solo needs this file to build. XFree86 bug: Reported by: Submitted
    by: Reviewed by: Obtained from:
2004-07-07 04:22:17 +00:00
Michel Daenzer 27f9c5f016 build fix 2003-11-04 00:59:52 +00:00
Eric Anholt 06cb132e86 - Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the
server or client to notify the DRM that it expects a certain version of
    the device dependent or device independent interface. If the major
    doesn't match or minor is too large, EINVAL is returned. A major of -1
    means that the requestor doesn't care about that portion of the
    interface. The ioctl returns the actual versions in the same struct.
- Introduce DRM DI interface version 1.1. If the server requests version
    1.1, then the DRM sets the unique itself according to the busid of the
    device it probed, which may then be accessed as normal using getunique.
- Request version 1.1 in libdrm's drmOpenByBusID, allowing the X Server to
    request based on a BusID. Introduce a wrapper for DRM_IOCTL_SET_VERSION
    and bump libdrm minor version.
- Pass the busid in DRIScreenInit if libdrm can handle both a busid and
    name. This allows drmOpenByBusID to be used to find the DRM instead of
    just the driver name, which allows us in the future to tie a DRM more
    strongly to the device it probed to. Introduce a function
    DRICreatePCIBusID which creates a busid in the form pci:oooo:bb:dd.f
    similar to linux's pci_name() function. This matches the format used by
    the DRM in version 1.1. libdrm knows how to match both this format and
    the old PCI🅱️d:f format.
- Use the new DRICreatePCIBusID function in the *_dri.c to request the new,
    more exact busid format.
2003-10-23 02:23:31 +00:00
Alan Hourihane b0a928557c post merge fix 2003-09-24 14:39:25 +00:00
Alan Hourihane decf9e2297 compatibility layer still uses agp (not gart) 2003-09-13 00:25:59 +00:00
Alan Hourihane c5168016cc linux drm fixes 2003-09-12 20:00:59 +00:00
Eric Anholt ebca51d8da Update to reflect renaming of SIS ioctls. 2003-08-29 21:41:32 +00:00
Michel Daenzer b83d2f909e Rename agp to gart for radeon 2003-08-26 16:49:33 +00:00
Jose Fonseca d2443b2186 Merged DRM documentation. 2003-05-27 00:37:33 +00:00
Michel Daenzer 23a76c3759 deal correctly with read() from the DRM failing 2003-04-23 14:21:17 +00:00
Alan Hourihane b3eb34e0ea linux merge for drm 2003-03-25 11:36:43 +00:00
Alan Hourihane c14006ba9f XFree86 4.3.0 merge 2003-03-25 00:29:14 +00:00
Eric Anholt cfa778af9c Merge from bsd-4-0-0-branch. 2003-02-21 23:23:09 +00:00
Michel Daenzer c7d471b6ae don't inflate relative vblank sequence numbers on repeated calls (e.g. when
interrupted by a signal)
2003-02-02 03:06:47 +00:00
Brian Paul c869f4a1e5 added missing return fd (Alexander Stohr) 2002-11-25 16:03:20 +00:00
Alan Hourihane b3a20ce219 final part of XFree86 4.2.99.2 merge 2002-10-22 23:38:53 +00:00
Michel Daenzer 55acd0d5a6 common ioctl to wait for vertical blank IRQs 2002-09-25 17:18:19 +00:00
Eric Anholt d51ec6b972 Remove compat functions for FreeBSD for drivers which weren't available in
X4.2
2002-08-30 21:06:21 +00:00
Eric Anholt d2f2b42f1d Try to open the /dev/dri/cardX device once, then only if it fails check the
device number and recreate it if necessary. Fixes xf86drm.c to allow
    linux binaries to be used for emulation on FreeBSD.
2002-08-08 21:23:46 +00:00
Alan Hourihane 74ef13fd00 merged bsd-3-0-0-branch 2002-07-05 08:31:11 +00:00
Jens Owen 3903e5ac94 Merged drmcommand-0-0-1 2002-04-09 21:54:56 +00:00
David Dawes 44aa4d6297 First pass merge of XFree86 4.2.0 import. 2002-01-27 20:05:42 +00:00
David Dawes 9e69d0dac6 - Remove the rest of the unneeded client-side libraries.
- Use installed libraries that are not built here.
- Don't build/install client-library related file and headers.
2001-08-25 03:13:04 +00:00
David Dawes c6bf9bae8e First part of XFree86 4.1.99.1 merge. 2001-08-22 18:24:52 +00:00
David Dawes 56bd9c2077 Merge the multihead-1-0-0 branch into the trunk, with the exception of the
glide header files.
The changes include:
- Brian Paul's changes to the tdfx client-side 3D driver to make it
    dlopen() the correct glide library (Voodoo3 or Voodoo5). This allows
    both types of the glide library to co-exist, and allows Voodoo3/Voodoo5
    cards to be mixed in multi-head configs.
- DRM kernel driver changes to allow a driver to set up multiple instances
    (minor numbers), one for each card present that the driver supports.
    This is currently implemented and tested only for the tdfx DRM driver.
- Add some missing missing <stdarg.h> includes.
- Some log message cleanups.
- Change the 2D tdfx driver to access VGA legacy registers via their PCI
    I/O space access points rather than their legacy addresses, and fix
    some problems with the way the VGA-related bits are initialised.
Status:
- With these changes, multi-head direct rendering works with multiple
    Voodoo3 and/or Voodoo5 cards. This has been tested with two PCI Voodoo3
    cards and an AGP Voodoo5 card, and all permutations of those.
Caveats:
- Xinerama is not supported. If Xinerama is enabled, then direct rendering
    gets disabled.
- The text mode on secondary screens will show junk after the X server
    exits.
- On some hardware, starting the X server on multiple 3dfx cards will
    result in a hard lockup. One workaround is to enable APIC support in a
    uni-processor kernel, or use an SMP kernel.
2001-07-30 19:59:39 +00:00
Jeff Hartmann ae5b4effc0 Remove module name hacks because we aren't going to implement this anymore
because of Linus' comments
2001-07-20 20:31:30 +00:00
Jeff Hartmann 4eafeec960 Add module version name at a lower layer of the code, allows things to be
more flexible and allow older module versions to still work. Might not
    be final code if we move over to DRI kernel module version, but will be
    if we use XFree86 version. + Only build tdfx.o instead of tdfx-4_1_0.o
    since tdfx.o has never changed its API.
2001-07-18 21:02:58 +00:00
David Dawes d87c873df0 First pass of 4.1.0 merge. 2001-06-14 22:23:44 +00:00
David Dawes 9c775d0b2f finish struct stat type cleanup Fix a build dependencies for the tdfx drm
module
2001-05-14 14:49:58 +00:00
Alan Hourihane 0813760110 add some commented enclosures around the BUS_BASE calls for Alpha
platforms.
2001-05-04 14:05:13 +00:00
David Dawes 2ea12226a6 Initial merge for XFree86 4.0.99.3 import 2001-05-01 21:39:35 +00:00
Kevin E Martin df76f81292 - PCIGART patches for Alpha from Compaq 2001-04-30 15:07:18 +00:00
David Dawes 49781fcf37 put back BUS_BASE 2001-04-18 18:45:20 +00:00
David Dawes 18fc5ee923 First pass of XFree86 4.0.99.2 merge. 2001-04-09 21:56:31 +00:00
Kevin E Martin 5d6ddbca26 Merged ati-pcigart-1-0-0 2001-04-05 22:16:12 +00:00
David Dawes fcc21069b7 - Move xf86ConfigDRI declaration from xf86Priv.h to xf86.h.
- Don't include xf86Priv.h in the drm module.
- Fix 'struct stat' in loader libc wrapping to avoid unnecessary
    XFree86LOADER #ifdefs in code that uses it.
- Make drmOpenMinor() static.
2001-03-30 17:16:20 +00:00
Kevin E Martin 74e19a4018 Merged sarea-1-0-0 2001-03-14 22:22:50 +00:00
Gareth Hughes e2b2bffc6b Rest of MGA dualhead patch. 2001-03-13 00:22:05 +00:00
Rik Faith 88dbee54ed Implement drmOpen* without /proc dependence (Fallback to /proc is included
for backward compatibility.) Move statistic-gathering drm* calls from
    dristat.c to xf86drm.c
2001-02-28 09:27:44 +00:00
Gareth Hughes 360475376c Merge mga-1-0-0-branch into trunk. 2001-02-15 08:12:14 +00:00
David Dawes 94071289a4 merge with 4.0.1d 2000-11-08 00:07:17 +00:00
Alan Hourihane c7558d8fa4 commit xfree86 4.0.1d-pre update 2000-09-24 09:34:10 +00:00
Alan Hourihane f1bb3c5f5f Merged tdfx-2-1-branch 2000-09-07 12:40:41 +00:00
David Dawes cba4d3504c first part of 4.0.1b merge 2000-08-16 18:29:06 +00:00
Alan Hourihane 8751b6774d Merge XFree86 4.0.1 2000-07-11 11:41:07 +00:00
Rik Faith 1c8b2b5e06 Update email addresses and copyright notices to reflect VA Linux Systems 2000-06-13 14:22:03 +00:00
Brian Paul 569da5a42e Merged glxmisc-3-0-0 2000-06-08 14:38:22 +00:00
Kevin E Martin 99efe3c247 Merged ati-4-0-1 2000-05-18 06:14:27 +00:00
Brian Paul 01836824d5 Merged glxmisc-1-0-0 2000-04-20 16:36:40 +00:00
Jeff Hartmann ba1b1ae380 Merged mga branch with trunk 2000-04-04 22:08:14 +00:00
Jeff Hartmann 5bd8014f27 Merge with 4.0 2000-03-16 03:37:30 +00:00
Jeff Hartmann adc03d3661 Import of XFree86 4.0 2000-03-15 21:40:23 +00:00
Kevin E Martin d9ff0e3884 3.9.18 merge 2000-02-22 22:10:28 +00:00
Rik Faith 9243a76e03 Merge between X_3_9_16 and X_3_9_17 Compiles but may not run. 2000-01-07 06:54:54 +00:00
Daryll Strauss 0371c290a1 Rename the device to be /dev/dri instead of /dev/dri to avoid a conflict.
Rename proc entry from /proc/graphics to /proc/dri to be consistent.
1999-12-18 18:34:59 +00:00
Daryll Strauss e1dba5c3a7 Move Mesa to xc/extras Update to the latest Mesa 3.2 code Fix the Q3Demo
bugs (white railgun and texture mapping) Simplify driver texture
    mapping routines Fix device driver for 2.3 kernels Improve performance
1999-12-07 03:37:16 +00:00
Daryll Strauss b6a28bfe98 First DRI release of 3dfx driver. 1999-12-05 23:10:37 +00:00
Daryll Strauss b3a5766992 Initial revision 1999-12-05 01:19:48 +00:00