[quake2] Performance issue fixed, problem found

Brendan Burns brendanburns at attbi.com
Wed Jun 26 16:47:20 EDT 2002


Yeah, I lifted some code from SDL to do this.  Here's what I added:


/* Check to see if this is a repeated key.
   (idea shamelessly lifted from SDL who...)
   (idea shamelessly lifted from GII -- thanks guys! :)
   This has bugs if two keys are being pressed simultaneously and the
   events start getting interleaved.
*/
int X11_KeyRepeat(Display *display, XEvent *event)
{
	XEvent peekevent;
	int repeated;

	repeated = 0;
	if ( XPending(display) ) {
		XPeekEvent(display, &peekevent);
		if ( (peekevent.type == KeyPress) &&
(peekevent.xkey.keycode == event->xkey.keycode) &&
((peekevent.xkey.time-event->xkey.time) < 2) ) {
			repeated = 1;
			XNextEvent(display, &peekevent);
		}
	}
	return(repeated);
}

Then to the HandleEvents function I changed the case for KeyRelease to:
	case KeyRelease:
	    if (! X11_KeyRepeat(dpy, &event)) {
	      if (in_state && in_state->Key_Event_fp)
		in_state->Key_Event_fp (XLateKey(&event.xkey), false);
	    }
	    break;

I suspect that the same ought to work for solaris...

--brendan

On Wed, 2002-06-26 at 03:21, Steve wrote:
> > How much shared meme did you put in /etc/system? Btw, if you install SUN's
> > gnome (1.4), it will modify /etc/system for you but I didn't know that
> > this would make a diff for quake2...
> 
> 	Well, typically I install postgres at some point on a Sun machine,
> and it complains about not enough shared memory and then I fix it.
> However, this particular machine is just my desktop at the moment, and I
> hadn't had anything that errors due to low shared memory.  And since I
> don't use gnome, well, nothing ever set it for me :-)
> 
> 	I put these shared memory settings in:
> 
> set shmsys:shminfo_shmmax=0x2000000
> set shmsys:shminfo_shmmin=1
> set shmsys:shminfo_shmmni=256
> set shmsys:shminfo_shmseg=256
> 
> set semsys:seminfo_semmap=256
> set semsys:seminfo_semmni=512
> set semsys:seminfo_semmns=512
> set semsys:seminfo_semmsl=32
> 
> 
> 	As for shared memory ... it probably doesn't help to have a *lot*
> of shared memory, but I think if you don't have enough, it probably chokes
> it a bit.  The default Sun level of shared memory probably was
> bottlenecking it somewhat.  Dunno why they default it so low :-)
> 
> 
> > I will try to see if I can reproduce that.. One sure thing is: I think to
> > remember that something about key presses like this was fixed in the Linux
> > source but I haven't (yet) looked into it and ported it to the Solaris
> > source.... Was in rw_x11.c, I think...
> >
> 
> 	Well, let me know if you need help testing or anything, and I'll
> give it a shot >:-)
> 
> 
> Steve
> 





More information about the quake2 mailing list