Re: xkbmap with combining diacritics

2013-02-21 Thread Joshua Crowgey

On 02/18/2013 12:52 PM, Simos Xenitellis wrote:

On Mon, Feb 18, 2013 at 10:25 PM, Joshua Crowgeyjcrow...@uw.edu  wrote:

Hi xorg,

It was recommended to me in #xorg on irc that I should post this question to
your list.  I hope this is appropriate.

I have been attempting to define a keyboard mapping for typing Lushootseed
(aka, Puget Salish) [iso639-3:lut].  Ideally, I will use the layout that
Dave Sienko at Tulalip has already implemented in Tauvlesoft.

http://www.tulaliplushootseed.com/NWIC-103-2009/Lushootseed%20Font%20%20Keyboard.htm

To do so, I created a lut.symbols file which handles much of the job
(attached).  Here's a snippet:

keyAD01   { [ q,  Q,   U0251, U252 ]  };
keyAD02   { [ w,  W,  U01BF,  U01F7 ] };
keyAD03   { [ schwa,  E,  schwa,  SCHWA]  };
keyAD04   { [ U0161,  R,U0279,   U027E ]  };

However, I was unable to implement the mapping (shown in the link to
tulaliplushootseed.com) completely because the output of many of the upper
case (shifted) keystrokes should be a series of unicode characters rather
than a single one.  That is, I have to use combining diacritics.  However, I
was unable to define a series of characters in this file without generating
an error.  For example, each of the following attempts fail because, from
what I can tell, there's no way to include more than a single unicode
code-point as one of the values in the array.  I haven't discovered any
quoting or grouping mechanism.

---
keyAD01   { [ q,  q̓, U0251, U252 ]  };
---
---
keyAD01   { [ q,  q̓,   U0251, U252 ]  };
---
---
keyAD01   { [ q,  qU0313, U0251, U252 ]  };
---
---
keyAD01   { [ q,  U0071U0313, U0251, U252 ]  };
---
---
keyAD01   { [ q,  U0071+U0313,U0251, U252 ]  };
---

The question is this:  is there a way to define keyboards that implement
characters that include combining diacritics in the output of specific keys?
Where can I find out more about what steps I should undertake to define an
official keyboard for typing Lushootseed on xorg?

Please let me know if this question is more appropriate for another list or
if I should refine the question in some way.



Hello,
For your requirements and the complexity of the keyboard layout, you
may have a better chance to create a keyboard layout for iBus. See
more at http://code.google.com/p/ibus/

It is possible to create a keyboard layout with XKB, however I think
it will be more complicated than necessary.

If you are happy to make something quick and dirty, you can create the
necessary compose sequences and put them in ~/.Xcompose

Simos


Hello Simos,

Thank you for the suggestions.  In fact, I did get something working by 
creating an .XCompose file (should it be .Xcompose with lower c?).  And 
at one point, I even got that working.  I had to set some environment 
variables such as GTK_IM_MODULE=xim and I think I had to run imswitch 
and set it to SCIM?  In any case, I went away for a week and haven't 
gotten that approach working again.  It would be nice if there was a 
setxcompose command that let me dynamically set the xcompose file or 
not.  When typing in English, for example, I don't want the XCompose 
file to be active.  I want it active after switching to Lushootseed.


I also played around with ibus but it seems to be a bit tricky to get 
working on debian testing at the moment.  My package manager is chocking 
on an ibus dependency of im-clutter, which seems to have some sort of 
error as of the last time I tried to install it.


In short, I appreciate the reply and I'll try renaming my ~/.XCompose to 
~/.Xcompose to see if that makes a difference with automatically finding it.


Best regards,
--Joshua

PS: here is my XCompose file as I have authored it:

jcrowgey@citrus:~$ cat ~/.XCompose
Q : q̓
W : w̓
E : q̓ʷ
R : 
T : t̕
Y : y̓
U : 
I : kʷ
O : 
P : p̓
A : qʷ
S : 
D : dᶻ
F : 
G : gʷ
H : 
J : k̓ʷ
K : k̓
L : l̕
colon : ƛ̕
z : x̌
Z : x̌ʷ
X : xʷ
C : c̓
V : č̓
B : 
N : n̓
M : m̓

The one time I got this working, I ran 'setxkbmap lut' to set the keys 
that didn't require combining diacritics.

___
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com

Nominations for X.Org Foundation Board of Directors are OPEN (resend)

2013-02-21 Thread Matt Dew
(I sent this to announce, xorg and xorg-devel lists but forgot the 
members list.  To account for this mistake, the nomination window is 
being extended to March 10.  The email below is the same as previously, 
with the dates adjusted.)


We are seeking nominations for candidates for election to the X.Org
Foundation Board of Directors.  All X.Org Foundation members are
eligible for election to the board.

Nominations for the 2012 election are now open and will remain open
until 23.59 GMT on 10 March 2013.

The Board consists of directors elected from the membership.  Each
year, an election is held to bring the total number of directors to
eight.  The four members receiving the highest vote totals will serve
as directors for two year terms.

