Re: [xkb] Re: xkeyboard-config 1.9

2010-06-17 Thread Sergey Udaltsov
Agree.
Is there existing release.sh - or will I create one (and share as
template)? I know, it is just 2-3 lines... (except for the message
body)

Sergey

On Wed, Jun 16, 2010 at 11:59 PM, Peter Hutterer
peter.hutte...@who-t.net wrote:
 On Wed, Jun 16, 2010 at 11:40:32PM +0100, Sergey Udaltsov wrote:
 First of all, I do not have permission to store anything there:

 $ ls -la /srv/xorg.freedesktop.org/archive/individual/data/xkeyboard-config
 total 16
 drwxrwxr-x+ 2 root root 4096 2010-06-16 06:23 .
 drwxrwxr-x+ 3 kem  xorg 4096 2010-06-16 06:23 ..

 Daniel, could you please check?

 I do not like the idea of announce emails to be autogenerated. Yes,
 scp/git tagging could(should) be automated.

 fwiw, the email is only autogenerated, not automatically sent. once you run
 the release script, it drops a tagname.announce file in the current
 directory and you can then use this as your announce email.

 Cheers,
  Peter

 On Wed, Jun 16, 2010 at 11:33 PM, Peter Hutterer
 peter.hutte...@who-t.net wrote:
  On Wed, Jun 16, 2010 at 03:24:19PM +0100, Sergey Udaltsov wrote:
  Thanks, I will use that space
 
  Sergey
 
  On 16 Jun 2010 14:33, Daniel Stone dan...@fooishbar.org wrote:
 
  On Wed, Jun 16, 2010 at 02:03:57PM +0100, Sergey Udaltsov wrote:
 
   I think that would be handy, thanks.
 
  Cool.
 
  annarchy.freedesktop.org:/srv/
  xorg.freedesktop.org/archive/individual/data/xkeyboard-config/
  ...
 
  might be worth putting the required bits into release.sh as well. Running a
  shell script that does everything for you is probably easier than 
  generating
  everything by hand.
 
  end result for you would be you'd just run
     $ release.sh xkeyboard-config v1_9 v1_10
  and the announce email, tag pushing, tarballs copying, etc. is all done for
  you.
 
  Cheers,
   Peter
 


___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

RE: Rendering in geode

2010-06-17 Thread Huang, FrankR
Morton,

From your explanation and my test with rendercheck, I found it more 
complex for the driver to handle these special condition.
Give the results I tested PictOpOver with the following 
XRenderComposite() call in Xlib app on ATI X1200.
1)XRenderComposite(dpy, PictOpOver, picture_10x10[0].pict, 0, 
win-pict, 11, 0, 0, 0, 50, 50, 30, 30)  with the picture_10x10 has repeat 
attribute.
Result: 30x30 rendering region
2) XRenderComposite(dpy, PictOpOver, picture_10x10[0].pict, 0, 
win-pict, 11, 0, 0, 0, 50, 50, 30, 30)  with the picture_10x10 has no repeat 
attribute.
Result: no-op
3) XRenderComposite(dpy, PictOpOver, picture_10x10[0].pict, 0, 
win-pict, -10, 0, 0, 0, 50, 50, 30, 30)  with the picture_10x10 has repeat 
attribute.(negative coordinate)
Result: 30x30 rendering region
4) XRenderComposite(dpy, PictOpOver, picture_10x10[0].pict, 0, 
win-pict, -10, 0, 0, 0, 50, 50, 30, 30)  with the picture_10x10 has no repeat 
attribute.(negative coordinate)
Result: 10x10 rendering region

Just as you told me in the mail, the source coordinate is allowed to be 
outside of the image--positive and negative. In 1)-4), I gave the both tested, 
you can see the result.
That is only the PictOpOver, I gave a test to PictOpSrc. The result is 
as you said, black region with no repeat parameter(zero vector).
What I want to ask is that does driver need handle these all? I think 
it is a huge burden for the driver to judge. Why the server gave such 
parameters to driver? Maybe one of this special condition can make the driver 
rendering result fails, just as geode. And the most important thing is that, if 
the driver found it can not do that rendering, it is to late for put the 
rendering back to Xserver SW method. 
I can add some code to this special condition, but these questions 
above puzzle me.

Thanks,
Frank

-Original Message-
From: Jonathan Morton [mailto:jonathan.mor...@movial.com] 
Sent: 2010?6?14? 18:07
To: Huang, FrankR
Cc: xorg-devel@lists.x.org; xorg-driver-ge...@lists.x.org
Subject: RE: Rendering in geode

On Sun, 2010-06-13 at 16:47 +0800, Huang, FrankR wrote:
 You know when the driver does the composite, it is called in
 exaTryDriverComposite() function. You guess what? It give a driver a
 composite call that the source's width is less than srcX. That is
 impossible from my point.
 Make is more simple:
 A XRenderComposite() call below:
 XRenderComposite(dpy, PictOpOver,
 picture_10x10[0].pict,
 0, win-pict, 11, 0, 0, 0, 50, 50, 40, 40)
 
 The source is a 10x10 pixmap, but the srcX is 11. The
 rendering
 result is none! I think the driver should refuse that parameter to do
 the rendering. It will bring chaos operation. That is my thought.

Source (and mask) coordinates are allowed to go outside the image
involved - both positive and negative.  The effect of this depends on
the Repeat attribute on that image.

If Repeat is None (0), then samples outside the image return the
all-zeroes vector, even if the image doesn't have an alpha channel.
This is then sent through the rendering equation as normal.

If Repeat is Normal (1), then the coordinate is wrapped back into the
image using the modulus (%) operation.  This is your usual repeating
tile function.  As a special case, a 1x1 image with Repeat set to Normal
is the usual way of representing a solid colour.

Repeat values of Extend (2) and Mirror (3) are also possible.

Obviously, you should reject attribute values that you cannot support.
But it might happen that the hardware doesn't know how to do the None
mode properly by itself, and failing to support that at CheckComposite
time is pretty useless - but you don't know the coordinates until after
that point.

Let's suppose you support the Src and Over modes.  These need to be
handled differently if the coordinates can fall outside the source
image(s) in No-Repeat mode: Src turns to a fill of the all-zeroes
vector, and Over turns into a no-op.  You can therefore divide the
rendering area into normal and blanked zones, and issue separate
commands to the hardware for each.

Because Clear mode doesn't use the source or mask data at all, it is
unaffected by this quirk - but it is rarely used.  Other modes have
similar simplifications as Src and Over.

-- 
--
From: Jonathan Morton
  jonathan.mor...@movial.com




___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


RE: Rendering in geode

2010-06-17 Thread Huang, FrankR
Morton,

I modify the geode driver on the condition 1). The bug is solved by 
applying the correct way. But I still need your answers for my questions 
below:).
You give me great help:).


Thanks,
Frank

-Original Message-
From: Huang, FrankR 
Sent: 2010?6?17? 15:48
To: 'Jonathan Morton'
Cc: xorg-devel@lists.x.org; xorg-driver-ge...@lists.x.org
Subject: RE: Rendering in geode

Morton,

