Commit Graph

2383 Commits

Author SHA1 Message Date
Adam Jackson
5b41d4e60b Don't filter modes away during VBE mode list construction.
Pass all VBE modes back up to the driver, on the assumption that it
knows how to filter modes intelligently.
2007-11-02 12:05:58 -04:00
Adam Jackson
c095da04fe Fix magic number in fbdevhw
The transformation between fbdev and xfree86 mode timings needs to be
invertible, otherwise Xen and other framebuffers that don't have real
pixel clocks won't initialize.
2007-11-02 12:05:41 -04:00
Adam Jackson
f4fe66f676 Disable explicit commenting in Monitor section. 2007-11-02 12:05:22 -04:00
Adam Jackson
22f0e3a8b0 Avoid PS/2 protocol probing for /dev/input/mice
The kernel will always upconvert to ExplorerPS/2 for all readers of
/dev/input/mice, so don't waste time on startup trying to figure
that out.
2007-11-02 12:04:56 -04:00
Adam Jackson
b97518666d Fix accidental ABI usage in RANDR 1.2 drivers.
Due to RANDR 1.2, xf86findOptionValue and xf86nameCompare are now ABI.
Make sure they're exported from the server.
2007-11-02 12:04:29 -04:00
Adam Jackson
a2ee5fe0c4 Enable MIT-SHM in Xdmx.
The extension is entirely DIX-level, no new DDX changes needed.
2007-11-01 13:47:17 -04:00
Kristian Høgsberg
692654b430 Set up visuals for the existing X visuals.
This makes the root visual a GLX capable visual again and adds a GLX visual
for the COMPOSITE ARGB visual cleanly (as opposed to the hack we had before).
2007-10-29 18:14:18 -04:00
Kristian Høgsberg
a5546a99ac Change the GLX module to initialize after COMPOSITE.
This changes the module initalization order so that the GLX module initializes
after COMPOSITE.  The reason for this change is to be able to initialize a
GLX visual config for the COMPOSITE ARGB visual.
2007-10-29 18:14:18 -04:00
Peter Hutterer
8ead41388e xfree86: wrap keyboard devices for XKB.
Call ProcessOtherEvents first, then for all keyboard devices let them be
wrapped by XKB. This way all XI events will go through XKB.

Note that the VCK is still not wrapped, so core events will bypass XKB.

(cherry picked from commit d627061b48)
2007-10-28 17:31:07 +02:00
Daniel Stone
493b83bd09 XFree86: Remove ridiculous SIGIO debugging
YOU PRESSED A KEY
AND AGAIN
YOU RELEASED A KEY
AND AGAIN
YOU PRESSED A KEY
AND AGAIN

... not so much.
2007-10-28 15:50:18 +02:00
Daniel Stone
df57ae1639 configure.ac/XFree86: Only build XF86Misc and XF86VidMode when appropriate
Don't build XF86Misc or XF86Vidmode in hw/xfree86/dixmod when it's been
explicitly disabled in configure, or we don't have the proto modules
installed.
2007-10-28 15:46:26 +02:00
Matthias Hopf
27b13eeb56 Nuke superfluous ",", added missing include for xf86i2c.h. 2007-10-26 13:15:07 +02:00
Daniel Stone
6d59bb5709 XFree86 Misc/VidMode: Remove ridiculous debug ErrorFs
When we're building with --enable-debug, don't emit an ErrorF every time a
function gets called.
2007-10-26 09:12:38 +03:00
Eamon Walsh
b633d54b94 Merge branch 'master' into XACE-SELINUX
Conflicts:

	GL/glx/glxscreens.c
	hw/xnest/Screen.c
	render/glyph.c
	render/glyphstr.h
	render/render.c