The directors who received two year terms starting in 2011 were
Matthias Hopf, Keith Packard, Matt Dew, and Alex Deucher.  They
will continue to serve until their term ends in 2013.  Current
directors whose term expires in 2012 are Eric Anholt, Alan Coopersmith, 
Stuart Kreitman, and Bart Massey.


A director is expected to participate in the bi-weekly IRC meeting to
discuss current business and to attend the annual meeting of the X.Org
Foundation, which will be held at a location determined in advance by
the Board of Directors.

A member may nominate themselves or any other member they feel is
qualified.  Nominations should be sent to the Election Committee at
elections at x.org.

Nominees shall be required to be current members of the X.Org
Foundation, and submit a personal statement of up to 200 words that
will be provided to prospective voters.  The collected statements,
along with the statement of contribution to the X.Org Foundation in
the members account page on http://members.x.org, will be made
available to all voters to help them make their voting decisions.

Nominations, membership applications or renewals and completed
personal statements must be received no later than 23.59 GMT on 10 March 
2013.


The slate of candidates will be published 11 March
2013 and candidate QA will begin then.  The deadline for Xorg
membership applications and renewals is 15 March 2011.

The Election Committee
X.Org Foundation

___
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com


Re: Initial DRI3000 protocol specs available

2013-02-21 Thread Chris Wilson
On Wed, Feb 20, 2013 at 10:17:56PM -0800, Keith Packard wrote:
 Chris Wilson ch...@chris-wilson.co.uk writes:
 
  You manage ask yourself the question I was trying to lead: how the heck
  does the compositor learn that the underlying graphics object has
  changed?
 
 It can certainly tell that the underlying contents have changed with
 Damage events, but as to how it knows that it should do another
 BufferFromPixmap request, I think that's gonna require another
 event.
 
 Now, the big question is how to deal with compositing managers which
 don't know about DRI3. I suspect we'll just have to skip the DMA-BUF
 swapping hack for window pixmaps unless the compositor gives us the OK
 to do so.

If a DRI2 client also grabs the buffer, then we have to fallback to blits.
That should be fairly easy to detect and handle.
 
  In DRI2 this is through the InvalidateEvent, and the lack of
  being able to send those from the driver before the Damage is sent is
  one of the reasons why the current exchange mechanism is broken.
 
 Hrm. With the current system, except for override-redirect windows, if
 the compositor is also the window manager, it should always know when
 the window pixmap is going to be replaced because that only happens when
 the window is resized, and the window manager is entirely responsible
 for making that happen. For override-redirect windows, if the
 ConfigureNotify event was delivered before the Damage event, then the
 compositor could know about that as well.

We are concerned with the GEM objects backing the Pixmaps, which may
be changed at whim by the driver.

 I guess I'd like to know more about what is broken with the current
 system for compositors...

We cannot perform simple name exchanges currently in DRI2 because the
Damage is badly ordered wrt the Invalidate event and there is no
coordination between client - server - compositor on when the
buffers are reusable by the client.

 In any case, as the underlying DMA-BUF is changing, the compositor is
 going to need to know that so it can release the old pixmap back to the
 application, and so it can rewire its own compositing operations to use
 the new object.
 
 It might be nice to have the compositor use persistent names for the
 various DMA-BUFs that are used for a particular window. I think that
 means having the compositor hold on to old DMA-BUF window pixmap
 IDs. That seems tricky though. The alternative will be to have the
 compositor create/destroy a pixmap ID per frame. Not intolerable, but
 not optimal.
 
  Getting buffer exchanges working in conjunction with the external
  compositor is more or less as tricky as it gets. The notion that the
  buffer is kept busy by the compositor and so prevents the DRI3 client
  from overdrawing it is key. And that naturally leads to the compositor
  needing to release the old buffer once it is referencing the new
  post-swap buffer.
 
 Right, an easy technique there would be to have it use NameWindowPixmap
 when it got an event telling it that a new pixmap was in use for the
 window, and then when it was finished with that pixmap, it could just
 use FreePixmap to tell the server it was done. That would bump the
 refcnt down to one in the server, at which point it could queue the
 pixmap to be sent as 'idle' the next time SwapRegion was called.
 
  Serialisation between rendering of the common buffers
  is definitely s.e.p. I agree that should solve the compositor problem.
 
 Ok, cool.
 
 So, changes that I think are needed:
 
  1) If someone calls TextureFromPixmap on a window pixmap, we need to
 suppress the window pixmap swapping hack. Alternatively, we can have
 the compositor explicitly enable window pixmap swapping.

I think we definitely want to support window swapping with DRI3
compositors. DRI2 compositors will just have to continue to force blits.

  2) We need to send an event when the buffer underlying a window switches.
 
  3) We need to be explicit about event ordering between the new window
 pixmap change notify event and any related Damage.

As I see it the challenge is to prevent sending the buffer release
(SwapIdle) back to the client before all interested third parties have
had a chance to snoop its contents and react. Sketching that out we
need to increment the busy count everytime we send an Invalidate and
expect the client (compositor) to send a release after they have
finished processing the buffer.