From your explanation and my test with rendercheck, I found it more 
complex for the driver to handle these special condition.
Give the results I tested PictOpOver with the following 
XRenderComposite() call in Xlib app on ATI X1200.
1)XRenderComposite(dpy, PictOpOver, picture_10x10[0].pict, 0, 
win-pict, 11, 0, 0, 0, 50, 50, 30, 30)  with the picture_10x10 has repeat 
attribute.
Result: 30x30 rendering region
2) XRenderComposite(dpy, PictOpOver, picture_10x10[0].pict, 0, 
win-pict, 11, 0, 0, 0, 50, 50, 30, 30)  with the picture_10x10 has no repeat 
attribute.
Result: no-op
3) XRenderComposite(dpy, PictOpOver, picture_10x10[0].pict, 0, 
win-pict, -10, 0, 0, 0, 50, 50, 30, 30)  with the picture_10x10 has repeat 
attribute.(negative coordinate)
Result: 30x30 rendering region
4) XRenderComposite(dpy, PictOpOver, picture_10x10[0].pict, 0, 
win-pict, -10, 0, 0, 0, 50, 50, 30, 30)  with the picture_10x10 has no repeat 
attribute.(negative coordinate)
Result: 10x10 rendering region

Just as you told me in the mail, the source coordinate is allowed to be 
outside of the image--positive and negative. In 1)-4), I gave the both tested, 
you can see the result.
That is only the PictOpOver, I gave a test to PictOpSrc. The result is 
as you said, black region with no repeat parameter(zero vector).
What I want to ask is that does driver need handle these all? I think 
it is a huge burden for the driver to judge. Why the server gave such 
parameters to driver? Maybe one of this special condition can make the driver 
rendering result fails, just as geode. And the most important thing is that, if 
the driver found it can not do that rendering, it is to late for put the 
rendering back to Xserver SW method. 
I can add some code to this special condition, but these questions 
above puzzle me.

Thanks,
Frank

-Original Message-
From: Jonathan Morton [mailto:jonathan.mor...@movial.com] 
Sent: 2010?6?14? 18:07
To: Huang, FrankR
Cc: xorg-devel@lists.x.org; xorg-driver-ge...@lists.x.org
Subject: RE: Rendering in geode

On Sun, 2010-06-13 at 16:47 +0800, Huang, FrankR wrote:
 You know when the driver does the composite, it is called in
 exaTryDriverComposite() function. You guess what? It give a driver a
 composite call that the source's width is less than srcX. That is
 impossible from my point.
 Make is more simple:
 A XRenderComposite() call below:
 XRenderComposite(dpy, PictOpOver,
 picture_10x10[0].pict,
 0, win-pict, 11, 0, 0, 0, 50, 50, 40, 40)
 
 The source is a 10x10 pixmap, but the srcX is 11. The
 rendering
 result is none! I think the driver should refuse that parameter to do
 the rendering. It will bring chaos operation. That is my thought.

Source (and mask) coordinates are allowed to go outside the image
involved - both positive and negative.  The effect of this depends on
the Repeat attribute on that image.

If Repeat is None (0), then samples outside the image return the
all-zeroes vector, even if the image doesn't have an alpha channel.
This is then sent through the rendering equation as normal.

If Repeat is Normal (1), then the coordinate is wrapped back into the
image using the modulus (%) operation.  This is your usual repeating
tile function.  As a special case, a 1x1 image with Repeat set to Normal
is the usual way of representing a solid colour.

Repeat values of Extend (2) and Mirror (3) are also possible.

Obviously, you should reject attribute values that you cannot support.
But it might happen that the hardware doesn't know how to do the None
mode properly by itself, and failing to support that at CheckComposite
time is pretty useless - but you don't know the coordinates until after
that point.

Let's suppose you support the Src and Over modes.  These need to be
handled differently if the coordinates can fall outside the source
image(s) in No-Repeat mode: Src turns to a fill of the all-zeroes
vector, and Over turns into a no-op.  You can therefore divide the
rendering area into normal and blanked zones, and issue separate
commands to the hardware for each.

Because Clear mode doesn't use the source or mask data at all, it is
unaffected by this quirk - but it is rarely used.  Other modes have
similar simplifications as Src and Over.

-- 
--
From: Jonathan Morton
  jonathan.mor...@movial.com




___
xorg-devel@lists.x.org: X.Org development
Archives: 

[PATCH 0/2] startup speed up by removing PCI routines

2010-06-17 Thread Tiago Vignatti
Hi. I'm sending again these two patches for review. I didn't change anything
on both.

Some discussions on the second happenend related with a better way to match
video card lists. IMHO these are orthogonal with the current issue we are
seeing here.

If no one objects, I'd judge this as material for 1.9 release (even not
being a bug fix). Please review.


Thanks,


Tiago Vignatti (2):
  xfree86: pci: remove superfluous vendor and card name logging
  xfree86: configure: remove vendor and card name matching rules

 hw/xfree86/common/xf86Configure.c |   23 ---
 hw/xfree86/common/xf86pciBus.c|   13 +
 2 files changed, 1 insertions(+), 35 deletions(-)

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH 1/2] xfree86: pci: remove superfluous vendor and card name logging

2010-06-17 Thread Tiago Vignatti
X server suffers in startup time when relying on the pciaccess's linear search
to fetch vendor and video device name from PCI ID file (when existent). Such
names are only used to write the log, which may be superfluous. This
information often is provided by the drivers or likewise users can get the it
using external tools like lspci or scanpci.

This patch remove the references of those functions from X start up.

Reported-by: Richard Barnette jrbarne...@chromium.org
Signed-off-by: Tiago Vignatti tiago.vigna...@nokia.com
Tested-by: Richard Barnette jrbarne...@chromium.org
Reviewed-by: James Cloos cl...@jhcloos.com
---
 hw/xfree86/common/xf86pciBus.c |   13 +
 1 files changed, 1 insertions(+), 12 deletions(-)

diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index 1517951..74016af 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -151,18 +151,13 @@ xf86PciProbe(void)
 
 /* Print a summary of the video devices found */
 for (k = 0; k  num; k++) {
-   const char *vendorname = NULL, *chipname = NULL;
const char *prim =  ;
Bool memdone = FALSE, iodone = FALSE;
 
 
info = xf86PciVideoInfo[k];
 
-   vendorname = pci_device_get_vendor_name( info );
-   chipname = pci_device_get_device_name( info );
-
-   if ((!vendorname || !chipname) 
-   !PCIALWAYSPRINTCLASSES(info-device_class))
+   if (!PCIALWAYSPRINTCLASSES(info-device_class))
continue;
 
if (xf86IsPrimaryPci(info))
@@ -173,12 +168,6 @@ xf86PciProbe(void)
info-vendor_id, info-device_id,
info-subvendor_id, info-subdevice_id);
 
-   if (vendorname)
-   xf86ErrorF(%s , vendorname);
-
-   if (chipname)
-   xf86ErrorF(%s , chipname);
-
xf86ErrorF(rev %d, info-revision);
 
for (i = 0; i  6; i++) {
-- 
1.7.1.226.g770c5

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 0/2] startup speed up by removing PCI routines

2010-06-17 Thread Mikhail Gusarov

Twas brillig at 15:22:39 17.06.2010 UTC+03 when tiago.vigna...@nokia.com did 
gyre and gimble:

 TV Tiago Vignatti (2):
 TV   xfree86: pci: remove superfluous vendor and card name logging
 TV   xfree86: configure: remove vendor and card name matching rules