2007-10-25 12:19:30 -04:00
Matthias Hopf
48ca5961ca Prefer configured DisplaySize to probed DDC data, if available.
Based on patch by Hong Liu <hong.liu@intel.com>.
2007-10-24 20:31:51 +02:00
David Nusinow
d808d653d1 Define PCI_TXT_IDS_DIR more cleanly 2007-10-22 21:30:04 -04:00
Keith Packard
29e0e18072 Leave hardware-specified preferred modes alone when user preference exists.
Instead of removing the preference bit marking the hardware declared mode
preference, leave it in place and just move the user preferred mode to the
front of the list while marking it with the USERPREF bit which will cause it
to be selected by the initial mode selection code.
2007-10-22 13:38:16 -07:00
David Nusinow
be9b0e558d Add a note as to why the text file based PCI ID scheme is present at all 2007-10-21 23:49:14 -04:00
David Nusinow
b79b965bd9 Fix compilation issue on FreeBSD (bug #12841)
Hide getline call by checking for glibc. If not, use fgetln instead. Even
though this section is now #ifdef'ed for linux only, this should help make
it more portable if non-linux folks end up wanting it.
2007-10-21 23:46:54 -04:00
David Nusinow
7f5e71fa73 Make PCI text file directory configurable 2007-10-21 23:41:49 -04:00
Eric Anholt
4b14c9a9cd Replace calls to Glyphs screen hook with CompositeGlyphs and remove dead code.
Not all of the DDX/miext Glyphs hook implementations have been removed, but
they should be.
2007-10-19 16:34:54 -07:00
Eric Anholt
7e1cada6c6 Disable debian pci-id-list autoconfig code on non-linux.
It contains static paths, fails to build on non-glibc, and apparently just
exists to support distributions managing binary drivers and open-source drivers
together.  Also restores previous code for fallback to vesa if nothing is
detected.
2007-10-19 15:16:19 -07:00
Matthias Hopf
74e84b8d89 Only issue XF86_APM_CAPABILITY_CHANGED for video change ACPI events (not e.g. brightness etc.). 2007-10-19 17:28:15 +02:00
Matthias Hopf
6fdf3ddfef Fix ids of ACPI events according to ACPI spec. 2007-10-19 17:20:21 +02:00
Kristian Høgsberg
8e3c1dfc48 Introduce a new "GlxVisuals" option that controls which visuals are added.
Right now we default to "all" which gives us a situation much like before,
but when the "typical" option is implemented, we can change the default and
reduce the number of visuals the GLX module bloats the X server with.
2007-10-18 21:03:43 -04:00
Kristian Høgsberg
0af8180683 Drop VisualConfigPriv support from the DRI module.
No DDX driver uses this, and this patch stops the DRI module from
poking around GLX module data structures.
2007-10-18 21:03:43 -04:00
Kristian Høgsberg
7d74690536 Simplify and clean up GLX visual initialization.
Instead of the fragile setup where we filter the modes common between the
DDX generated GLX visuals and the DRI driver generated fbconfigs, we now
just take the fbconfigs returned by the DRI driver to be our supported set.
2007-10-18 21:03:43 -04:00
Eric Anholt
ab4bce02a9 Add a quirk for Philips 107P5 which lacks the preferred bit on detailed timing.
Also fix the prefer-large-75 quirk if the prefer-first-detailed bit was set,
though it's not the case for the existing prefer-large-75 consumer.
2007-10-18 15:22:42 -07:00
Eamon Walsh
c3f7b86255 Merge branch 'master' into XACE-SELINUX
Conflicts:

	os/access.c
2007-10-17 15:00:54 -04:00
Eamon Walsh
baabae623b xselinux: Started reworking extension using new XACE hooks. 2007-10-17 13:54:56 -04:00
Keith Packard
feac075952 Make config file preferred mode override monitor preferred mode.
Add a new even-more-preferred bit to each mode which is used to make config
file preferences selected instead of the monitor preferred mode.
2007-10-17 11:42:28 +08:00
Keith Packard
f2da10f7bc KDRIVE_LOCAL_LIBS includes some system libraries, not just internal x server libs 2007-10-17 10:51:02 +08:00
Eamon Walsh
4c3285c883 registry: Register WINDOWSWM extension protocol names. 2007-10-15 18:04:47 -04:00
Eamon Walsh
3815284e89 registry: Register XF86DGA extension protocol names. 2007-10-15 17:57:59 -04:00
Eamon Walsh
2cd1b32b77 registry: Register XF86Misc extension protocol names. 2007-10-15 17:37:58 -04:00
Eamon Walsh
960677e876 registry: Register XF86VidMode extension protocol names. 2007-10-15 17:30:00 -04:00
Eamon Walsh
b778672408 registry: Register XF86DRI extension protocol names. 2007-10-15 17:15:34 -04:00
Eamon Walsh
eee46b4681 registry: Register APPLEWM extension protocol names. 2007-10-15 17:06:22 -04:00
Eamon Walsh
b9f5ab98c8 registry: Register XINERAMA extension protocol names. 2007-10-15 16:18:37 -04:00
Eamon Walsh
3464b41923 registry: Register APPLEDRI extension protocol names. 2007-10-15 15:45:12 -04:00
Eamon Walsh
32f3f5a1e7 registry: Register DMX extension protocol names. 2007-10-15 15:32:17 -04:00
Ben Byer
3d4eb17b38 mass change from #ifdef i386 to #ifdef __i386__ to conform to ANSI 2007-10-14 18:07:03 -07:00
Kristian Høgsberg
927757e102 Merge branch 'master' of git://git.freedesktop.org/git/xorg/xserver 2007-10-12 19:28:39 -04:00
Eamon Walsh
526f40434c NULL is not a valid argument to CreatePicture, please use serverClient
as the client argument if no real client is creating the object.
2007-10-12 18:19:44 -04:00
Kristian Høgsberg
781515bb63 Convert GLX module to use screen private indexes like everything else. 2007-10-12 16:18:19 -04:00
David Nusinow
eaf0e2a21c Fix another compiler warning 2007-10-11 22:31:24 -04:00
David Nusinow
a5089af726 Fix a warning about the control logic in xchomp() 2007-10-11 22:24:31 -04:00
David Nusinow
cdf29ff45a Remove some unused variables 2007-10-11 22:23:34 -04:00
David Nusinow
3367091f7f Separate choosing driver from the file-based implementation
This clears the implementation out of the way to prepare for development
of a symbol-based resolution scheme
2007-10-11 22:21:38 -04:00
David Nusinow
3aa41bcb82 Remove obsolete error message define from parser 2007-10-11 21:29:13 -04:00
David Nusinow
e3e1222111 Don't bother validating the Device section of the conf file
All the previous tests can now be recovered from if not specified.
2007-10-11 21:27:07 -04:00
David Nusinow
28ef7f5941 Re-enable validation of the screen section of xorg.conf
This also fixes a problem where the server can't find the device section
when it is specified in the screen section.
2007-10-11 20:56:46 -04:00
David Nusinow
ea2d4dc468 When there's no xorg.conf, use the video driver autoloading function 2007-10-11 20:26:02 -04:00
Eric Anholt
fc092334ac Bug #10304,12784,11603: Add quirks for several physical size issues.
A lot of EDID writers apparently end up stuffing centimeters (like the
maximum image size field) into the detailed timings, instead of millimeters.
Some of them only get it wrong in one direction.  Also, add a quirk to let
us mark the largest 75hz mode as preferred, which will often be used for
EDID 1.0 CRTs.
2007-10-11 16:55:44 -07:00
Eamon Walsh
6adeba1730 dix: Add a new "registry" mechanism for registering string names of things.
Supports protocol requests, events, and errors, and resource names.
Modify XRES extension to use it.
2007-10-11 14:18:59 -04:00
Matthias Hopf
45cc03726b Make mode checking more tolerant like in pre-RandR times. 2007-10-11 18:59:39 +02:00
Eamon Walsh
8f23d40068 xace: move the property deletion hook inside the DeleteProperty function. 2007-10-10 19:56:03 -04:00
Eamon Walsh
7e9e01a4a3 dix: pass a valid ClientPtr to SetFontPath in all cases. 2007-10-10 17:40:22 -04:00
David Nusinow
8825d36a38 Allow the user to not have a screen section
If none is present, a default one will be created. This will be attached
to either the first device section in the xorg.conf (allowing you to
specify something like using EXA without having a screen section) or a
default screen section if none is present in the file.
2007-10-09 22:49:07 -04:00
David Nusinow
8665cf3327 Don't require that the screen explicitly attach the device section
This will allow the screen to not explicitly have a device section. If
this is the case and there is a device section in the xorg.conf, the first
one will be used. If there is no device section at all, a default one will
be created that loads the automatically determined module.
2007-10-09 22:45:15 -04:00
David Nusinow
37898b824f Use the best guess heuristic as a fallback for autoloading
This prevents breaking the current behavior
2007-10-09 22:13:15 -04:00
David Nusinow
847fbbf4d2 Fix autoloading of drivers for pci-rework 2007-10-09 22:13:15 -04:00
David Nusinow
6033d8150b First pass at improved video driver autoloading
This is what we're currently shipping in Debian. Enables the ability for
drivers to ship a text file listing PCI ID's they support, and have the
server read them on startup when no driver is specified. This works, but
isn't the final solution.
2007-10-09 22:13:15 -04:00
David Nusinow
81d7b81146 Load intel instead of i810 when autoconfiguring 2007-10-09 22:13:15 -04:00
Dodji Seketeli
ab11bad547 Xephyr: remove a potential crasher
* hw/kdrive/ephyr/hostx.c:
	  (hostx_has_dri): be more defensive.
2007-10-04 13:05:29 +02:00
Dodji Seketeli
06c8977966 Xephyr: better handling of the -nodri option
* hw/kdrive/ephyr/ephyr.c:
          (ephyrInitScreen): try and detect when the host has no
          DRI support. In that case, switch to the -nodri behaviour.
          When in the -nodri case, make sure not to skip glx visual
          initialisation.
2007-10-04 13:01:24 +02:00
Dodji Seketeli
ea94f59e9b Xephyr: don't disable glx visual init by default
* hw/kdrive/ephyr/ephyrinit.c:
          (ddxProcessArgument): disabling visual init here
          is bad because it gets disabled even when we want
          to use software GL, leading to Xephyr :1 -nodri
          crashing in mesa.
2007-10-04 12:54:26 +02:00
Dodji Seketeli
a7f210e6fc Xephyr: fix a compiler warning 2007-10-04 12:51:08 +02:00
Dodji Seketeli
5d6eac1251 Xephyr: remove an unused variable 2007-10-04 12:47:05 +02:00
Dodji Seketeli
8018733c39 Xephyr: better compilation without GLX
* hw/kdrive/ephyr/ephyrinit.c: protect GLX related code with GLXEXT
	  macro
2007-10-04 12:06:19 +02:00
Dodji Seketeli
4ba76a7e2b Xephyr: port XV/GL stuff of the new multiscreen architecture
We can now launch GL or XV apps in any of the
        Xephyr screens we want.

	* hw/kdrive/ephyr/hostx.c,h:
	 (hostx_get_window):
	 (hostx_create_window): make these functions be screen
	 number aware.
	* hw/kdrive/ephyr/XF86dri.c : fix some compiler warnings.
	* hw/kdrive/ephyr/ephyrdri.c:
	 (ephyrDRIQueryDirectRenderingCapable),
	 (ephyrDRIOpenConnection),
	 (ephyrDRIAuthConnection),
	 (ephyrDRICloseConnection),
	 (ephyrDRIGetClientDriverName),
	 (ephyrDRICreateContext),
	 (ephyrDRIDestroyContext),
	 (ephyrDRICreateDrawable),
	 (ephyrDRIGetDrawableInfo),
	 (ephyrDRIGetDeviceInfo): in all those functions, don't forward
	 the screen number we receive - from the client - to the host X.
	 We (Xephyr) are always targetting the same X display screen, which is
	 the one Xephyr got launched against. So we enforce that in the code.
	* hw/kdrive/ephyr/ephyrdriext.c:
	 (EphyrMirrorHostVisuals): make this duplicate the visuals of the host X
	  default screen into a given Xephyr screen. This way we have a chance
	  to update the visuals of all Xephyr screen to make them mirror those
	  of the host X.
	 (many other places): specify screen number where required by the api
	 change in hostx.h.
	* hw/kdrive/ephyr/ephyrglxext.c: specify screen number where required
	 by the api change in hostx.h
	* hw/kdrive/ephyr/ephyrhostglx.c: don't forward the screen number we
	  receive - from the client - to the host X.
	  We (Xephyr) are always targetting the same
	  X display screen, which is
	 the one Xephyr got launched against. So we enforce that in the code.
	* hw/kdrive/ephyr/ephyrhostvideo.c,h: take in account the screen number received
	  from the client app. This is useful to know on which Xephyr screen we
	  need to display video stuff.
	* hw/kdrive/ephyr/ephyrvideo.c: update this to reflect the API change
	  in hw/kdrive/ephyr/ephyrhostvideo.h.
	  (ephyrSetPortAttribute): when parameters are not valid
	   - they exceed their validity range - send them to the host anyway
	   and do not return an error to clients.
	  Some host expose buggy validity range, so rejecting client for that
	  is too harsh.
2007-10-03 13:03:34 +02:00
Dodji Seketeli
dcb4db1bf5 Xephyr: glx fixlet
* hw/kdrive/ephyr/ephyrhostglx.c:
	  (ephyrHostGLXQueryVersion): properly query
	  the host for its gxl version.
2007-10-02 16:55:18 +02:00
Dodji Seketeli
6a435b0000 Xephyr: check presence of extensions in host X
* hw/kdrive/ephyr/hostx.c,h:
	  (hostx_has_xshape),
	  (hostx_has_glx),
	  (hostx_has_dri): added these new entry points
	* hw/kdrive/ephyr/ephyrdriext.c:
	  (ephyrDRIExtensionInit):
	  check presence of DRI and XShape extensions before
	  trying to use them.
	* hw/kdrive/ephyr/ephyrglxext.c:
	  (ephyrHijackGLXExtension):
	  check presence of glx extension before we use it.
2007-10-02 16:55:18 +02:00
Dodji Seketeli
2b217fc055 Xephyr: cleanup XF86dri.c a bit 2007-10-02 16:55:18 +02:00
Dodji Seketeli
f731b9da7d Xephyr: add -nodri and -noxv switches.
* hw/kdrive/ephyr/ephyr.c,ephyrinit.c::
	  add -nodri and -noxv to disable either DRI or XV.
	  When -nodri, mesa GL (non acceleretated) works.
2007-10-02 16:55:18 +02:00
Dodji Seketeli
5067439138 Kdrive: use fbcmap_mi.c instead of fbcmap.c
* hw/kdrive/src/Makefile.am: use fb/fbcmap_mi.c
	  and not fb/fbcmap.c. This allows kdrive to take advantage of
	  extensions redefining the entry points of  micmap.c stuff.
	  For instance it allows Xephyr to have a working GL, which is not
	  possible otherwise, because GL redefines mInitVisualsProc
	  to initialise its visuals.
2007-10-02 16:55:17 +02:00
Dodji Seketeli
ffe9ce6a84 Xephyr: fix a clipping issue xephyr-dri
* hw/kdrive/ephyr/ephyrdri.c:
	  (ephyrDRIGetDrawableInfo): force the back clipping rects
	  to equal the front clipping rects.
	* hw/kdrive/ephyr/ephyrdriext.c:
	  (ProcXF86DRIGetDrawableInfo): properly overclip the clipping rects we
	   got from the client. This bug fixes a clipping rect that was too
	   small in height, basically. Also fix a possible mem corruption.
	* hw/kdrive/ephyr/hostx.c:
	  (hostx_set_window_geometry): remove a useless XSync
2007-10-02 16:55:17 +02:00
Dodji Seketeli
7978272661 Xephyr: properly clip GL drawables in Xephyr 2007-10-02 16:55:17 +02:00
Dodji Seketeli
3816d64e50 Xephyr: oops, forgot to add ephyrdriext.h 2007-10-02 16:55:17 +02:00
Dodji Seketeli
cf58781eee Xephyr: make accelerated glxgears work in Xephyr
* hw/kdrive/ephyr/ephyr.c:
	 (ephyrInitialize): cleanup ephyrDRI extension init.
	 remove functions that belongs in ephyrdriext.c .
	* hw/kdrive/ephyr/ephyrdri.c:
	 (ephyrDRICreateDrawable): create the drawable on the host X peer
	  window, not on the host xephyr main window.
	 (ephyrDRIGetDrawableInfo): get drawable info of the host X peer
	  window.
	* hw/kdrive/ephyr/ephyrdriext.c: make ephyr DRI extention wrap
	  a bunch of screen ops so that it can update the host X peer
	  window whenever DRI bound drawable are moved in Xephyr.
	  Also code the building blocks of the management of the
	  host X window peer.
	* hw/kdrive/ephyr/hostx.c,h:
	  (hostx_create_window): added this new entry point
	  (hostx_destroy_window): ditto
	  ()hostx_set_window_geometry): ditto