For fun, imagine a fullscreen redirected Window (because Wine still
manages to confuse everybody):

client servercompositor

new drawable - setup Damage
show A  (Swap) -
  invalidate buffer  damage -
-  show A (Swap)
   
  flip A
show B 
  invalidate buffer  damage -
-  show B
  

Re: Initial DRI3000 protocol specs available

2013-02-21 Thread Michal Suchanek
On 21 February 2013 07:17, Keith Packard kei...@keithp.com wrote:
 Chris Wilson ch...@chris-wilson.co.uk writes:

 Hrm. With the current system, except for override-redirect windows, if
 the compositor is also the window manager, it should always know when

There are compositors that are not window mangers I use one because
without a compositor xwd -id does not work.

Thanks

Michal
___
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: Initial DRI3000 protocol specs available

2013-02-21 Thread Clemens Eisserer
Hi,

 And for Render, along with passing blobs.

 Yeah, I can easily imagine doing a PictureFromBuffer as well. Let's
 focus on Pixmaps for now and get Mesa fixed up.

Passing blobs (if this means what I think it does) would be something
we are looking forward for Java's XRender backend. Currently we upload
32x32 alpha masks using XPutImage and most drivers (except SNA/intel)
don't cope with this very well.
In effect it would help to cure the weakness of XRender when it comes
to geometry.

Regards, Clemens
___
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] os: use libunwind to generate backtraces

2013-02-21 Thread Marcin Ślusarz
21 lut 2013 00:37, Peter Hutterer peter.hutte...@who-t.net napisał(a):

 On Tue, Feb 19, 2013 at 09:29:03PM +0100, Marcin Slusarz wrote:
 [...]
  ---
  From: Marcin Slusarz marcin.slus...@gmail.com
  Subject: [PATCH] os: use libunwind to generate backtraces
 
  Libunwind generates backtraces much more reliably than glibc's
backtrace.
 
  Before:
  0: /opt/xserver/bin/X (0x40+0x18ce36) [0x58ce36]
  1: /opt/xserver/bin/X (xorg_backtrace+0x9) [0x58d119]
  2: /opt/xserver/bin/X (0x40+0x190d69) [0x590d69]
  3: /lib64/libpthread.so.0 (0x7fb904268000+0x10a90) [0x7fb904278a90]
  4: /lib64/libc.so.6 (ioctl+0x7) [0x7fb902fbf987]
  5: /usr/lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fb90405ffa8]
  6: /usr/lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fb90406235b]
  7: /usr/lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0x89)
[0x7fb902009719]
  8: /opt/xserver/lib/xorg/modules/drivers/nouveau_drv.so
(0x7fb90220e000+0x76f3) [0x7fb9022156f3]
  9: /opt/xserver/lib/xorg/modules/libexa.so (0x7fb9019c7000+0xbae0)
[0x7fb9019d2ae0]
  10: /opt/xserver/bin/X (0x40+0x17d2b3) [0x57d2b3]
  11: /opt/xserver/bin/X (0x40+0xc9930) [0x4c9930]
  12: /opt/xserver/bin/X (0x40+0x3a81a) [0x43a81a]
  13: /opt/xserver/bin/X (0x40+0x3d6a1) [0x43d6a1]
  14: /opt/xserver/bin/X (0x40+0x2c2ca) [0x42c2ca]
  15: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7fb902f019b5]
  16: /opt/xserver/bin/X (0x40+0x2c60d) [0x42c60d]
  17: ?? [0x0]
 
  After:
  0: /opt/xserver/bin/X (OsSigHandler+0x39) [0x590d69]
  1: /lib64/libpthread.so.0 (__restore_rt+0x0) [0x7fb904278a8f]
  2: /lib64/libc.so.6 (ioctl+0x7) [0x7fb902fbf987]
  3: /usr/lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fb90405ffa8]
  4: /usr/lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fb90406235b]
  5: /usr/lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0x89)
[0x7fb902009719]
  6: /opt/xserver/lib/xorg/modules/drivers/nouveau_drv.so
(nouveau_exa_download_from_screen+0x1a3) [0x7fb9022156f3]
  7: /opt/xserver/lib/xorg/modules/libexa.so (exaGetImage+0x1f0)
[0x7fb9019d2ae0]
  8: /opt/xserver/bin/X (miSpriteGetImage+0x173) [0x57d2b3]
  9: /opt/xserver/bin/X (compGetImage+0xb0) [0x4c9930]
  10: /opt/xserver/bin/X (ProcGetImage+0x55a) [0x43a81a]
  11: /opt/xserver/bin/X (Dispatch+0x341) [0x43d6a1]
  12: /opt/xserver/bin/X (main+0x3ba) [0x42c2ca]
  13: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7fb902f019b5]
  14: /opt/xserver/bin/X (_start+0x29) [0x42c60d]
  15: ? (?+0x29) [0x29]
 
  Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
  ---
   configure.ac|  7 +
   include/dix-config.h.in |  3 ++
   os/Makefile.am  |  5 
   os/backtrace.c  | 75