Reviewed-by: Mikhail Gusarov dotted...@dottedmag.net

-- 
  http://fossarchy.blogspot.com/


pgp09ELPAUKQS.pgp
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH evdev 0/3] Preliminary support of multitouch (rev4)

2010-06-17 Thread Henrik Rydberg
Peter Hutterer wrote:
 On Thu, Jun 10, 2010 at 05:47:57PM +0200, Benjamin Tissoires wrote:
 Even if there is an interesting thread concerning the use of multitouch on 
 xorg-devel,
 I still send the up-to-date patches to enable multitouch as valuators.

 Changes since last time:

 * Remove the detection of the maximum number of touches based on the 
 tracking ID
 * changes in comments
 
 Henrik, Rafi, others - any further comments on this? Patches look good to
 me, with a minor issue (see below) that can be fixed in a follow-up patch.
 
 Benjamin - I'm not sure exposing the tracking ID in a valuator is a good
 long-term solution. Does it provide any info that we do not already have by
 splitting the touchpoints into different valuators?
 
 Cheers,
   Peter

Hi Peter, Benjamin, Carlos,

I have a proposition to make, which might affect the Xevdev patchwork somewhat.
Referencing our discussion in March, one major issue was how to resolve the
kernel events into tracked contacts, before putting them onto the valuators. I
think there is now a solution for it, which can be summarized as:

1. Extract the kernel events
2. Run them through the mtdev converter
3. Extract them as slotted type B events
4. Use the Valuators as slots

Point 1 is all done, no problems there.

The bulk of point 2 is also done, which may come as a surprise. Within a couple
of days, there will be a git tree with a project called mtdev, which is a
standalone converter module, under a free license (MIT/BSD/LGPL), which
transforms all variants of kernel MT events to the slotted type B protocol. This
means that for a device without finger tracking, the tracking is done in
software. For devices with finger tracking, the data is simply transformed. For
devices utilizing the new MT slots, the data goes straight through. Point is, by
sending the events through mtdev, we gain a uniform source of MT events, which
is compatible with the Valuator approach.

This obviously affects the Xevdev code, point 3. However, the effect should be
that the parsing code is simplified, since handling the MT slots is inherently
easier than handling the type A protocol.

Point 4 may or may not be different from what you all had in mind already. By
using the valuators as regular MT slots, much of the ground work is already
done. The protocol is documented, the process is simple, and there is a
mechanism for dealing with adding/modifying/removing contacts.

Comments are very much welcome.

Cheers,
Henrik
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 0/2] startup speed up by removing PCI routines

2010-06-17 Thread Alex Deucher
On Thu, Jun 17, 2010 at 8:55 AM, Mikhail Gusarov
dotted...@dottedmag.net wrote:

 Twas brillig at 15:22:39 17.06.2010 UTC+03 when tiago.vigna...@nokia.com did 
 gyre and gimble:

  TV Tiago Vignatti (2):
  TV   xfree86: pci: remove superfluous vendor and card name logging
  TV   xfree86: configure: remove vendor and card name matching rules

 Reviewed-by: Mikhail Gusarov dotted...@dottedmag.net

Reviewed-by: Alex Deucher alexdeuc...@gmail.com


 --
  http://fossarchy.blogspot.com/

 ___
 xorg-devel@lists.x.org: X.Org development
 Archives: http://lists.x.org/archives/xorg-devel
 Info: http://lists.x.org/mailman/listinfo/xorg-devel

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 1/5] libXi: Fix usage of uninitialized value