2007-10-02 16:55:16 +02:00
Dodji Seketeli
6d1e44d3d5 Xephyr: fix a host X hang.
* hw/kdrive/ephyr/ephyrdri.c:
	  (ephyrDRIGetDrawableInfo): quickly hook
	  this into getting the drawable info from the host
	  X server. For the time being, this only gets the drawable info
	  of the Xephyr main window in the host. It should really get
	  the info of a the peer drawable in the host X. So there should be a
	  peer drawable to begin with.
	* hw/kdrive/ephyr/ephyrdriext.c:
	  (ProcXF86DRIGetDrawableInfo): some cleanups. Properly get the
          the drawable info otherwise there is a host X hang.
	* hw/kdrive/ephyr/ephyrhostglx.c: do not
	  (ephyrHostGLXQueryVersion): do not use C bindings of the glx protocol
	   calls. Some of those actually access DRI context directly, resulting
	   in the context having three clients. Instead all XF86DRI proto
	   fowarding request should be coded by hand and only forward the
	   protocol requests
2007-10-02 16:55:16 +02:00
Dodji Seketeli
a39b57d2f7 Xephyr: add more logging to GLX forwarding
* hw/kdrive/ephyr/ephyrhostglx.c: added more logging.
2007-10-02 16:55:16 +02:00
Dodji Seketeli
9e192d2118 Xephyr: better error handling in GLX forwarding
* hw/kdrive/ephyr/ephyrglxext.c:
	  fixed various logging functions
	  (ephyrGLXGetStringReal): make sure all the string is sent to clients
	  including the ending zero.
	* hw/kdrive/ephyr/ephyrhostglx.c:
	  (ephyrHostGLXGetStringFromServer): better error handling.
	  (ephyrHostGLXSendClientInfo): ditto.
	  (ephyrHostGLXMakeCurrent): ditto