+
   4 files changed, 90 insertions(+)
 
  diff --git a/configure.ac b/configure.ac
  index 9415a54..4a292da 100644
  --- a/configure.ac
  +++ b/configure.ac
  @@ -309,6 +309,13 @@ AC_CHECK_HEADER([execinfo.h],[
   ])]
   )
 
  +PKG_CHECK_MODULES(LIBUNWIND, libunwind, [HAVE_LIBUNWIND=yes],
[HAVE_LIBUNWIND=no])
  +if test x$HAVE_LIBUNWIND = xyes; then
  + AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support])
  +fi
  +AM_CONDITIONAL(HAVE_LIBUNWIND, [test x$HAVE_LIBUNWIND = xyes])
  +
  +
   dnl
---
   dnl Bus options and CPU capabilities.  Replaces logic in
   dnl hw/xfree86/os-support/bus/Makefile.am, among others.
  diff --git a/include/dix-config.h.in b/include/dix-config.h.in
  index 578f249..5102263 100644
  --- a/include/dix-config.h.in
  +++ b/include/dix-config.h.in
  @@ -60,6 +60,9 @@
   /* Has backtrace support */
   #undef HAVE_BACKTRACE
 
  +/* Has libunwind support */
  +#undef HAVE_LIBUNWIND
  +
   /* Define to 1 if you have the byteswap.h header file. */
   #undef HAVE_BYTESWAP_H
 
  diff --git a/os/Makefile.am b/os/Makefile.am
  index 8891485..364b6da 100644
  --- a/os/Makefile.am
  +++ b/os/Makefile.am
  @@ -34,6 +34,11 @@ if XDMCP
   libos_la_SOURCES += $(XDMCP_SRCS)
   endif
 
  +if HAVE_LIBUNWIND
  +AM_CFLAGS += $(LIBUNWIND_CFLAGS)
  +libos_la_LIBADD += $(LIBUNWIND_LIBS)
  +endif
  +
   EXTRA_DIST = $(SECURERPC_SRCS) $(XDMCP_SRCS)
 
   if SPECIAL_DTRACE_OBJECTS
  diff --git a/os/backtrace.c b/os/backtrace.c
  index daac60c..426f9b1 100644
  --- a/os/backtrace.c
  +++ b/os/backtrace.c
  @@ -30,6 +30,80 @@
   #include errno.h
   #include string.h
 
  +#ifdef HAVE_LIBUNWIND
  +
  +#define UNW_LOCAL_ONLY
  +#include libunwind.h
  +
  +#ifndef _GNU_SOURCE
  +#define _GNU_SOURCE
  +#endif
  +#include dlfcn.h
  +
  +void
  +xorg_backtrace(void)
  +{
  +unw_cursor_t cursor;
  +unw_context_t context;
  +unw_word_t off;
  +unw_proc_info_t pip;
  +int ret, i = 0;
  +char procname[256];
  +const char *filename;
  +Dl_info dlinfo;
  +
  +pip.unwind_info = NULL;
  +ret = unw_getcontext(context);
  +if (ret) {
  +ErrorFSigSafe(unw_getcontext failed: %s [%d]\n,
unw_strerror(ret),
  +ret);
  +return;
  +}
  +
  

Re: Patch for compose key sequences J with acute

2013-02-21 Thread Pander
On 2013-02-20 17:28, James Cloos wrote:
 One quick review note:
 
 Per 10646 and unicode, that miniscule sequence should
 be U+006A U+0301 j́ and not U+0237 U+0303 ȷ́.

Do you mean (only fix in tyop in quote of my proposal):

U+006A U+0301 j́ and not U+0237 U+0301 ȷ́.

I just noticed that on bitmap fonts such as the command line, one still
sees the dot of the j or a j followed by a filled diamond shape.

 The i and j are defined to have soft dots; all combining sequence
 starting with either MUST ignore the dot on the base character.
 
 Not all font/rendering engines tuples get this right, but they should,
 and searches et al probably expect j́.

So indeed there is some work on the rendering part. Attached is a new
patch with you improvement. Does anyone would like to have the reverse
order supported and/or dead keys supported for this?

 -JimC
 

Regards,

Pander
diff --git a/nls/en_US.UTF-8/Compose.pre b/nls/en_US.UTF-8/Compose.pre
index de24dad..6c4dc6f 100644
--- a/nls/en_US.UTF-8/Compose.pre
+++ b/nls/en_US.UTF-8/Compose.pre
@@ -618,6 +618,7 @@ XCOMM Part 3
 Multi_key I quotedbl 		: Ï   Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
 Multi_key diaeresis I 		: Ï   Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
 Multi_key I diaeresis 		: Ï   Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
+Multi_key J acute 		: J́# LATIN CAPITAL LETTER J U004A with COMBINING ACUTE ACCENT U0301
 Multi_key D H  	: Ð   ETH # LATIN CAPITAL LETTER ETH
 dead_tilde N 	: Ñ   Ntilde # LATIN CAPITAL LETTER N WITH TILDE
 Multi_key asciitilde N 	: Ñ   Ntilde # LATIN CAPITAL LETTER N WITH TILDE
@@ -738,6 +739,7 @@ XCOMM Part 3
 Multi_key i quotedbl 		: ï   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
 Multi_key diaeresis i 		: ï   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
 Multi_key i diaeresis 		: ï   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
+Multi_key j acute 		: j́# LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
 Multi_key d h  	: ð   eth # LATIN SMALL LETTER ETH
 dead_tilde n 	: ñ   ntilde # LATIN SMALL LETTER N WITH TILDE
 Multi_key asciitilde n 	: ñ   ntilde # LATIN SMALL LETTER N WITH TILDE
___
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: Initial DRI3000 protocol specs available

2013-02-21 Thread Keith Packard
Stéphane Marchesin stephane.marche...@gmail.com writes:

 With that said, I don't think it's that difficult/different. I can
 design a GLX extension spec and send a draft, then we can work from
 there.

Yeah, some concrete plan for GL would be really nice to have, at least
as a starting point.

 That is actually not what you want because it is a waste of bandwidth.
 Since compositors are typically bandwidth limited, you instead want to
 paint only the relevant sub regions. Those are easy to determine by
 transforming X damage regions into screen coordinates.

Of course, that's what SwapRegion is for -- it will get to pick whether
to copy or page flip and let the client know what happened, the region
you pass

 Most non-trivial compositing managers are already using partial update
 schemes through GLX_MESA_copy_sub_buffer or the GLX_EXT_buffer_age
 extensions + copies. I don't think it is far fetched to support a list
 of rectangles instead.

A region is already a list of rectangles; the only restriction that the
relative location of all of the source and dest rectangles is the
same. This satisfies the goal of doing a damage-based back-front
update.

-- 
keith.pack...@intel.com


pgpb3Q267E6v2.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

[PATCH] parser: handle negative numbers properly

2013-02-21 Thread Robert Morell
Numbers beginning with '-' were falling into the DASH category.

This also caused a confusing error message, since no terminating NUL
character was added to configRBuf -- old garbage in the string would be
printed.  This fixes the terminating NUL for COMMA as well.

Signed-off-by: Robert Morell rmor...@nvidia.com
---
 hw/xfree86/parser/scan.c | 17 -
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c
index f852b83..b74d21b 100644
--- a/hw/xfree86/parser/scan.c
+++ b/hw/xfree86/parser/scan.c
@@ -338,18 +338,26 @@ xf86getToken(xf86ConfigSymTabRec * tab)
 
 /* GJA -- handle '-' and ','  * Be careful: -hsync is a keyword. */
 else if ((c == ',')  !isalpha(configBuf[configPos])) {
+configRBuf[i] = '\0';
 return COMMA;
 }
-else if ((c == '-')  !isalpha(configBuf[configPos])) {
+else if ((c == '-')  !isalnum(configBuf[configPos])) {
+configRBuf[i] = '\0';
 return DASH;
 }
 
 /* 
  * Numbers are returned immediately ...
  */
-if (isdigit(c)) {
+if (isdigit(c) || (c == '-'  isdigit(configBuf[configPos]))) {
 int base;
 
+i = 0;
+if (c == '-') {
+configRBuf[i++] = c;
+c = configBuf[configPos++];
+}
+
 if (c == '0')
 if ((configBuf[configPos] == 'x') ||
 (configBuf[configPos] == 'X')) {
@@ -365,8 +373,7 @@ xf86getToken(xf86ConfigSymTabRec * tab)
 val.numType = PARSE_DECIMAL;
 }
 
-configRBuf[0] = c;
-i = 1;
+configRBuf[i++] = c;
 while (isdigit(c = configBuf[configPos++]) ||
(c == '.') || (c == 'x') || (c == 'X') ||
((base == 16)  (((c = 'a')  (c = 'f')) ||
@@ -374,7 +381,7 @@ xf86getToken(xf86ConfigSymTabRec * tab)
 configRBuf[i++] = c;
 configPos--;/* GJA -- one too far */
 configRBuf[i] = '\0';
-val.num = strtoul(configRBuf, NULL, 0);
+val.num = strtol(configRBuf, NULL, 0);
 val.realnum = atof(configRBuf);
 return NUMBER;
 }
-- 
1.7.12.4

___
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: Initial DRI3000 protocol specs available

2013-02-21 Thread Keith Packard
Chris Wilson ch...@chris-wilson.co.uk writes:

 If a DRI2 client also grabs the buffer, then we have to fallback to blits.
 That should be fairly easy to detect and handle.

So, the question is whether the NameWindowPixmap IDs are stable across
pixmap replacement. I'm frankly tempted to add a new event to Composite
that is sent whenever the window pixmap changes -- that way applications
wouldn't have to guess that the pixmap changed whenever the window was
resized. This would also provide an opportunity to improve resize
performance as the X server could over-allocate window pixmaps during
the resize operation, and then shrink them back down once the final size
had been selected.

 We are concerned with the GEM objects backing the Pixmaps, which may
 be changed at whim by the driver.

Huh?

 We cannot perform simple name exchanges currently in DRI2 because the
 Damage is badly ordered wrt the Invalidate event and there is no
 coordination between client - server - compositor on when the
 buffers are reusable by the client.

Right, so we clearly need to pass the backing buffer from application to
X server and thence to the compositor. What I'm not sure about is how to
name these buffers, and how to scope their lifetime.

Here's a quick proposal -- have the X server assign server XIDs to the
buffers, and send those XIDs to the compositor in events. Now the
compositor is responsible for telling the server (some new 'IdlePixmap'
call?) when it finishes with the objects, at which point they can be
released back to the application.

We'd need some magic to make sure the pixmaps got freed if the
compositor crashed, but I think that's easier than trying to figure out
how to allocate XIDs in the compositor ID space from within the X
server.

This would replace NameWindowPixmap, and would eliminate the current
race conditions between the ConfigureNotify and the NameWindowPixmap
call while also providing traceable ownership of the buffer contents:

busyapplication X servercompositor


A   Draw to buffer A
Allocate pixmap ID for buffer A, 'Pixmap Aa'
SwapRegion Pixmap Aa

Allocate server ID for Pixmap Aa, 'Pixmap Ax'
Send 'window pixmap changed' event 'Pixmap Ax'

Receive event
Convert 'Pixmap Ax' into buffer A
using TextureFromPixmap
paint screen using buffer A
...
AB  Draw to buffer B
Allocate pixmap ID for buffer B, 'Pixmap Ba'
SwapRegion Pixmap Ba

Allocate server id for Pixmap Ba, 'Pixmap Bx'
Send 'window pixmap changed' event 'Pixmap Ax'

Receive event
IdlePixmap Pixmap Ax
Convert 'Pixmap Bx' into buffer B
using TextureFromPixmap
paint screen using buffer B

B   Mark Pixmap Aa as idle

BC  Draw to buffer C
Allocate pixmap ID for buffer C, 'Pixmap Ca'
SwapRegion Pixmap Ca
Reply with Pixmap Aa idle
Allocate server id for Pixmap Ca, 'Pixmap Cx'
Send 'window pixmap changed' event 'Pixmap Cx'

Receive event
IdlePixmap Pixmap Bx
Convert 'Pixmap Cx' into buffer C
using TextureFromPixmap
paint screen using buffer C

C   Mark Pixmap Ba as idle

CA  Draw to buffer A
SwapRegion Pixmap Aa
Reply with Pixmap Ba idle
Send 'window pixmap changed' event 'Pixmap Ax'

Receive event
IdlePixmap Pixmap Cx
paint screen using buffer A

A   Mark Pixmap Ca as idle

At this point, we're in a steady state, using three buffers for
the window -- a 'back buffer', a 'front buffer' and an 'idle buffer'.

One easy thing for memory usage is to consider idle buffers as suitable
for discard in the kernel; that would get us to one pinned buffer in the
idle case, although we'd be using three buffers while active.

It would be nice to flip between two buffers instead, but there may be
compositor rendering traffic in flight using buffer A as the application
draws to B and then C.

Hrm. What we need is for the client to learn that the compositor has
marked a buffer idle before it starts drawing; the current design places
that information in the reply to SwapRegion, 

Nominations for X.Org Foundation Board of Directors are OPEN (resend)

2013-02-21 Thread Matt Dew
(I sent this to announce, xorg and xorg-devel lists but forgot the 
members list.  To account for this mistake, the nomination window is 
being extended to March 10.  The email below is the same as previously, 
with the dates adjusted.)


We are seeking nominations for candidates for election to the X.Org
Foundation Board of Directors.  All X.Org Foundation members are
eligible for election to the board.

Nominations for the 2012 election are now open and will remain open
until 23.59 GMT on 10 March 2013.

The Board consists of directors elected from the membership.  Each
year, an election is held to bring the total number of directors to
eight.  The four members receiving the highest vote totals will serve
as directors for two year terms.

The directors who received two year terms starting in 2011 were
Matthias Hopf, Keith Packard, Matt Dew, and Alex Deucher.  They
will continue to serve until their term ends in 2013.  Current
directors whose term expires in 2012 are Eric Anholt, Alan Coopersmith, 
Stuart Kreitman, and Bart Massey.


A director is expected to participate in the bi-weekly IRC meeting to
discuss current business and to attend the annual meeting of the X.Org
Foundation, which will be held at a location determined in advance by
the Board of Directors.

A member may nominate themselves or any other member they feel is
qualified.  Nominations should be sent to the Election Committee at
elections at x.org.

Nominees shall be required to be current members of the X.Org
Foundation, and submit a personal statement of up to 200 words that
will be provided to prospective voters.  The collected statements,
along with the statement of contribution to the X.Org Foundation in
the members account page on http://members.x.org, will be made
available to all voters to help them make their voting decisions.

Nominations, membership applications or renewals and completed
personal statements must be received no later than 23.59 GMT on 10 March 
2013.


The slate of candidates will be published 11 March
2013 and candidate QA will begin then.  The deadline for Xorg
membership applications and renewals is 15 March 2011.

The Election Committee
X.Org Foundation

___
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] os: use libunwind to generate backtraces

2013-02-21 Thread Peter Hutterer
On Thu, Feb 21, 2013 at 08:00:07AM +0100, Marcin Ślusarz wrote:
 21 lut 2013 00:37, Peter Hutterer peter.hutte...@who-t.net napisał(a):
 
  On Tue, Feb 19, 2013 at 09:29:03PM +0100, Marcin Slusarz wrote:
  [...]
   ---
   From: Marcin Slusarz marcin.slus...@gmail.com
   Subject: [PATCH] os: use libunwind to generate backtraces
  
   Libunwind generates backtraces much more reliably than glibc's
 backtrace.
  
   Before:
   0: /opt/xserver/bin/X (0x40+0x18ce36) [0x58ce36]
   1: /opt/xserver/bin/X (xorg_backtrace+0x9) [0x58d119]
   2: /opt/xserver/bin/X (0x40+0x190d69) [0x590d69]
   3: /lib64/libpthread.so.0 (0x7fb904268000+0x10a90) [0x7fb904278a90]
   4: /lib64/libc.so.6 (ioctl+0x7) [0x7fb902fbf987]
   5: /usr/lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fb90405ffa8]
   6: /usr/lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fb90406235b]
   7: /usr/lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0x89)
 [0x7fb902009719]
   8: /opt/xserver/lib/xorg/modules/drivers/nouveau_drv.so
 (0x7fb90220e000+0x76f3) [0x7fb9022156f3]
   9: /opt/xserver/lib/xorg/modules/libexa.so (0x7fb9019c7000+0xbae0)
 [0x7fb9019d2ae0]
   10: /opt/xserver/bin/X (0x40+0x17d2b3) [0x57d2b3]
   11: /opt/xserver/bin/X (0x40+0xc9930) [0x4c9930]
   12: /opt/xserver/bin/X (0x40+0x3a81a) [0x43a81a]
   13: /opt/xserver/bin/X (0x40+0x3d6a1) [0x43d6a1]
   14: /opt/xserver/bin/X (0x40+0x2c2ca) [0x42c2ca]
   15: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7fb902f019b5]
   16: /opt/xserver/bin/X (0x40+0x2c60d) [0x42c60d]
   17: ?? [0x0]
  
   After:
   0: /opt/xserver/bin/X (OsSigHandler+0x39) [0x590d69]
   1: /lib64/libpthread.so.0 (__restore_rt+0x0) [0x7fb904278a8f]
   2: /lib64/libc.so.6 (ioctl+0x7) [0x7fb902fbf987]
   3: /usr/lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fb90405ffa8]
   4: /usr/lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fb90406235b]
   5: /usr/lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0x89)
 [0x7fb902009719]
   6: /opt/xserver/lib/xorg/modules/drivers/nouveau_drv.so
 (nouveau_exa_download_from_screen+0x1a3) [0x7fb9022156f3]
   7: /opt/xserver/lib/xorg/modules/libexa.so (exaGetImage+0x1f0)
 [0x7fb9019d2ae0]
   8: /opt/xserver/bin/X (miSpriteGetImage+0x173) [0x57d2b3]
   9: /opt/xserver/bin/X (compGetImage+0xb0) [0x4c9930]
   10: /opt/xserver/bin/X (ProcGetImage+0x55a) [0x43a81a]
   11: /opt/xserver/bin/X (Dispatch+0x341) [0x43d6a1]
   12: /opt/xserver/bin/X (main+0x3ba) [0x42c2ca]
   13: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7fb902f019b5]
   14: /opt/xserver/bin/X (_start+0x29) [0x42c60d]
   15: ? (?+0x29) [0x29]
  
   Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
   ---