2010-06-17 Thread Julien Cristau
On Mon, Jun 14, 2010 at 11:47:31 +0300, Pauli Nieminen wrote:

 In error case length of extra data could be uninitialized. This would
 result randomly sized request later in function.
 
 Signed-off-by: Pauli Nieminen ext-pauli.niemi...@nokia.com
 ---
  src/XIProperties.c |1 +
  1 files changed, 1 insertions(+), 0 deletions(-)
 
 diff --git a/src/XIProperties.c b/src/XIProperties.c
 index 045cc71..0f77e58 100644
 --- a/src/XIProperties.c
 +++ b/src/XIProperties.c
 @@ -150,6 +150,7 @@ XIChangeProperty(Display* dpy, int deviceid, Atom 
 property, Atom type,
  
  default:
   /* BadValue will be generated */ ;
 +len = 0;
  }
  
  /* we use data instead of Data32 and friends to avoid Xlib's braindead

Reviewed-by: Julien Cristau jcris...@debian.org

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 2/5] libXi: Fix memory leak in XIGetSelectedEvents

2010-06-17 Thread Julien Cristau
On Mon, Jun 14, 2010 at 11:47:32 +0300, Pauli Nieminen wrote:

 mask_in was leaking for every successfull XIGetSelectedEvents.
 
 Signed-off-by: Pauli Nieminen ext-pauli.niemi...@nokia.com
 ---
  src/XISelEv.c |2 ++
  1 files changed, 2 insertions(+), 0 deletions(-)
 
 diff --git a/src/XISelEv.c b/src/XISelEv.c
 index bdc4fd1..3c1f018 100644
 --- a/src/XISelEv.c
 +++ b/src/XISelEv.c
 @@ -161,6 +161,8 @@ XIGetSelectedEvents(Display* dpy, Window win, int 
 *num_masks_return)
  
  *num_masks_return = reply.num_masks;
  
 +Xfree(mask_in);
 +
  return mask_out;
  
  error:

Reviewed-by: Julien Cristau jcris...@debian.org

Looks like this function also doesn't UnlockDisplay() on various paths?

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 3/5] libXi: Use single error path in XQueryDeviceState

2010-06-17 Thread Julien Cristau
On Mon, Jun 14, 2010 at 11:47:33 +0300, Pauli Nieminen wrote:

 This reduces code duplication and fixes possible leak of data. data would
 leak if allocation of state fails.
 
 Signed-off-by: Pauli Nieminen ext-pauli.niemi...@nokia.com
 ---
  src/XQueryDv.c |   24 +---
  1 files changed, 9 insertions(+), 15 deletions(-)
 
Reviewed-by: Julien Cristau jcris...@debian.org

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH 5/5] libXi: Use single error path in XGetDeviceControl

2010-06-17 Thread Julien Cristau
On Mon, Jun 14, 2010 at 11:47:35 +0300, Pauli Nieminen wrote:

 This reduces code duplication and fixes possible leak of d. d would leak if
 allocation of Device fails.
 
 Signed-off-by: Pauli Nieminen ext-pauli.niemi...@nokia.com
 ---
  src/XGetDCtl.c |   23 +--
  1 files changed, 9 insertions(+), 14 deletions(-)
 
 diff --git a/src/XGetDCtl.c b/src/XGetDCtl.c
 index 8f76a51..729b0a0 100644
 --- a/src/XGetDCtl.c
 +++ b/src/XGetDCtl.c
 @@ -84,19 +84,15 @@ XGetDeviceControl(
  req-deviceid = dev-device_id;
  req-control = control;
  
 -if (!_XReply(dpy, (xReply *)  rep, 0, xFalse)) {
 - UnlockDisplay(dpy);
 - SyncHandle();
 - return (XDeviceControl *) NULL;
 -}
 +if (!_XReply(dpy, (xReply *)  rep, 0, xFalse))
 + goto out;
 +
  if (rep.length  0) {
   nbytes = (long)rep.length  2;
   d = (xDeviceState *) Xmalloc((unsigned)nbytes);
   if (!d) {
   _XEatData(dpy, (unsigned long)nbytes);
 - UnlockDisplay(dpy);
 - SyncHandle();
 - return (XDeviceControl *) NULL;
 + goto out;
   }
   sav = d;
   _XRead(dpy, (char *)d, nbytes);
 @@ -138,11 +134,9 @@ XGetDeviceControl(
   }
  
   Device = (XDeviceControl *) Xmalloc((unsigned)size);
 - if (!Device) {
 - UnlockDisplay(dpy);
 - SyncHandle();
 - return (XDeviceControl *) NULL;
 - }
 + if (!Device)
 + goto out;
 +
   Sav = Device;
  
   d = sav;
 @@ -228,8 +222,9 @@ XGetDeviceControl(
   default:
   break;
   }
 - XFree(sav);
  }
 +out:
 +XFree(sav);
  
  UnlockDisplay(dpy);
  SyncHandle();

Reviewed-by: Julien Cristau jcris...@debian.org

Cheers,
Julien
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: groff results in empty pngs (pnm* tools not on system)

2010-06-17 Thread Gaetan Nadon
On Wed, 2010-06-16 at 15:41 -0700, Dan Nicholson wrote:

 On Wed, Jun 16, 2010 at 3:24 PM, Julien Cristau jcris...@debian.org wrote:
  On Wed, Jun 16, 2010 at 15:00:10 -0700, Jeremy Huddleston wrote:
 
  The stderr from the above command shows a bunch of lines like:
  Calling `pnmcut 165 158 583 397  /var/folders/82/3fx+36+h6bh12wg5m
  +xpm4ymfn/T/groff-page-KcEGLl | pnmcrop -quiet | pnmtopng -
  background rgb:f/f/f -transparent rgb
  :f/f/f  images/xim-image1.png
  ' returned status 32512
 
  There is no pnmcut available on the system.  Why are pnm* getting
  run by groff?  Is that something that we (X11) have setup (and
  should therefore be checking in util-macros), or is that a
  dependency of groff which Mac OSX is not shipping (and I should
  therefore bug someone else).
 
  It looks like these utilities are needed by grohtml:
 
  DEPENDENCIES
grohtml is dependent upon the png utilities (pnmcut, pnmcrop, 
  pnmtopng)
and  GhostScript (gs).  pnmtopng (version 2.37.6 or greater) and 
  pnmcut
from the netpbm package (version 9.16 or greater) will work  also.   
  It
is  also  dependent upon psselect from the PSUtils package.  Images 
  are
generated whenever a table, picture, equation or line is encountered.
 
 Yeah, I'm pretty sure this is all just fallout from -Thtml. Maybe we
 need to expand the XORG_WITH_GROFF macro to test that -Thtml works and
 export a HAVE_GROFF_HTML conditional. Then you could make the html
 targets in libX11/specs/troffrules.in conditional on that.
 
 Gaetan, you have any thoughts on groff html?
 

I have noticed this issue when I reviewed the makefiles. Plus many other
issues. And I got different results depending on the version of the
tools. I personally have no experience with any of the doc tools. The
only thing I did was to add the option to generate the images in the
images directory and give them a name (-P-Dimages -P-Ixim-image) .
Before, these images were given a name based on the process number and
were accumulated for each run and never cleaned-up. 

I can update the macro to check for the presence of these commands, but
probably not the version. That can't hurt. On my computer, they are all
present. About one out of 5 images gets generated but they all look
wrong. See attachment.




 --
 Dan
attachment: xim-image55.png

signature.asc
Description: This is a digitally signed message part
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

[PATCH libXtst] specs: translate, format, process, install and distribute.

2010-06-17 Thread Gaetan Nadon
Makefile copied from libSM.

Signed-off-by: Gaetan Nadon mems...@videotron.ca
---
 configure.ac  |2 +
 specs/.gitignore  |8 ++
 specs/Makefile.am |   80 +++-
 specs/macros.t|  226 +
 4 files changed, 315 insertions(+), 1 deletions(-)
 create mode 100644 specs/.gitignore
 create mode 100644 specs/macros.t

diff --git a/configure.ac b/configure.ac
index ded41dd..08ec061 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,7 +32,9 @@ m4_ifndef([XORG_MACROS_VERSION],
   [m4_fatal([must install xorg-macros 1.6 or later before running 
autoconf/autogen])])
 XORG_MACROS_VERSION(1.6)
 XORG_DEFAULT_OPTIONS
+XORG_ENABLE_SPECS
 XORG_WITH_XMLTO(0.0.20)
+XORG_WITH_GROFF
 AM_CONFIG_HEADER(config.h)
 
 # Check for progs
diff --git a/specs/.gitignore b/specs/.gitignore
new file mode 100644
index 000..84d7456
--- /dev/null
+++ b/specs/.gitignore
@@ -0,0 +1,8 @@
+#  Add  Override for this directory and it's subdirectories
+*.html
+*.ps
+*.txt
+*.html.raw
+*.ps.raw
+*.txt.raw
+/images
diff --git a/specs/Makefile.am b/specs/Makefile.am
index a7e4709..74669fd 100644
--- a/specs/Makefile.am
+++ b/specs/Makefile.am
@@ -1 +1,79 @@
-EXTRA_DIST = recordlib.ms xtestlib.ms
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the Software),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+
+EXTRA_DIST = macros.t recordlib.ms xtestlib.ms
+
+if ENABLE_SPECS
+if HAVE_GROFF_MS
+doc_DATA = recordlib.txt recordlib.ps recordlib.html xtestlib.txt xtestlib.ps 
xtestlib.html
+imagesdir = $(docdir)/images
+
+CLEANFILES = $(doc_DATA)
+MOSTLYCLEANFILES = index.*
+
+install-data-local:
+   test -z $(imagesdir) || $(mkdir_p) $(DESTDIR)$(imagesdir)
+   @d=$(srcdir)/images/; \
+   list=`ls $$d`; \
+   for p in $$list; do \
+ echo  $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(imagesdir)/$$p'; \
+ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(imagesdir)/$$p; \
+   done;
+
+uninstall-local:
+   @if test -n $(DESTDIR)$(imagesdir); then \
+ if test -d $(DESTDIR)$(imagesdir); then \
+   list=`ls $(DESTDIR)$(imagesdir)`; \
+   for p in $$list; do \
+ echo  rm -f '$(DESTDIR)$(imagesdir)/$$p'; \
+ rm -f $(DESTDIR)$(imagesdir)/$$p; \
+   done \
+ fi; \
+   fi;
+
+mostlyclean-local:
+   @rm -fr images
+
+# Pass version string as a troff string for substitution
+GROFF_DEFS = -dxV=$(PACKAGE_STRING)
+
+# -t to run through tbl
+GROFF_FLAGS = -t -ms $(GROFF_DEFS) $(srcdir)/macros.t
+
+SUFFIXES = .ms .ps .txt .html
+
+.ms.ps:
+   -$(AM_V_GEN) $(GROFF) -Tps $(GROFF_FLAGS) $ 2 inde...@.raw  $@
+   @if grep '^[^1-9.]' inde...@.raw | grep -v warning; then exit 1; \
+else test $$? -le 1; fi
+
+.ms.txt:
+   $(AM_V_GEN) env GROFF_NO_SGR=TRUE $(GROFF) -Tutf8 $(GROFF_FLAGS) \
+$ 2 inde...@.raw  $@
+
+.ms.html:
+   $(AM_V_GEN) $(GROFF) -Thtml -P-Dimages -P-I$*-image $(GROFF_FLAGS) $ 
2 inde...@.raw  $@
+
+endif HAVE_GROFF_MS
+endif ENABLE_SPECS
+
diff --git a/specs/macros.t b/specs/macros.t
new file mode 100644
index 000..cbc599b
--- /dev/null
+++ b/specs/macros.t
@@ -0,0 +1,226 @@
+.\ $Xorg: macros.t,v 1.3 2000/08/17 19:42:51 cpqbld Exp $
+.\ macros.t -- macros for X Consortium documents
+.\ Revised and commented by smarks 93.12.20.
+.\
+.\ global setup: set ragged right, assign string variables
+.\
+.na
+.ie n \{\
+.ds Q \
+.ds U \
+.ds - \%--
+.\}
+.el \{\
+.ds Q `\h'-\w'\^'u'`
+.ds U '\h'-\w'\^'u''
+.ds - \(em
+.\}
+.\
+.\ --- Ds --- displayed text (like .DS) with no keep
+.\ .Ds is obsolete.  Change to something from this table:
+.\ for this   use instead
+.\ .Ds.ID
+.\ .Ds n  .LD (where n is a number)
+.\ (Numbers don't work in these macros, so .Ds 5
+.\ comes out the same as .Ds 0.)
+.\
+.de Ds
+.nf
+.\\$1D \\$2 \\$1
+.ft 1
+.ps \\n(PS
+.if \\n(VS=40 .vs 

[PATCH libXext] specs: translate, format, process, install and distribute.

2010-06-17 Thread Gaetan Nadon
Makefile copied from libXtst
Remains to do are the Tex files.

Signed-off-by: Gaetan Nadon mems...@videotron.ca
---
 configure.ac  |2 +
 specs/.gitignore  |8 ++
 specs/Makefile.am |   79 +++
 specs/macros.t|  226 +
 4 files changed, 315 insertions(+), 0 deletions(-)
 create mode 100644 specs/.gitignore
 create mode 100644 specs/macros.t

diff --git a/configure.ac b/configure.ac
index e132e0a..7847a71 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,6 +17,8 @@ m4_ifndef([XORG_MACROS_VERSION],
   [m4_fatal([must install xorg-macros 1.3 or later before running 
autoconf/autogen])])
 XORG_MACROS_VERSION(1.3)
 XORG_DEFAULT_OPTIONS
+XORG_ENABLE_SPECS
+XORG_WITH_GROFF
 AM_CONFIG_HEADER([config.h])
 
 # Determine .so library version per platform 
diff --git a/specs/.gitignore b/specs/.gitignore
new file mode 100644
index 000..84d7456
--- /dev/null
+++ b/specs/.gitignore
@@ -0,0 +1,8 @@
+#  Add  Override for this directory and it's subdirectories
+*.html
+*.ps
+*.txt
+*.html.raw
+*.ps.raw
+*.txt.raw
+/images
diff --git a/specs/Makefile.am b/specs/Makefile.am
index a82d5a2..7d39c2a 100644
--- a/specs/Makefile.am
+++ b/specs/Makefile.am
@@ -1,5 +1,84 @@
+#
+# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the Software),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+
 EXTRA_DIST = \
+   macros.t\
dbelib.tex  \
DPMSLib.ms  \
shapelib.ms \
synclib.tex
+
+if ENABLE_SPECS
+if HAVE_GROFF_MS
+doc_DATA = DPMSLib.txt DPMSLib.ps DPMSLib.html shapelib.txt shapelib.ps 
shapelib.html
+imagesdir = $(docdir)/images
+
+CLEANFILES = $(doc_DATA)
+MOSTLYCLEANFILES = index.*
+
+install-data-local:
+   test -z $(imagesdir) || $(mkdir_p) $(DESTDIR)$(imagesdir)
+   @d=$(srcdir)/images/; \
+   list=`ls $$d`; \
+   for p in $$list; do \
+ echo  $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(imagesdir)/$$p'; \
+ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(imagesdir)/$$p; \
+   done;
+
+uninstall-local:
+   @if test -n $(DESTDIR)$(imagesdir); then \
+ if test -d $(DESTDIR)$(imagesdir); then \
+   list=`ls $(DESTDIR)$(imagesdir)`; \
+   for p in $$list; do \
+ echo  rm -f '$(DESTDIR)$(imagesdir)/$$p'; \
+ rm -f $(DESTDIR)$(imagesdir)/$$p; \
+   done \
+ fi; \
+   fi;
+
+mostlyclean-local:
+   @rm -fr images
+
+# Pass version string as a troff string for substitution
+GROFF_DEFS = -dxV=$(PACKAGE_STRING)
+
+# -t to run through tbl
+GROFF_FLAGS = -t -ms $(GROFF_DEFS) $(srcdir)/macros.t
+
+SUFFIXES = .ms .ps .txt .html
+
+.ms.ps:
+   -$(AM_V_GEN) $(GROFF) -Tps $(GROFF_FLAGS) $ 2 inde...@.raw  $@
+   @if grep '^[^1-9.]' inde...@.raw | grep -v warning; then exit 1; \
+else test $$? -le 1; fi
+
+.ms.txt:
+   $(AM_V_GEN) env GROFF_NO_SGR=TRUE $(GROFF) -Tutf8 $(GROFF_FLAGS) \
+$ 2 inde...@.raw  $@
+
+.ms.html:
+   $(AM_V_GEN) $(GROFF) -Thtml -P-Dimages -P-I$*-image $(GROFF_FLAGS) $ 
2 inde...@.raw  $@
+
+endif HAVE_GROFF_MS
+endif ENABLE_SPECS
+
diff --git a/specs/macros.t b/specs/macros.t
new file mode 100644
index 000..cbc599b
--- /dev/null
+++ b/specs/macros.t
@@ -0,0 +1,226 @@
+.\ $Xorg: macros.t,v 1.3 2000/08/17 19:42:51 cpqbld Exp $
+.\ macros.t -- macros for X Consortium documents
+.\ Revised and commented by smarks 93.12.20.
+.\
+.\ global setup: set ragged right, assign string variables
+.\
+.na
+.ie n \{\
+.ds Q \
+.ds U \
+.ds - \%--
+.\}
+.el \{\
+.ds Q `\h'-\w'\^'u'`
+.ds U '\h'-\w'\^'u''
+.ds - \(em
+.\}
+.\
+.\ --- Ds --- displayed text (like .DS) with no keep
+.\ .Ds is obsolete.  Change to something from this table:
+.\ for this   use instead
+.\ .Ds.ID
+.\ .Ds n  .LD (where n is a number)
+.\ (Numbers don't work in these macros, so .Ds 5
+.\ comes out the same 

[PATCH] Addition to XFixes for cursor constraint

2010-06-17 Thread James Willcox
Hi,

Attached are some patches which add a method of constraining the cursor to a
given region (or rect, really).  The reason I'd like to have this is to
restrict the cursor to the visible area on an overscanned TV screen, though
I suppose there may be other uses as well.  The patches are against the
version of Xorg in Ubuntu Lucid, but hopefully they'll apply easily to the
current stuff.

Thanks,
James


libxfixes_cursor_region_v1.diff
Description: Binary data


x11proto_fixes_cursor_region_v1.diff
Description: Binary data


xorg_server_xfixes_cursor_region_v1.diff
Description: Binary data
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [xkb] Re: xkeyboard-config 1.9

2010-06-17 Thread Sergey Udaltsov
Thanks, Daniel, it is ok now. I uploaded my files and they are
available at 
http://xorg.freedesktop.org/releases/individual/data/xkeyboard-config/

Sergey

On Thu, Jun 17, 2010 at 12:40 AM, Daniel Stone dan...@fooishbar.org wrote:
 On Wed, Jun 16, 2010 at 11:40:32PM +0100, Sergey Udaltsov wrote:
 First of all, I do not have permission to store anything there:

 $ ls -la /srv/xorg.freedesktop.org/archive/individual/data/xkeyboard-config
 total 16
 drwxrwxr-x+ 2 root root 4096 2010-06-16 06:23 .
 drwxrwxr-x+ 3 kem  xorg 4096 2010-06-16 06:23 ..

 Daniel, could you please check?

 Oops, sorry.  Fixed.

 Cheers,
 Daniel

 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.10 (GNU/Linux)

 iEYEARECAAYFAkwZYPoACgkQUVYB1rKAgJRkdQCfdjBy9eBPq2iQJgvWrK1w60S2
 zwYAn3EC0pauV8tRu814iZMSJnsTU7Xz
 =NyL6
 -END PGP SIGNATURE-


___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [xkb] Re: xkeyboard-config 1.9

2010-06-17 Thread Sergey Udaltsov
Peter,

Thanks for the link. Should I fix the script to incorporate xk-c
(during the next release) or would you prefer to manage it yourself?

Sergey

On Thu, Jun 17, 2010 at 12:34 AM, Peter Hutterer
peter.hutte...@who-t.net wrote:
 On Thu, Jun 17, 2010 at 12:02:17AM +0100, Sergey Udaltsov wrote:
 Agree.
 Is there existing release.sh - or will I create one (and share as
 template)? I know, it is just 2-3 lines... (except for the message
 body)

 http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh
 that's what I meant with my first email, shouldn't be too hard to slot
 xkeyboard-config in there as a separate repo and that way you get to
 benefit from the rest of the bits in there that are already tested.

 Cheers,
  Peter

 On Wed, Jun 16, 2010 at 11:59 PM, Peter Hutterer
 peter.hutte...@who-t.net wrote:
  On Wed, Jun 16, 2010 at 11:40:32PM +0100, Sergey Udaltsov wrote:
  First of all, I do not have permission to store anything there:
 
  $ ls -la 
  /srv/xorg.freedesktop.org/archive/individual/data/xkeyboard-config
  total 16
  drwxrwxr-x+ 2 root root 4096 2010-06-16 06:23 .
  drwxrwxr-x+ 3 kem  xorg 4096 2010-06-16 06:23 ..
 
  Daniel, could you please check?
 
  I do not like the idea of announce emails to be autogenerated. Yes,
  scp/git tagging could(should) be automated.
 
  fwiw, the email is only autogenerated, not automatically sent. once you run
  the release script, it drops a tagname.announce file in the current
  directory and you can then use this as your announce email.
 
  Cheers,
   Peter
 
  On Wed, Jun 16, 2010 at 11:33 PM, Peter Hutterer
  peter.hutte...@who-t.net wrote:
   On Wed, Jun 16, 2010 at 03:24:19PM +0100, Sergey Udaltsov wrote:
   Thanks, I will use that space
  
   Sergey
  
   On 16 Jun 2010 14:33, Daniel Stone dan...@fooishbar.org wrote:
  
   On Wed, Jun 16, 2010 at 02:03:57PM +0100, Sergey Udaltsov wrote:
  
I think that would be handy, thanks.
  
   Cool.
  
   annarchy.freedesktop.org:/srv/
   xorg.freedesktop.org/archive/individual/data/xkeyboard-config/
   ...
  
   might be worth putting the required bits into release.sh as well. 
   Running a
   shell script that does everything for you is probably easier than 
   generating
   everything by hand.
  
   end result for you would be you'd just run
      $ release.sh xkeyboard-config v1_9 v1_10
   and the announce email, tag pushing, tarballs copying, etc. is all done 
   for
   you.
  
   Cheers,
    Peter
  
 
 


___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: groff results in empty pngs (pnm* tools not on system)

2010-06-17 Thread Gaetan Nadon
On Wed, 2010-06-16 at 15:00 -0700, Jeremy Huddleston wrote:

 In the process of building libX11, I noticed that a ton of empty  
 images are being created.
 
 The command that results in the empty images is:
 ~/src/freedesktop/src/libX11/specs/XIM (master) $ /usr/bin/groff -e -t  
 -ms -dxV=libX11 1.3.4 -I. ../../specs/macros.t -Thtml -P-Dimages -P- 
 Ixim-image xim.ms 2 index.xim.html.raw  xim.html
 
 ~  $ ls -al /usr/X11/share/doc/libX11/specs/XIM/images/
 total 0
 drwxr-xr-x 61 root wheel 2074 Jun 16 12:15 .
 drwxr-xr-x  6 root wheel  204 Jun 16 12:15 ..
 -rw-r--r--  1 root wheel0 Jun 16 11:48 xim-image1.png
 -rw-r--r--  1 root wheel0 Jun 16 11:48 xim-image10.png
 ...
 
 
 The stderr from the above command shows a bunch of lines like:
 Calling `pnmcut 165 158 583 397  /var/folders/82/3fx+36+h6bh12wg5m 
 +xpm4ymfn/T/groff-page-KcEGLl | pnmcrop -quiet | pnmtopng - 
 background rgb:f/f/f -transparent rgb
 :f/f/f  images/xim-image1.png
 ' returned status 32512
 
 There is no pnmcut available on the system.  Why are pnm* getting run  
 by groff?  Is that something that we (X11) have setup (and should  
 therefore be checking in util-macros), or is that a dependency of  
 groff which Mac OSX is not shipping (and I should therefore bug  
 someone else).
 

I'd like to know if the images get generated correctly.
http://netpbm.darwinports.com/

 


signature.asc
Description: This is a digitally signed message part
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

server-side xcb

2010-06-17 Thread Tomas Carnecky
I started looking into how to generate everything that has to do with 
the wire protocol using xcb. I'm starting small, with the easier 
extensions first (dpms), and I'll be gradually adding support for the 
more complicated extensions as the time goes.


This mail serves as an overview of what I've been playing with in the 
past few days. The code is nowhere near functional, but should give you 
an idea into which direction I'm heading. Comments are very much 
appreciated.


I took c_client.py as an inspiration how to generate the C source files. 
However, instead of doing that straight from python, I've chosen to use 
a templating engine. I couldn't find any for python that would be 
suitable to generate C, all engines focus mostly on html. So the 
template itself looks strange and emacs has troubles using the right 
syntax highlighting because it can't decide whether it's C, python or 
html. But overall I think a template is better than plain python.


The code generates request/reply structures, corresponding swap 
functions and a function prefixed with wire_. That function is what's 
called by the dispatch code. The function validates the request size, 
swaps the request if necessary and then calls the function prefixed with 
impl_, that's where the actual implementation would be. If the request 
requires a reply, the impl_ function also fills the reply structure. The 
reply is optionally swapped and then sent to the client. So there is 
only one set of protocol handlers because they handle both swapped and 
non-swapped clients.


You can look at the code for DPMS QueryVersion here:
http://github.com/wereHamster/xorg-server/blob/server-side-xcb/proto/dpms.c#L9

The current code only works with requests/replies which use simple 
fields. Lists etc are not supported yet. One issue is how to represent 
(and swap) dynamically sized fields in the request/reply structures, 
another is how to give the client the ability to write additional data 
after the reply (as in GetImage for example). I'll take a look at how 
xcb solved these problems.


tom


___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH] DRI2/xserver: Don't hang in glXSwapBuffers if drawable moves between crtc's

2010-06-17 Thread Mario Kleiner

Hi Keith and Peter,

this patch has been reviewed by Jesse Barnes and now successfully  
tested by the guy who submitted the bug report and by me. Fixes  
Bugzilla bug #28383, a quite ugly hang of application windows  
bufferswapping, including crashes when moving them between different  
crtc's of different refresh rate.


It would be good to apply it to 1.9 and 1.8.2 if possible, for a more  
enjoyable multi-display OpenGL experience.


thanks,
-mario

On Jun 14, 2010, at 6:13 PM, Jesse Barnes wrote:


On Sun, 13 Jun 2010 18:05:26 +0200
Mario Kleiner mario.klei...@tuebingen.mpg.de wrote:

Detect if a drawable has been moved from an original crtc to a new  
crtc

with a lower current vblank count than the original crtc inbetween
glXSwapBuffers() calls. Reinitialize drawable's last_swap_target
before scheduling next swap if such a move has taken place.

last_swap_target defines the baseline for scheduling the next swap.
If a movement between crtc's is not taken into account, the swap may
schedule for a vblank count on the new crtc far in the future,  
resulting

in a apparent hang of the drawable for a long time.

Fixes Bugzilla bug #28383.

Signed-off-by: Mario Kleiner mario.klei...@tuebingen.mpg.de
---
 hw/xfree86/dri2/dri2.c |   15 +++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index d33b0d1..1f80022 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -756,6 +756,7 @@ DRI2SwapBuffers(ClientPtr client, DrawablePtr  
pDraw, CARD64 target_msc,

 DRI2DrawablePtr pPriv;
 DRI2BufferPtr   pDestBuffer = NULL, pSrcBuffer = NULL;
 int ret, i;
+CARD64  ust, current_msc;

 pPriv = DRI2GetDrawable(pDraw);
 if (pPriv == NULL) {
@@ -800,12 +801,26 @@ DRI2SwapBuffers(ClientPtr client,  
DrawablePtr pDraw, CARD64 target_msc,
  * need to schedule a swap for the last swap target + the  
swap interval.

  */
 if (target_msc == 0  divisor == 0  remainder == 0) {
+   /* If the current vblank count of the drawable's crtc is lower
+* than the count stored in last_swap_target from a previous swap
+* then reinitialize last_swap_target to the current crtc's msc,
+* otherwise the swap will hang. This will happen if the drawable
+	 * is moved to a crtc with a lower refresh rate, or a crtc that  
just

+* got enabled.
+*/
+   if (!(*ds-GetMSC)(pDraw, ust, current_msc))
+   pPriv-last_swap_target = 0;
+
+   if (current_msc  pPriv-last_swap_target)
+   pPriv-last_swap_target = current_msc;
+
/*
 	 * Swap target for this swap is last swap target + swap interval  
since

 * we have to account for the current swap count, interval, and the
 * number of pending swaps.
 */
*swap_target = pPriv-last_swap_target + pPriv-swap_interval;
+
 } else {
/* glXSwapBuffersMscOML could have a 0 target_msc, honor it */
*swap_target = target_msc;


Yeah, this looks ok.  Really we should write up GLX extension that
clarifies behavior in multi-head and display on/off situations  
too.  Is

that something you could do?

Reviewed-by: Jesse Barnes jbar...@virtuousgeek.org

--
Jesse Barnes, Intel Open Source Technology Center



___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


[PATCH] Addition to XFixes for cursor constraint

2010-06-17 Thread James Willcox
Hi,

Attached are some patches which add a method of constraining the cursor to a
given region (or rect, really).  The reason I'd like to have this is to
restrict the cursor to the visible area on an overscanned TV screen, though
I suppose there may be other uses as well.  The patches are against the
version of Xorg in Ubuntu Lucid, but hopefully they'll apply easily to the
current stuff.

Thanks,
James


libxfixes_cursor_region_v1.diff
Description: Binary data


x11proto_fixes_cursor_region_v1.diff
Description: Binary data


xorg_server_xfixes_cursor_region_v1.diff
Description: Binary data
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH] Addition to XFixes for cursor constraint