2007-10-02 16:55:16 +02:00
Dodji Seketeli
4dd4be99df Xephyr: Make glxinfo work on the ATI R200 free driver.
* hw/kdrive/ephyr/ephyr.c:
	  (EphyrDuplicateVisual): when duplicating the
	  visual, copy the color component masks and the class
	  from the hostX
	  (EphyrMirrorHostVisuals): don't mix blue and green mask.
	* hw/kdrive/ephyr/ephyrdri.c: add more logs.
	  (ephyrDRICreateDrawable): actually implement this.
	  for the moment it creates a DRI drawable for the hostX window,
	  no matter what drawable this call was issued for.
	  (ephyrDRIGetDrawableInfo): actually implemented this.
	  for the moment the drawable info queried for its attrs is the
	  Xephyr main main window.
	* hw/kdrive/ephyr/ephyrdriext.c:
	  (ProcXF86DRIGetDrawableInfo): properly hook this dispatch
	  function to the ephyrDRIGetDrawableInfo() function.
	* hw/kdrive/ephyr/ephyrglxext.c: add a bunch of GLX implementation hooks
	  here. Hijack some of the xserver GLX hooks with them. Still need to
	  properly support byteswapped clients though.
	* hw/kdrive/ephyr/ephyrhostglx.c,h: actually implemented the protocol
	  level forwarding functions used by the GLX entr points in
	  ephyrglxext.c. Here as well, there are a bunch of them, but we are
	  far from having implemented all the GLX calls.
	* hw/kdrive/ephyr/hostx.c,h:
	  (hostx_get_window_attributes): added this new entry point
	  (hostx_allocate_resource_id_peer): added this to keep track of
	   resource IDs peers: one member of the peer is in Xephyr, the other
	   is in host X.
	  (hostx_get_resource_id_peer): ditto.