configure.ac|  7 +
include/dix-config.h.in |  3 ++
os/Makefile.am  |  5 
os/backtrace.c  | 75
 +
4 files changed, 90 insertions(+)
  
   diff --git a/configure.ac b/configure.ac
   index 9415a54..4a292da 100644
   --- a/configure.ac
   +++ b/configure.ac
   @@ -309,6 +309,13 @@ AC_CHECK_HEADER([execinfo.h],[
])]
)
  
   +PKG_CHECK_MODULES(LIBUNWIND, libunwind, [HAVE_LIBUNWIND=yes],
 [HAVE_LIBUNWIND=no])
   +if test x$HAVE_LIBUNWIND = xyes; then
   + AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support])
   +fi
   +AM_CONDITIONAL(HAVE_LIBUNWIND, [test x$HAVE_LIBUNWIND = xyes])
   +
   +
dnl
 ---
dnl Bus options and CPU capabilities.  Replaces logic in
dnl hw/xfree86/os-support/bus/Makefile.am, among others.
   diff --git a/include/dix-config.h.in b/include/dix-config.h.in
   index 578f249..5102263 100644
   --- a/include/dix-config.h.in
   +++ b/include/dix-config.h.in
   @@ -60,6 +60,9 @@
/* Has backtrace support */
#undef HAVE_BACKTRACE
  
   +/* Has libunwind support */
   +#undef HAVE_LIBUNWIND
   +