2010-06-17 Thread Adam Goode
On 06/17/2010 09:46 PM, James Willcox wrote:
 Hi,
 
 Attached are some patches which add a method of constraining the cursor
 to a given region (or rect, really).  The reason I'd like to have this
 is to restrict the cursor to the visible area on an overscanned TV
 screen, though I suppose there may be other uses as well.  The patches
 are against the version of Xorg in Ubuntu Lucid, but hopefully they'll
 apply easily to the current stuff.
 

Might it be the right way to finally solve this bug?

https://bugs.freedesktop.org/show_bug.cgi?id=20334



Adam



signature.asc
Description: OpenPGP digital signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH] DRI2/xserver: Don't hang in glXSwapBuffers if drawable moves between crtc's

2010-06-17 Thread Peter Hutterer
On Fri, Jun 18, 2010 at 03:22:53AM +0200, Mario Kleiner wrote:
 Hi Keith and Peter,
 
 this patch has been reviewed by Jesse Barnes and now successfully  
 tested by the guy who submitted the bug report and by me. Fixes  
 Bugzilla bug #28383, a quite ugly hang of application windows  
 bufferswapping, including crashes when moving them between different  
 crtc's of different refresh rate.
 
 It would be good to apply it to 1.9 and 1.8.2 if possible, for a more  
 enjoyable multi-display OpenGL experience.