2007-10-02 16:55:16 +02:00
Dodji Seketeli
024abe825c Xephyr: add logging in the DRI extension 2007-10-02 16:55:15 +02:00
Dodji Seketeli
1dd589410c mirror the visuals of the host X at startup.
* hw/kdrive/ephyr/ephyr.c: make Xephyr mirror
	  the visuals of the host X upon startup. This
	  is important for GLX client apps.
	* hw/kdrive/ephyr/hostx.c,h: add a hostx_get_visuals_info()
	  to get the visuals of the host X.
2007-10-02 16:55:15 +02:00
Dodji Seketeli
26da625055 proxy the glXGetFBConfigSGIX call
* hw/kdrive/ephyr/ephyrglxext.c:
	  (ephyrGLXGetFBConfigsSGIX): proxy the GLXGetFBConfigsSGIX call.
	  It is a vendor extension to get the visual configs as a list of
	  name/value pairs.
	  (ephyrHijackGLXExtension): hijack the VendorPriv_dispatch_info
	  dispatch table to register our implementation of GLXGetFBConfigsSGIX
	  (ephyrGLXGetFBConfigsSGIXReal): added this where the real
	   implementation of GLXGetFBConfigsSGIX is. It support bytes swapping.
	  (ephyrGLXGetFBConfigsSGIX,ephyrGLXGetFBConfigsSGIXSwap): these are
	  the dispatch entry points. They just call
	  ephyrGLXGetFBConfigsSGIXReal.
	* hw/kdrive/ephyr/ephyrhostglx.c,h: reorganize the proxies to get
	  visual params from the host so that they clearly support the different
	  methods of doing so.