/* Define to 1 if you have the byteswap.h header file. */
#undef HAVE_BYTESWAP_H
  
   diff --git a/os/Makefile.am b/os/Makefile.am
   index 8891485..364b6da 100644
   --- a/os/Makefile.am
   +++ b/os/Makefile.am
   @@ -34,6 +34,11 @@ if XDMCP
libos_la_SOURCES += $(XDMCP_SRCS)
endif
  
   +if HAVE_LIBUNWIND
   +AM_CFLAGS += $(LIBUNWIND_CFLAGS)
   +libos_la_LIBADD += $(LIBUNWIND_LIBS)
   +endif
   +
EXTRA_DIST = $(SECURERPC_SRCS) $(XDMCP_SRCS)
  
if SPECIAL_DTRACE_OBJECTS
   diff --git a/os/backtrace.c b/os/backtrace.c
   index daac60c..426f9b1 100644
   --- a/os/backtrace.c
   +++ b/os/backtrace.c
   @@ -30,6 +30,80 @@
#include errno.h
#include string.h
  
   +#ifdef HAVE_LIBUNWIND
   +
   +#define UNW_LOCAL_ONLY
   +#include libunwind.h
   +
   +#ifndef _GNU_SOURCE
   +#define _GNU_SOURCE
   +#endif
   +#include dlfcn.h
   +
   +void
   +xorg_backtrace(void)
   +{
   +unw_cursor_t cursor;
   +unw_context_t context;
   +unw_word_t off;
   +unw_proc_info_t pip;
   +int ret, i = 0;
   +char procname[256];
   +const char *filename;
   +Dl_info dlinfo;
   +
   +

Nominations for X.Org Foundation Board of Directors are OPEN (resend)

2013-02-21 Thread Matt Dew
(I sent this to announce, xorg and xorg-devel lists but forgot the 
members list.  To account for this mistake, the nomination window is 
being extended to March 10.  The email below is the same as previously, 
with the dates adjusted.)


We are seeking nominations for candidates for election to the X.Org
Foundation Board of Directors.  All X.Org Foundation members are
eligible for election to the board.

Nominations for the 2012 election are now open and will remain open
until 23.59 GMT on 10 March 2013.

The Board consists of directors elected from the membership.  Each
year, an election is held to bring the total number of directors to
eight.  The four members receiving the highest vote totals will serve
as directors for two year terms.

The directors who received two year terms starting in 2011 were
Matthias Hopf, Keith Packard, Matt Dew, and Alex Deucher.  They
will continue to serve until their term ends in 2013.  Current
directors whose term expires in 2012 are Eric Anholt, Alan Coopersmith, 
Stuart Kreitman, and Bart Massey.


A director is expected to participate in the bi-weekly IRC meeting to
discuss current business and to attend the annual meeting of the X.Org
Foundation, which will be held at a location determined in advance by
the Board of Directors.

A member may nominate themselves or any other member they feel is
qualified.  Nominations should be sent to the Election Committee at
elections at x.org.

Nominees shall be required to be current members of the X.Org
Foundation, and submit a personal statement of up to 200 words that
will be provided to prospective voters.  The collected statements,
along with the statement of contribution to the X.Org Foundation in
the members account page on http://members.x.org, will be made
available to all voters to help them make their voting decisions.

Nominations, membership applications or renewals and completed
personal statements must be received no later than 23.59 GMT on 10 March 
2013.


The slate of candidates will be published 11 March
2013 and candidate QA will begin then.  The deadline for Xorg
membership applications and renewals is 15 March 2011.

The Election Committee
X.Org Foundation

___
xorg-announce mailing list
xorg-announce@lists.x.org
http://lists.x.org/mailman/listinfo/xorg-announce


[Bug 28106] radeon KMS causes hardware conflict/interference with Intel wifi and audio, crashes wireless

2013-02-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=28106

--- Comment #74 from Vassil Panayotov vd.panayo...@gmail.com ---
Just for the record I've tried Kubuntu 12.04.02 and the kwin_gles workaround
does _not_ work for me unfortunately(T60 w/ X1400) . There are still messages
like CE: hpet increased min_delta_ns to 20113 nsec, and the wireless is very
slow. This issue is very frustrating and is the first time when the open source
model fails to work for me. I mean this report was filed 3 years ago, affects
thousands of people, there is no good workaround and yet no one from the
radeon developers seems to care.
I wonder if we can raise money and put together a bounty or something...

(posted this on https://bugs.launchpad.net/bugs/879790 24 hours ago but for
some reason it's not synchronized yet, so posting it here manually too)

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
xorg-driver-ati mailing list
xorg-driver-ati@lists.x.org
http://lists.x.org/mailman/listinfo/xorg-driver-ati


[Bug 28106] radeon KMS causes hardware conflict/interference with Intel wifi and audio, crashes wireless

2013-02-21 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=28106

Vassil Panayotov vd.panayo...@gmail.com changed:

   What|Removed |Added

 CC||vd.panayo...@gmail.com

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
xorg-driver-ati mailing list
xorg-driver-ati@lists.x.org
http://lists.x.org/mailman/listinfo/xorg-driver-ati