It's on my list, I'm just waiting for it to land on master.

Cheers,
  Peter
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: Attach touch screen to a single display

2010-06-17 Thread Julian Ortiz
There is no problem about having a single large desktop... but I need to use
nvidia driver and as far as I understand it does not support Rand1.2.

The race condition is caused because xf86InputSetScreen is not thread safe?

About Peter Korsgaard matrix... where can I found it to take a look?

Thanks.

On Wed, Jun 16, 2010 at 3:21 AM, Peter Hutterer peter.hutte...@who-t.netwrote:

 On Mon, Jun 14, 2010 at 05:10:40PM +0200, Julian Ortiz wrote:
  Hello,
  After looking for a way to make a touch screen works only in its display
  (with nvidia configured as different XScreens) with no luck at all, I
  started to look at the input modules source. I realizes that
  the proprietary elo module calls to xf86XInputSetScreen, the function
 name
  seems promising, so I just patch the evdev module to support several
 screens
  by configuration and to call xf86InputSetScreen in the EvdevReadInput
 just
  before the EvdevProcessEvent.
 
  The result seems to work but the behavior is very erratic and sometimes
 the
  mouse/touch/keyboard get freezes and I need to restart X. And more
 strange,
  after launch several OpenGL application the performance drops so, so much
  (obviously without the patch it doesn't happen)
 
  Is xf86InputSetScreen the best approach to handle this?

 There's a race condition that can be triggered by xf86InputSetScreen() that
 ends up with a cursor jumping indefinitely between the two screens. This is
 likely the freeze you're seeing.

 There's unfortunately no good way to bind the device to a single screen
 right now. Peter Korsgaard input transformation matrix allows it for a
 RandR 1.2 setup but not for multiple protocol screens.

 Cheers,
   Peter

  Trying to find the module responsible for the mouse switch between
 different
  display I saw references to something called SilkenMouse, but I can't
 find
  any documentation about what is this. Any idea?

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH evdev 0/3] Preliminary support of multitouch (rev4)