2007-10-02 16:55:15 +02:00
Dodji Seketeli
5af73f98c4 EPHYR: Add an experiment proto proxy extension.
* hw/kdrive/ephyr/Makefile.am: add the proxy extension to
	  ephyr. The proxy extension is an experimental extension that
	  forwards protocol packets targeted at a given extension to the
	  host X.
	* hw/kdrive/ephyr/ephyr.c: init proxy ext.
	* hw/kdrive/ephyr/ephyrhostproxy.c,h: added this new file as part of the
	  proxy extension.
	* hw/kdrive/ephyr/ephyrproxyext.c,h: ditto
	* hw/kdrive/ephyr/hostx.c: add the hostx_get_get_extension_info() entry
	  point.
2007-10-02 16:55:15 +02:00
Dodji Seketeli
c06fa924b4 XEPHYR: more GLX/DRI proxying work.
* hw/kdrive/ephyr/XF86dri.c: re format this correctly.
	  Make function decls honour the Ansi-C standard.
	* hw/kdrive/ephyr/ephyr.c: protect glx/dri related
	  extension initialisation with the XEPHYR_DRI
	  macro. Initialize the GLX ext hijacking
	  at startup.
	* hw/kdrive/ephyr/ephyrdri.c: add more logging to ease debugging
	* hw/kdrive/ephyr/ephyrdriext.c: ditto. reformat.
	* hw/kdrive/ephyr/ephyrglxext.c,h: add this extension to
	  proxy GLX requests to the host X. started to proxy those nedded to
	  make glxinfo work with fglrx. Not yet finished.
	* hw/kdrive/ephyr/ephyrhostglx.c,h: put here the actual
	  Xlib code used to hit the host X server because Xlib stuff cannot be
	  mixed with xserver internal code, otherwise compilation erros due to
	  type clashes happen. So no Xlib type should be exported by the
	  entrypoints defined here.