2010-06-17 Thread Rafi Rubin
On Thu, Jun 17, 2010 at 11:51:34AM -0400, Chase Douglas wrote:
 On Thu, 2010-06-17 at 12:16 +1000, Peter Hutterer wrote:
  On Thu, Jun 10, 2010 at 05:47:57PM +0200, Benjamin Tissoires wrote:
   Even if there is an interesting thread concerning the use of multitouch 
   on xorg-devel,
   I still send the up-to-date patches to enable multitouch as valuators.
   
   Changes since last time:
   
   * Remove the detection of the maximum number of touches based on the 
   tracking ID
   * changes in comments
  
  Henrik, Rafi, others - any further comments on this? Patches look good to
  me, with a minor issue (see below) that can be fixed in a follow-up patch.
 
 From patch 2/3:
 +#define ABS_MT_X_VALUE   0x8
 +#define ABS_MT_Y_VALUE   0x16
 It looks like ABS_MT_Y_VALUE should be 0x10.

:)

 Overall this makes sense to me for devices where the MT data should be
 attached to the cursor (i.e. like a magicmouse). How will this mesh with
 direct input devices (or whatever mechanism is developed for multitouch
 touchscreens)? It seems to me we will need to somehow tell the module
 whether to pass the data as valuators or as DIDs, but not both. However,
 that's an implementation detail that can be worked out later when we get
 to it.
 
  Benjamin - I'm not sure exposing the tracking ID in a valuator is a good
  long-term solution. Does it provide any info that we do not already have by
  splitting the touchpoints into different valuators?
 
 Why not expose the tracking ID? It's one less thing for the client to
 worry about if it needs to track touches. Without the ID, clients would
 have to implement their own tracking algorithms because they would just
 get an array of touches. The same finger will be sent in a different
 slot of the array on subsequent events, such as when a previous finger
 is removed.
 
 -- Chase