2007-10-02 16:55:15 +02:00
Dodji Seketeli
0b85451449 Implement ReputImage and StopVideo
* hw/kdrive/ephyr/ephyrhostvideo.c/h:
	  (ephyrHostXVStopVideo): add this entry point.
	* hw/kdrive/ephyr/ephyrvideo.c:
	  Basically add ReputImage and StopVideo implementations.
	  Now, when other windows obscur the video window, the reclipping
	  seems to be well handled using StopVideo and ReputImage.
	  To do this, I was obliged to save the frame in PutImage, so
	  that I could resend it un ReputImage.
2007-10-02 16:55:14 +02:00
Dodji Seketeli
810dc55866 Ephyr-Xv: add a new line to a log
* hw/kdrive/ephyr/ephyrvideo.c:
	  (ephyrQueryImageAttributes): add newline to log.
2007-10-02 16:55:14 +02:00
Dodji Seketeli
47e6dff89e Xephyr-Xv: fix a crash when host X support several ports
* hw/kdrive/ephyr/ephyrvideo.c:
	  (ephyrXVPrivQueryHostAdaptors): properly set
	  port private luke. This fixes a crash when
	  the host Xv supports multiple ports.
	  Make sure number of ports cannot be zero.
2007-10-02 16:55:14 +02:00
Dodji Seketeli
a38ad562a6 make xephyr talk DRI protocol with hostX
* configure.ac,include/dix-config.h.in: define the XEPHYR_DRI macro.
	  define it when --enable-xephyr and --enable-dri are both turned on.
	* hw/kdrive/ephyr/XF86dri.c: copy this from mesa source to enable
	  Xephyr to talk DRI protocol the host X. In mesa, this is used by libGL.so to
	  talk DRI protocol with the server.
	* hw/kdrive/ephyr/ephyr.c: finally initialise the DRI extension
	  in the ephyrInitScreen() function.
	* hw/kdrive/ephyr/ephyrdri.c,ephyrdriext.c: safeguard the compilation
	  using the XEPHYR_DRI macro.
2007-10-02 16:55:14 +02:00
Dodji Seketeli
e4239a4807 Initial dri forwarding big bricks.
* hw/kdrive/ephyr/ephyrdriext.c: added this to implement a DRI extension
	  into Xephyr. Normally the DRI extension is only present in the
	  xfree86 server, but I have ported it to Xephyr. The extension calls
	  functions that declared/defined in ephyrdri.h ephyrdri.c that
	  forwards the DRI calls to the host X. It does not work yet, as this
	  entry is just to put the big bricks in place.
	* hw/kdrive/ephyr/ephyrdri.c,h: declaration & definition of the
	  DRI client API that would hit the hostX server.
	* hw/kdrive/ephyr/GL/internal/dri_interface.h: added this, otherwise
	  inclusion of /usr/include/X11/dri/xf86dri.h won't compile
2007-10-02 16:55:14 +02:00
Dodji Seketeli
e01d3dd98d Support clipping region in PutImage.
* hw/kdrive/ephyr/ephyrhostvideo.c,h:
	  (ephyrHostXVPutImage): make this support clipping region.
	  The clipping region is propagated to host using XSetClipRectangles.
	  This changes the API of ephyrHostXVPutImage.
	* hw/kdrive/ephyr/ephyrvideo.c:
	  (ephyrPutImage): propagate the clipping region to the new
	  ephyrHostXVPutImage() entry point.
2007-10-02 16:55:14 +02:00
Dodji Seketeli
39d3895469 make EphyrXVPriv be a singleton
* hw/kdrive/ephyr/ephyrvideo.c:
	  (ephyrInitVideo) make the EphyrXVPriv object be a
	   singleton instance, otherwise a new object is created at each
	   generation.
2007-10-02 16:55:14 +02:00
Dodji Seketeli
4ed083095a add [Get/Put]Video and [Get/Put]Still support
* hw/kdrive/ephyr/ephyrhostvideo.c,h:
	  (ephyrHostXVAdaptorHasXXX): fix these.
	  (ephyrHostXVAdaptorHasGetVideo): added this
	  (ephyrHostXVAdaptorHasGetStill): ditto
	  (ephyrHostXVPutVideo): added this
	  (ephyrHostXVGetVideo): ditto
	  (ephyrHostXVPutStill): ditto
	  (ephyrHostXVGetStill): ditto
	* hw/kdrive/ephyr/ephyrvideo.c:
	  (ephyrPutVideo): implement this
	  (ephyrGetVideo): ditto
	  (ephyrPutStill): ditto
	  (ephyrGetStill): ditto
	  (ephyrXVPrivSetAdaptorsHooks): advertise GetVideo and GetStill
	  when the host X supports it.
2007-10-02 16:55:14 +02:00
Dodji Seketeli
6f7961bc21 advertise only the hooks implemented by host X
* hw/kdrive/ephyr/ephyrhostvideo.c,h:
          (ephyrHostXVAdaptorHasPutVideo): detect if
          host X has the PutVideo call.
          (ephyrHostXVAdaptorHasPutStill): detect if
          host X has the PutStill call
          (ephyrHostXVAdaptorHasPutImage): detect if
          host X has the PutImage call
        * hw/kdrive/ephyr/ephyrvideo.c:
          (ephyrXVPrivQueryHostAdaptors): make sure to create
          atoms for attribute names otherwise subsequent
          calls to get/set attribute from clients won't work.
          (ephyrXVPrivSetAdaptorsHooks): don't hardwire advertising
          of the PutImage call. Instead, advertise the calls advertised
          by the host.
2007-10-02 16:55:14 +02:00
Dodji Seketeli
1de89239bd don't crash when hostX reports an error.
* hw/kdrive/ephyr/ephyrhostvideo.c,h:
          (ephyrHostXVLogXErrorEvent): add this to
          log X error events. Heavily copied from libx11
          (ephyrHostXVErrorHandler): new x error handler that
          logs the error but does not exits.
          (ephyrHostXVInit): add this to be called at the beginning
          of xvideo lifetime. It sets an xerror handler that does not
          exit.
        * hw/kdrive/ephyr/ephyrvideo.c:
          (ephyrXVPrivIsAttrValueValid): this validates an attribute
          value.
          (ephyrSetPortAttribute): before setting an attribute,
          validate the new value so that we don't send a buggy
          request to host X.
        * hw/kdrive/ephyr/*.c: fix case in ephyrvideo code.
        * hw/kdrive/ephyr/ephyr.c: fix a typo
2007-10-02 16:55:13 +02:00
Dodji Seketeli
207714b60d first implementation of putimage
* hw/kdrive/ephyr/ephyrhostvideo.c,h:
          (EphyrHostXVPutImage): first implementation. does not
          support clipping regions yet.
        * hw/kdrive/ephyr/ephyrvideo.c:
          (DoSimpleClip): clip using a clipping box. Does not
           support regions yet.
          (EphyrPutImage): first implementation.
           Uses a simple clipping rectangle, no region yet.
        * hw/kdrive/ephyr/hostx.c:
          (hostx_get_window): added this to get the main
          window of the host x.
2007-10-02 16:55:13 +02:00