I believe the argument against is that the valuators already carry that 
information implicitly (eg axis 12 would be Y of the third contact and would 
continue in that role even if there are no 
active contacts 1 and 2).  As such having another valuator would be wasteful.

On the other hand, some devices carry a tiny be of extra information through 
the specific contact id's, and they are not strictly the lowest set of numbers 
needed to express the contacts that 
are active or have been activated since the last period of inactivity.  From 
what I've heard the magic mouse (again) is one such example.  I haven't 
actually poked around enough to see it.

Personally I haven't yet come up with or heard an argument for caring about the 
real tracking id values and every usage case I've come up with, it would seem 
just as easily served computing it 
from in the client.  However, I also know that I'm insufficiently creative to 
eliminate the possibility that someone else would have a good reason down the 
line.  Would it make sense to leave 
it as an option?


I'd like to see these patches accepted.  Like Chase, I'm concerned how this 
will interact with the DID discussion.  Would it make sense to apply it in a 
branch at very least so Ben doesn't have 
to continualy maintain the changes while the discussion rolls on.

rafi
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel


Re: [PATCH evdev 0/3] Preliminary support of multitouch (rev4)

2010-06-17 Thread Peter Hutterer
On Fri, Jun 18, 2010 at 12:18:00AM -0400, Rafi Rubin wrote:
 On Thu, Jun 17, 2010 at 11:51:34AM -0400, Chase Douglas wrote:
  On Thu, 2010-06-17 at 12:16 +1000, Peter Hutterer wrote:
   On Thu, Jun 10, 2010 at 05:47:57PM +0200, Benjamin Tissoires wrote:
Even if there is an interesting thread concerning the use of multitouch 
on xorg-devel,
I still send the up-to-date patches to enable multitouch as valuators.

Changes since last time:

* Remove the detection of the maximum number of touches based on the 
tracking ID
* changes in comments
   
   Henrik, Rafi, others - any further comments on this? Patches look good to
   me, with a minor issue (see below) that can be fixed in a follow-up patch.
  
  From patch 2/3:
  +#define ABS_MT_X_VALUE   0x8
  +#define ABS_MT_Y_VALUE   0x16
  It looks like ABS_MT_Y_VALUE should be 0x10.
 
 :)
 
  Overall this makes sense to me for devices where the MT data should be
  attached to the cursor (i.e. like a magicmouse). How will this mesh with
  direct input devices (or whatever mechanism is developed for multitouch
  touchscreens)? It seems to me we will need to somehow tell the module
  whether to pass the data as valuators or as DIDs, but not both. However,
  that's an implementation detail that can be worked out later when we get
  to it.
  
   Benjamin - I'm not sure exposing the tracking ID in a valuator is a good
   long-term solution. Does it provide any info that we do not already have 
   by
   splitting the touchpoints into different valuators?
  
  Why not expose the tracking ID? It's one less thing for the client to
  worry about if it needs to track touches. Without the ID, clients would
  have to implement their own tracking algorithms because they would just
  get an array of touches. The same finger will be sent in a different
  slot of the array on subsequent events, such as when a previous finger
  is removed.
  
  -- Chase
 
 I believe the argument against is that the valuators already carry that 
 information implicitly (eg axis 12 would be Y of the third contact and would 
 continue in that role even if there are no 
 active contacts 1 and 2).  As such having another valuator would be wasteful.


yeah, it's superfluous and imo sending what is essentially an ID down an axis
seems a bit odd at best. It's akin to sending a button number down as an axis.


 On the other hand, some devices carry a tiny be of extra information through 
 the specific contact id's, and they are not strictly the lowest set of 
 numbers needed to express the contacts that 
 are active or have been activated since the last period of inactivity.  From 
 what I've heard the magic mouse (again) is one such example.  I haven't 
 actually poked around enough to see it.

do you have any info on what this extra information could be?

 
 Personally I haven't yet come up with or heard an argument for caring about 
 the real tracking id values and every usage case I've come up with, it would 
 seem just as easily served computing it 
 from in the client.  However, I also know that I'm insufficiently creative to 
 eliminate the possibility that someone else would have a good reason down the 
 line.  Would it make sense to leave 
 it as an option?
 
 
 I'd like to see these patches accepted.  Like Chase, I'm concerned how this
will interact with the DID discussion.  Would it make sense to apply it in a
branch at very least so Ben doesn't have 
 to continualy maintain the changes while the discussion rolls on.

I expect it to provide some useful information once people start playing with
it. It may not be the final approach but meanwhile, any info we can get on how
we can handle input better is useful. Besides, the DID implementaion is quite a
bit off, as far as I can tell.

 
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel