Jerky updates in testsprite2 on Linux?

This past week I finally got fed up with Windows and fled back to
Linux on my netbook. It’s been a breath of fresh air. Or at least it
was, until I found a few minutes to start getting my dev environment
set up.

Much to my dismay, after pulling down latest SDL-1.3, I’m finding
very jerky updates in testsprite2. I intend to dig in to it when I
get a chance, but thought it’d be worth asking if anyone else is
seeing (or has seen) similar behavior.

Commented out everything (including the event polling) except the main
sprite updates, with no effect. After adding some instrumentation, I’m
finding that my fps rate ranges from a min of ~38 to a max of ~82,
with the fps over the full run closer to the max, ~80 fps.

I’ve verified that DRI is enabled, and glxgears runs smoothly at ~62
fps (it’s locked to vsync).

I’m running Ubuntu Maverick, and have tried both gcc 4.4 and 4.5, with
no difference in behavior.–
Do what you can, where you are, with what you have. - T. Roosevelt

Sorry to reply to myself, but I see I left critical info out - that’s what I get for sneaking off a quick email on Valentine’s evening! :wink:

The machine I’m seeing this behavior on is a Samsung NC10 netbook - in other words, GMA945 and an Atom :frowning: .

It sounds like there’s only one CPU and there’s fighting between the X
server and the application.

What is the output with --log all ?On Mon, Feb 14, 2011 at 8:12 PM, Greg Jandl <greg.jandl at gmail.com> wrote:

This past week I finally got fed up with Windows and fled back to
Linux on my netbook. It’s been a breath of fresh air. Or at least it
was, until I found a few minutes to start getting my dev environment
set up.

Much to my dismay, after pulling down latest SDL-1.3, I’m finding
very jerky updates in testsprite2. I intend to dig in to it when I
get a chance, but thought it’d be worth asking if anyone else is
seeing (or has seen) similar behavior.

Commented out everything (including the event polling) except the main
sprite updates, with no effect. After adding some instrumentation, I’m
finding that my fps rate ranges from a min of ~38 to a max of ~82,
with the fps over the full run closer to the max, ~80 fps.

I’ve verified that DRI is enabled, and glxgears runs smoothly at ~62
fps (it’s locked to vsync).

I’m running Ubuntu Maverick, and have tried both gcc 4.4 and 4.5, with
no difference in behavior.


Do what you can, where you are, with what you have. - T. Roosevelt


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


-Sam Lantinga, Founder and CEO, Galaxy Gameworks

It sounds like there’s only one CPU and there’s fighting between the X
server and the application.

Yup - one CPU (1.6GHz Atom w/HT)

What is the output with --log all ?

Hadn’t tried that yet. Wow … lots more errors that I would have expected:

gregj at bluemoon:~/Projects/upstream/SDL-1.3/test$ ./testsprite2 --log all
ERROR: Failed loading XMissingExtension: /usr/lib/libX11.so.6:
undefined symbol: _XMissingExtension
ERROR: Failed loading XextAddDisplay: /usr/lib/libX11.so.6: undefined
symbol: _XextAddDisplay
ERROR: Failed loading XextCreateExtension: /usr/lib/libX11.so.6:
undefined symbol: _XextCreateExtension
ERROR: Failed loading XextDestroyExtension: /usr/lib/libX11.so.6:
undefined symbol: _XextDestroyExtension
ERROR: Failed loading XextFindDisplay: /usr/lib/libX11.so.6: undefined
symbol: _XextFindDisplay
ERROR: Failed loading XextRemoveDisplay: /usr/lib/libX11.so.6:
undefined symbol: _XextRemoveDisplay
ERROR: Failed loading XSetExtensionErrorHandler: /usr/lib/libX11.so.6:
undefined symbol: _XSetExtensionErrorHandler
ERROR: Failed loading XShmAttach: /usr/lib/libX11.so.6: undefined
symbol: _XShmAttach
ERROR: Failed loading XShmDetach: /usr/lib/libX11.so.6: undefined
symbol: _XShmDetach
ERROR: Failed loading XShmPutImage: /usr/lib/libX11.so.6: undefined
symbol: _XShmPutImage
ERROR: Failed loading XShmCreateImage: /usr/lib/libX11.so.6: undefined
symbol: _XShmCreateImage
ERROR: Failed loading XShmCreatePixmap: /usr/lib/libX11.so.6:
undefined symbol: _XShmCreatePixmap
ERROR: Failed loading XShmQueryExtension: /usr/lib/libX11.so.6:
undefined symbol: _XShmQueryExtension
ERROR: Failed loading XRRQueryVersion: /usr/lib/libX11.so.6: undefined
symbol: _XRRQueryVersion
ERROR: Failed loading XRRQueryVersion: /usr/lib/libXext.so.6:
undefined symbol: _XRRQueryVersion
ERROR: Failed loading XRRGetScreenInfo: /usr/lib/libX11.so.6:
undefined symbol: _XRRGetScreenInfo
ERROR: Failed loading XRRGetScreenInfo: /usr/lib/libXext.so.6:
undefined symbol: _XRRGetScreenInfo
ERROR: Failed loading XRRConfigCurrentConfiguration:
/usr/lib/libX11.so.6: undefined symbol: _XRRConfigCurrentConfiguration
ERROR: Failed loading XRRConfigCurrentConfiguration:
/usr/lib/libXext.so.6: undefined symbol:
_XRRConfigCurrentConfiguration
ERROR: Failed loading XRRConfigCurrentRate: /usr/lib/libX11.so.6:
undefined symbol: _XRRConfigCurrentRate
ERROR: Failed loading XRRConfigCurrentRate: /usr/lib/libXext.so.6:
undefined symbol: _XRRConfigCurrentRate
ERROR: Failed loading XRRConfigRates: /usr/lib/libX11.so.6: undefined
symbol: _XRRConfigRates
ERROR: Failed loading XRRConfigRates: /usr/lib/libXext.so.6: undefined
symbol: _XRRConfigRates
ERROR: Failed loading XRRConfigSizes: /usr/lib/libX11.so.6: undefined
symbol: _XRRConfigSizes
ERROR: Failed loading XRRConfigSizes: /usr/lib/libXext.so.6: undefined
symbol: _XRRConfigSizes
ERROR: Failed loading XRRSetScreenConfigAndRate: /usr/lib/libX11.so.6:
undefined symbol: _XRRSetScreenConfigAndRate
ERROR: Failed loading XRRSetScreenConfigAndRate:
/usr/lib/libXext.so.6: undefined symbol: _XRRSetScreenConfigAndRate
ERROR: Failed loading XRRFreeScreenConfigInfo: /usr/lib/libX11.so.6:
undefined symbol: _XRRFreeScreenConfigInfo
ERROR: Failed loading XRRFreeScreenConfigInfo: /usr/lib/libXext.so.6:
undefined symbol: _XRRFreeScreenConfigInfo
ERROR: Failed loading XListInputDevices: /usr/lib/libX11.so.6:
undefined symbol: _XListInputDevices
ERROR: Failed loading XListInputDevices: /usr/lib/libXext.so.6:
undefined symbol: _XListInputDevices
ERROR: Failed loading XListInputDevices: /usr/lib/libXrandr.so.2:
undefined symbol: _XListInputDevices
ERROR: Failed loading XFreeDeviceList: /usr/lib/libX11.so.6: undefined
symbol: _XFreeDeviceList
ERROR: Failed loading XFreeDeviceList: /usr/lib/libXext.so.6:
undefined symbol: _XFreeDeviceList
ERROR: Failed loading XFreeDeviceList: /usr/lib/libXrandr.so.2:
undefined symbol: _XFreeDeviceList
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libX11.so.6:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libXext.so.6:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libXrandr.so.2:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XOpenDevice: /usr/lib/libX11.so.6: undefined
symbol: _XOpenDevice
ERROR: Failed loading XOpenDevice: /usr/lib/libXext.so.6: undefined
symbol: _XOpenDevice
ERROR: Failed loading XOpenDevice: /usr/lib/libXrandr.so.2: undefined
symbol: _XOpenDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libX11.so.6: undefined
symbol: _XCloseDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libXext.so.6: undefined
symbol: _XCloseDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libXrandr.so.2: undefined
symbol: _XCloseDevice
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libX11.so.6: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libXext.so.6: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libXrandr.so.2: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libX11.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libXext.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion:
/usr/lib/libXrandr.so.2: undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libX11.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXext.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXrandr.so.2:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XShapeCombineMask: /usr/lib/libX11.so.6:
undefined symbol: _XShapeCombineMask
ERROR: Failed loading XMissingExtension: /usr/lib/libX11.so.6:
undefined symbol: _XMissingExtension
ERROR: Failed loading XextAddDisplay: /usr/lib/libX11.so.6: undefined
symbol: _XextAddDisplay
ERROR: Failed loading XextCreateExtension: /usr/lib/libX11.so.6:
undefined symbol: _XextCreateExtension
ERROR: Failed loading XextDestroyExtension: /usr/lib/libX11.so.6:
undefined symbol: _XextDestroyExtension
ERROR: Failed loading XextFindDisplay: /usr/lib/libX11.so.6: undefined
symbol: _XextFindDisplay
ERROR: Failed loading XextRemoveDisplay: /usr/lib/libX11.so.6:
undefined symbol: _XextRemoveDisplay
ERROR: Failed loading XSetExtensionErrorHandler: /usr/lib/libX11.so.6:
undefined symbol: _XSetExtensionErrorHandler
ERROR: Failed loading XShmAttach: /usr/lib/libX11.so.6: undefined
symbol: _XShmAttach
ERROR: Failed loading XShmDetach: /usr/lib/libX11.so.6: undefined
symbol: _XShmDetach
ERROR: Failed loading XShmPutImage: /usr/lib/libX11.so.6: undefined
symbol: _XShmPutImage
ERROR: Failed loading XShmCreateImage: /usr/lib/libX11.so.6: undefined
symbol: _XShmCreateImage
ERROR: Failed loading XShmCreatePixmap: /usr/lib/libX11.so.6:
undefined symbol: _XShmCreatePixmap
ERROR: Failed loading XShmQueryExtension: /usr/lib/libX11.so.6:
undefined symbol: _XShmQueryExtension
ERROR: Failed loading XRRQueryVersion: /usr/lib/libX11.so.6: undefined
symbol: _XRRQueryVersion
ERROR: Failed loading XRRQueryVersion: /usr/lib/libXext.so.6:
undefined symbol: _XRRQueryVersion
ERROR: Failed loading XRRGetScreenInfo: /usr/lib/libX11.so.6:
undefined symbol: _XRRGetScreenInfo
ERROR: Failed loading XRRGetScreenInfo: /usr/lib/libXext.so.6:
undefined symbol: _XRRGetScreenInfo
ERROR: Failed loading XRRConfigCurrentConfiguration:
/usr/lib/libX11.so.6: undefined symbol: _XRRConfigCurrentConfiguration
ERROR: Failed loading XRRConfigCurrentConfiguration:
/usr/lib/libXext.so.6: undefined symbol:
_XRRConfigCurrentConfiguration
ERROR: Failed loading XRRConfigCurrentRate: /usr/lib/libX11.so.6:
undefined symbol: _XRRConfigCurrentRate
ERROR: Failed loading XRRConfigCurrentRate: /usr/lib/libXext.so.6:
undefined symbol: _XRRConfigCurrentRate
ERROR: Failed loading XRRConfigRates: /usr/lib/libX11.so.6: undefined
symbol: _XRRConfigRates
ERROR: Failed loading XRRConfigRates: /usr/lib/libXext.so.6: undefined
symbol: _XRRConfigRates
ERROR: Failed loading XRRConfigSizes: /usr/lib/libX11.so.6: undefined
symbol: _XRRConfigSizes
ERROR: Failed loading XRRConfigSizes: /usr/lib/libXext.so.6: undefined
symbol: _XRRConfigSizes
ERROR: Failed loading XRRSetScreenConfigAndRate: /usr/lib/libX11.so.6:
undefined symbol: _XRRSetScreenConfigAndRate
ERROR: Failed loading XRRSetScreenConfigAndRate:
/usr/lib/libXext.so.6: undefined symbol: _XRRSetScreenConfigAndRate
ERROR: Failed loading XRRFreeScreenConfigInfo: /usr/lib/libX11.so.6:
undefined symbol: _XRRFreeScreenConfigInfo
ERROR: Failed loading XRRFreeScreenConfigInfo: /usr/lib/libXext.so.6:
undefined symbol: _XRRFreeScreenConfigInfo
ERROR: Failed loading XListInputDevices: /usr/lib/libX11.so.6:
undefined symbol: _XListInputDevices
ERROR: Failed loading XListInputDevices: /usr/lib/libXext.so.6:
undefined symbol: _XListInputDevices
ERROR: Failed loading XListInputDevices: /usr/lib/libXrandr.so.2:
undefined symbol: _XListInputDevices
ERROR: Failed loading XFreeDeviceList: /usr/lib/libX11.so.6: undefined
symbol: _XFreeDeviceList
ERROR: Failed loading XFreeDeviceList: /usr/lib/libXext.so.6:
undefined symbol: _XFreeDeviceList
ERROR: Failed loading XFreeDeviceList: /usr/lib/libXrandr.so.2:
undefined symbol: _XFreeDeviceList
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libX11.so.6:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libXext.so.6:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libXrandr.so.2:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XOpenDevice: /usr/lib/libX11.so.6: undefined
symbol: _XOpenDevice
ERROR: Failed loading XOpenDevice: /usr/lib/libXext.so.6: undefined
symbol: _XOpenDevice
ERROR: Failed loading XOpenDevice: /usr/lib/libXrandr.so.2: undefined
symbol: _XOpenDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libX11.so.6: undefined
symbol: _XCloseDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libXext.so.6: undefined
symbol: _XCloseDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libXrandr.so.2: undefined
symbol: _XCloseDevice
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libX11.so.6: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libXext.so.6: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libXrandr.so.2: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libX11.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libXext.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion:
/usr/lib/libXrandr.so.2: undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libX11.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXext.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXrandr.so.2:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XShapeCombineMask: /usr/lib/libX11.so.6:
undefined symbol: _XShapeCombineMask
INFO: OpenGL shaders: DISABLED
INFO: Created renderer: opengl
84.56 frames per secondOn Tue, Feb 15, 2011 at 16:24, Sam Lantinga wrote:

On Mon, Feb 14, 2011 at 8:12 PM, Greg Jandl <@Greg_Jandl> wrote:

This past week I finally got fed up with Windows and fled back to
Linux on my netbook. It’s been a breath of fresh air. Or at least it
was, until I found a few minutes to start getting my dev environment
set up.

Much to my dismay, after pulling down latest SDL-1.3, I’m finding
very jerky updates in testsprite2. I intend to dig in to it when I
get a chance, but thought it’d be worth asking if anyone else is
seeing (or has seen) similar behavior.

Commented out everything (including the event polling) except the main
sprite updates, with no effect. After adding some instrumentation, I’m
finding that my fps rate ranges from a min of ~38 to a max of ~82,
with the fps over the full run closer to the max, ~80 fps.

I’ve verified that DRI is enabled, and glxgears runs smoothly at ~62
fps (it’s locked to vsync).

I’m running Ubuntu Maverick, and have tried both gcc 4.4 and 4.5, with
no difference in behavior.


Do what you can, where you are, with what you have. - T. Roosevelt


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


? ? -Sam Lantinga, Founder and CEO, Galaxy Gameworks


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


Do what you can, where you are, with what you have. - T. Roosevelt

The undefined symbol errors are spurious and that’s fine.

I’m surprised it’s picking the OpenGL renderer. What’s the output of
testgl?

What do you get with testsprite2 --renderer software ?On Tue, Feb 15, 2011 at 2:39 PM, Greg Jandl <greg.jandl at gmail.com> wrote:

On Tue, Feb 15, 2011 at 16:24, Sam Lantinga <@slouken> wrote:

It sounds like there’s only one CPU and there’s fighting between the X
server and the application.

Yup - one CPU (1.6GHz Atom w/HT)

What is the output with --log all ?

Hadn’t tried that yet. Wow … lots more errors that I would have expected:

gregj at bluemoon:~/Projects/upstream/SDL-1.3/test$ ./testsprite2 --log all
ERROR: Failed loading XMissingExtension: /usr/lib/libX11.so.6:
undefined symbol: _XMissingExtension
ERROR: Failed loading XextAddDisplay: /usr/lib/libX11.so.6: undefined
symbol: _XextAddDisplay
ERROR: Failed loading XextCreateExtension: /usr/lib/libX11.so.6:
undefined symbol: _XextCreateExtension
ERROR: Failed loading XextDestroyExtension: /usr/lib/libX11.so.6:
undefined symbol: _XextDestroyExtension
ERROR: Failed loading XextFindDisplay: /usr/lib/libX11.so.6: undefined
symbol: _XextFindDisplay
ERROR: Failed loading XextRemoveDisplay: /usr/lib/libX11.so.6:
undefined symbol: _XextRemoveDisplay
ERROR: Failed loading XSetExtensionErrorHandler: /usr/lib/libX11.so.6:
undefined symbol: _XSetExtensionErrorHandler
ERROR: Failed loading XShmAttach: /usr/lib/libX11.so.6: undefined
symbol: _XShmAttach
ERROR: Failed loading XShmDetach: /usr/lib/libX11.so.6: undefined
symbol: _XShmDetach
ERROR: Failed loading XShmPutImage: /usr/lib/libX11.so.6: undefined
symbol: _XShmPutImage
ERROR: Failed loading XShmCreateImage: /usr/lib/libX11.so.6: undefined
symbol: _XShmCreateImage
ERROR: Failed loading XShmCreatePixmap: /usr/lib/libX11.so.6:
undefined symbol: _XShmCreatePixmap
ERROR: Failed loading XShmQueryExtension: /usr/lib/libX11.so.6:
undefined symbol: _XShmQueryExtension
ERROR: Failed loading XRRQueryVersion: /usr/lib/libX11.so.6: undefined
symbol: _XRRQueryVersion
ERROR: Failed loading XRRQueryVersion: /usr/lib/libXext.so.6:
undefined symbol: _XRRQueryVersion
ERROR: Failed loading XRRGetScreenInfo: /usr/lib/libX11.so.6:
undefined symbol: _XRRGetScreenInfo
ERROR: Failed loading XRRGetScreenInfo: /usr/lib/libXext.so.6:
undefined symbol: _XRRGetScreenInfo
ERROR: Failed loading XRRConfigCurrentConfiguration:
/usr/lib/libX11.so.6: undefined symbol: _XRRConfigCurrentConfiguration
ERROR: Failed loading XRRConfigCurrentConfiguration:
/usr/lib/libXext.so.6: undefined symbol:
_XRRConfigCurrentConfiguration
ERROR: Failed loading XRRConfigCurrentRate: /usr/lib/libX11.so.6:
undefined symbol: _XRRConfigCurrentRate
ERROR: Failed loading XRRConfigCurrentRate: /usr/lib/libXext.so.6:
undefined symbol: _XRRConfigCurrentRate
ERROR: Failed loading XRRConfigRates: /usr/lib/libX11.so.6: undefined
symbol: _XRRConfigRates
ERROR: Failed loading XRRConfigRates: /usr/lib/libXext.so.6: undefined
symbol: _XRRConfigRates
ERROR: Failed loading XRRConfigSizes: /usr/lib/libX11.so.6: undefined
symbol: _XRRConfigSizes
ERROR: Failed loading XRRConfigSizes: /usr/lib/libXext.so.6: undefined
symbol: _XRRConfigSizes
ERROR: Failed loading XRRSetScreenConfigAndRate: /usr/lib/libX11.so.6:
undefined symbol: _XRRSetScreenConfigAndRate
ERROR: Failed loading XRRSetScreenConfigAndRate:
/usr/lib/libXext.so.6: undefined symbol: _XRRSetScreenConfigAndRate
ERROR: Failed loading XRRFreeScreenConfigInfo: /usr/lib/libX11.so.6:
undefined symbol: _XRRFreeScreenConfigInfo
ERROR: Failed loading XRRFreeScreenConfigInfo: /usr/lib/libXext.so.6:
undefined symbol: _XRRFreeScreenConfigInfo
ERROR: Failed loading XListInputDevices: /usr/lib/libX11.so.6:
undefined symbol: _XListInputDevices
ERROR: Failed loading XListInputDevices: /usr/lib/libXext.so.6:
undefined symbol: _XListInputDevices
ERROR: Failed loading XListInputDevices: /usr/lib/libXrandr.so.2:
undefined symbol: _XListInputDevices
ERROR: Failed loading XFreeDeviceList: /usr/lib/libX11.so.6: undefined
symbol: _XFreeDeviceList
ERROR: Failed loading XFreeDeviceList: /usr/lib/libXext.so.6:
undefined symbol: _XFreeDeviceList
ERROR: Failed loading XFreeDeviceList: /usr/lib/libXrandr.so.2:
undefined symbol: _XFreeDeviceList
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libX11.so.6:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libXext.so.6:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libXrandr.so.2:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XOpenDevice: /usr/lib/libX11.so.6: undefined
symbol: _XOpenDevice
ERROR: Failed loading XOpenDevice: /usr/lib/libXext.so.6: undefined
symbol: _XOpenDevice
ERROR: Failed loading XOpenDevice: /usr/lib/libXrandr.so.2: undefined
symbol: _XOpenDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libX11.so.6: undefined
symbol: _XCloseDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libXext.so.6: undefined
symbol: _XCloseDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libXrandr.so.2: undefined
symbol: _XCloseDevice
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libX11.so.6: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libXext.so.6: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libXrandr.so.2: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libX11.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libXext.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion:
/usr/lib/libXrandr.so.2: undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libX11.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXext.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXrandr.so.2:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XShapeCombineMask: /usr/lib/libX11.so.6:
undefined symbol: _XShapeCombineMask
ERROR: Failed loading XMissingExtension: /usr/lib/libX11.so.6:
undefined symbol: _XMissingExtension
ERROR: Failed loading XextAddDisplay: /usr/lib/libX11.so.6: undefined
symbol: _XextAddDisplay
ERROR: Failed loading XextCreateExtension: /usr/lib/libX11.so.6:
undefined symbol: _XextCreateExtension
ERROR: Failed loading XextDestroyExtension: /usr/lib/libX11.so.6:
undefined symbol: _XextDestroyExtension
ERROR: Failed loading XextFindDisplay: /usr/lib/libX11.so.6: undefined
symbol: _XextFindDisplay
ERROR: Failed loading XextRemoveDisplay: /usr/lib/libX11.so.6:
undefined symbol: _XextRemoveDisplay
ERROR: Failed loading XSetExtensionErrorHandler: /usr/lib/libX11.so.6:
undefined symbol: _XSetExtensionErrorHandler
ERROR: Failed loading XShmAttach: /usr/lib/libX11.so.6: undefined
symbol: _XShmAttach
ERROR: Failed loading XShmDetach: /usr/lib/libX11.so.6: undefined
symbol: _XShmDetach
ERROR: Failed loading XShmPutImage: /usr/lib/libX11.so.6: undefined
symbol: _XShmPutImage
ERROR: Failed loading XShmCreateImage: /usr/lib/libX11.so.6: undefined
symbol: _XShmCreateImage
ERROR: Failed loading XShmCreatePixmap: /usr/lib/libX11.so.6:
undefined symbol: _XShmCreatePixmap
ERROR: Failed loading XShmQueryExtension: /usr/lib/libX11.so.6:
undefined symbol: _XShmQueryExtension
ERROR: Failed loading XRRQueryVersion: /usr/lib/libX11.so.6: undefined
symbol: _XRRQueryVersion
ERROR: Failed loading XRRQueryVersion: /usr/lib/libXext.so.6:
undefined symbol: _XRRQueryVersion
ERROR: Failed loading XRRGetScreenInfo: /usr/lib/libX11.so.6:
undefined symbol: _XRRGetScreenInfo
ERROR: Failed loading XRRGetScreenInfo: /usr/lib/libXext.so.6:
undefined symbol: _XRRGetScreenInfo
ERROR: Failed loading XRRConfigCurrentConfiguration:
/usr/lib/libX11.so.6: undefined symbol: _XRRConfigCurrentConfiguration
ERROR: Failed loading XRRConfigCurrentConfiguration:
/usr/lib/libXext.so.6: undefined symbol:
_XRRConfigCurrentConfiguration
ERROR: Failed loading XRRConfigCurrentRate: /usr/lib/libX11.so.6:
undefined symbol: _XRRConfigCurrentRate
ERROR: Failed loading XRRConfigCurrentRate: /usr/lib/libXext.so.6:
undefined symbol: _XRRConfigCurrentRate
ERROR: Failed loading XRRConfigRates: /usr/lib/libX11.so.6: undefined
symbol: _XRRConfigRates
ERROR: Failed loading XRRConfigRates: /usr/lib/libXext.so.6: undefined
symbol: _XRRConfigRates
ERROR: Failed loading XRRConfigSizes: /usr/lib/libX11.so.6: undefined
symbol: _XRRConfigSizes
ERROR: Failed loading XRRConfigSizes: /usr/lib/libXext.so.6: undefined
symbol: _XRRConfigSizes
ERROR: Failed loading XRRSetScreenConfigAndRate: /usr/lib/libX11.so.6:
undefined symbol: _XRRSetScreenConfigAndRate
ERROR: Failed loading XRRSetScreenConfigAndRate:
/usr/lib/libXext.so.6: undefined symbol: _XRRSetScreenConfigAndRate
ERROR: Failed loading XRRFreeScreenConfigInfo: /usr/lib/libX11.so.6:
undefined symbol: _XRRFreeScreenConfigInfo
ERROR: Failed loading XRRFreeScreenConfigInfo: /usr/lib/libXext.so.6:
undefined symbol: _XRRFreeScreenConfigInfo
ERROR: Failed loading XListInputDevices: /usr/lib/libX11.so.6:
undefined symbol: _XListInputDevices
ERROR: Failed loading XListInputDevices: /usr/lib/libXext.so.6:
undefined symbol: _XListInputDevices
ERROR: Failed loading XListInputDevices: /usr/lib/libXrandr.so.2:
undefined symbol: _XListInputDevices
ERROR: Failed loading XFreeDeviceList: /usr/lib/libX11.so.6: undefined
symbol: _XFreeDeviceList
ERROR: Failed loading XFreeDeviceList: /usr/lib/libXext.so.6:
undefined symbol: _XFreeDeviceList
ERROR: Failed loading XFreeDeviceList: /usr/lib/libXrandr.so.2:
undefined symbol: _XFreeDeviceList
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libX11.so.6:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libXext.so.6:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XSelectExtensionEvent: /usr/lib/libXrandr.so.2:
undefined symbol: _XSelectExtensionEvent
ERROR: Failed loading XOpenDevice: /usr/lib/libX11.so.6: undefined
symbol: _XOpenDevice
ERROR: Failed loading XOpenDevice: /usr/lib/libXext.so.6: undefined
symbol: _XOpenDevice
ERROR: Failed loading XOpenDevice: /usr/lib/libXrandr.so.2: undefined
symbol: _XOpenDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libX11.so.6: undefined
symbol: _XCloseDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libXext.so.6: undefined
symbol: _XCloseDevice
ERROR: Failed loading XCloseDevice: /usr/lib/libXrandr.so.2: undefined
symbol: _XCloseDevice
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libX11.so.6: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libXext.so.6: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension:
/usr/lib/libXrandr.so.2: undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryExtension: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverQueryExtension
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libX11.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libXext.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion:
/usr/lib/libXrandr.so.2: undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverQueryVersion: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverQueryVersion
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libX11.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXext.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXrandr.so.2:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XScreenSaverSuspend: /usr/lib/libXi.so.6:
undefined symbol: _XScreenSaverSuspend
ERROR: Failed loading XShapeCombineMask: /usr/lib/libX11.so.6:
undefined symbol: _XShapeCombineMask
INFO: OpenGL shaders: DISABLED
INFO: Created renderer: opengl
84.56 frames per second

On Mon, Feb 14, 2011 at 8:12 PM, Greg Jandl <greg.jandl at gmail.com> wrote:

This past week I finally got fed up with Windows and fled back to
Linux on my netbook. It’s been a breath of fresh air. Or at least it
was, until I found a few minutes to start getting my dev environment
set up.

Much to my dismay, after pulling down latest SDL-1.3, I’m finding
very jerky updates in testsprite2. I intend to dig in to it when I
get a chance, but thought it’d be worth asking if anyone else is
seeing (or has seen) similar behavior.

Commented out everything (including the event polling) except the main
sprite updates, with no effect. After adding some instrumentation, I’m
finding that my fps rate ranges from a min of ~38 to a max of ~82,
with the fps over the full run closer to the max, ~80 fps.

I’ve verified that DRI is enabled, and glxgears runs smoothly at ~62
fps (it’s locked to vsync).

I’m running Ubuntu Maverick, and have tried both gcc 4.4 and 4.5, with
no difference in behavior.


Do what you can, where you are, with what you have. - T. Roosevelt


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


-Sam Lantinga, Founder and CEO, Galaxy Gameworks


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


Do what you can, where you are, with what you have. - T. Roosevelt


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


-Sam Lantinga, Founder and CEO, Galaxy Gameworks

The undefined symbol errors are spurious and that’s fine.

I’m surprised it’s picking the OpenGL renderer.? What’s the output of
testgl?

gregj at bluemoon:~/Projects/upstream/SDL-1.3/test$ ./testgl
Screen BPP: 16

Vendor : Tungsten Graphics, Inc
Renderer : Mesa DRI Intel® 945GME GEM 20100330 DEVELOPMENT x86/MMX/SSE2
Version : 1.4 Mesa 7.9-devel
Extensions : GL_ARB_copy_buffer GL_ARB_depth_texture
GL_ARB_draw_buffers GL_ARB_draw_elements_base_vertex
GL_ARB_fragment_program GL_ARB_half_float_pixel
GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture
GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite
GL_ARB_provoking_vertex GL_ARB_shader_objects
GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_sync
GL_ARB_texture_border_clamp GL_ARB_texture_compression
GL_ARB_texture_cube_map GL_ARB_texture_env_add
GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar
GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat
GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle
GL_ARB_transpose_matrix GL_ARB_vertex_array_object
GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader
GL_ARB_window_pos GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color
GL_EXT_blend_equation_separate GL_EXT_blend_func_separate
GL_EXT_blend_logic_op GL_EXT_blend_minmax GL_EXT_blend_subtract
GL_EXT_cull_vertex GL_EXT_compiled_vertex_array GL_EXT_copy_texture
GL_EXT_draw_range_elements GL_EXT_framebuffer_blit
GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object
GL_EXT_fog_coord GL_EXT_gpu_program_parameters
GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil
GL_EXT_packed_pixels GL_EXT_pixel_buffer_object
GL_EXT_point_parameters GL_EXT_polygon_offset GL_EXT_provoking_vertex
GL_EXT_rescale_normal GL_EXT_secondary_color
GL_EXT_separate_specular_color GL_EXT_shadow_funcs
GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_subtexture
GL_EXT_texture GL_EXT_texture3D GL_EXT_texture_cube_map
GL_EXT_texture_edge_clamp GL_EXT_texture_env_add
GL_EXT_texture_env_combine GL_EXT_texture_env_dot3
GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias
GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_vertex_array
GL_3DFX_texture_compression_FXT1 GL_APPLE_client_storage
GL_APPLE_packed_pixels GL_APPLE_vertex_array_object
GL_APPLE_object_purgeable GL_ATI_blend_equation_separate
GL_ATI_texture_env_combine3 GL_ATI_separate_stencil
GL_IBM_multimode_draw_arrays GL_IBM_rasterpos_clip
GL_IBM_texture_mirrored_repeat GL_INGR_blend_func_separate
GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_MESA_window_pos
GL_NV_blend_square GL_NV_light_max_exponent GL_NV_packed_depth_stencil
GL_NV_texgen_reflection GL_NV_texture_env_combine4
GL_NV_texture_rectangle GL_NV_vertex_program GL_NV_vertex_program1_1
GL_OES_read_format GL_SGIS_generate_mipmap
GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp
GL_SGIS_texture_lod GL_SUN_multi_draw_arrays GL_OES_EGL_image

SDL_GL_RED_SIZE: requested 5, got 8
SDL_GL_GREEN_SIZE: requested 5, got 8
SDL_GL_BLUE_SIZE: requested 5, got 8
SDL_GL_DEPTH_SIZE: requested 16, got 24
SDL_GL_DOUBLEBUFFER: requested 1, got 1
app gained mouse focus
app gained input focus
key ‘Escape’ pressed
216.73 FPS

What do you get with testsprite2 --renderer software ?

Also jerky as heck, but faster?!

gregj at bluemoon:~/Projects/upstream/SDL-1.3/test$ ./testsprite2
–renderer software
186.46 frames per second
gregj at bluemoon:~/Projects/upstream/SDL-1.3/test$ ./testsprite2 --renderer opengl
82.48 frames per secondOn Tue, Feb 15, 2011 at 16:49, Sam Lantinga wrote:


Do what you can, where you are, with what you have. - T. Roosevelt

I bet if you add SDL_Delay(1) to the main loop it’ll even things out by
yielding the CPU to the X server.On Tue, Feb 15, 2011 at 3:40 PM, Greg Jandl <greg.jandl at gmail.com> wrote:

On Tue, Feb 15, 2011 at 16:49, Sam Lantinga <@slouken> wrote:

The undefined symbol errors are spurious and that’s fine.

I’m surprised it’s picking the OpenGL renderer. What’s the output of
testgl?

gregj at bluemoon:~/Projects/upstream/SDL-1.3/test$ ./testgl
Screen BPP: 16

Vendor : Tungsten Graphics, Inc
Renderer : Mesa DRI Intel® 945GME GEM 20100330 DEVELOPMENT x86/MMX/SSE2
Version : 1.4 Mesa 7.9-devel
Extensions : GL_ARB_copy_buffer GL_ARB_depth_texture
GL_ARB_draw_buffers GL_ARB_draw_elements_base_vertex
GL_ARB_fragment_program GL_ARB_half_float_pixel
GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture
GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite
GL_ARB_provoking_vertex GL_ARB_shader_objects
GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_sync
GL_ARB_texture_border_clamp GL_ARB_texture_compression
GL_ARB_texture_cube_map GL_ARB_texture_env_add
GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar
GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat
GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle
GL_ARB_transpose_matrix GL_ARB_vertex_array_object
GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader
GL_ARB_window_pos GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color
GL_EXT_blend_equation_separate GL_EXT_blend_func_separate
GL_EXT_blend_logic_op GL_EXT_blend_minmax GL_EXT_blend_subtract
GL_EXT_cull_vertex GL_EXT_compiled_vertex_array GL_EXT_copy_texture
GL_EXT_draw_range_elements GL_EXT_framebuffer_blit
GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object
GL_EXT_fog_coord GL_EXT_gpu_program_parameters
GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil
GL_EXT_packed_pixels GL_EXT_pixel_buffer_object
GL_EXT_point_parameters GL_EXT_polygon_offset GL_EXT_provoking_vertex
GL_EXT_rescale_normal GL_EXT_secondary_color
GL_EXT_separate_specular_color GL_EXT_shadow_funcs
GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_subtexture
GL_EXT_texture GL_EXT_texture3D GL_EXT_texture_cube_map
GL_EXT_texture_edge_clamp GL_EXT_texture_env_add
GL_EXT_texture_env_combine GL_EXT_texture_env_dot3
GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias
GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_vertex_array
GL_3DFX_texture_compression_FXT1 GL_APPLE_client_storage
GL_APPLE_packed_pixels GL_APPLE_vertex_array_object
GL_APPLE_object_purgeable GL_ATI_blend_equation_separate
GL_ATI_texture_env_combine3 GL_ATI_separate_stencil
GL_IBM_multimode_draw_arrays GL_IBM_rasterpos_clip
GL_IBM_texture_mirrored_repeat GL_INGR_blend_func_separate
GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_MESA_window_pos
GL_NV_blend_square GL_NV_light_max_exponent GL_NV_packed_depth_stencil
GL_NV_texgen_reflection GL_NV_texture_env_combine4
GL_NV_texture_rectangle GL_NV_vertex_program GL_NV_vertex_program1_1
GL_OES_read_format GL_SGIS_generate_mipmap
GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp
GL_SGIS_texture_lod GL_SUN_multi_draw_arrays GL_OES_EGL_image

SDL_GL_RED_SIZE: requested 5, got 8
SDL_GL_GREEN_SIZE: requested 5, got 8
SDL_GL_BLUE_SIZE: requested 5, got 8
SDL_GL_DEPTH_SIZE: requested 16, got 24
SDL_GL_DOUBLEBUFFER: requested 1, got 1
app gained mouse focus
app gained input focus
key ‘Escape’ pressed
216.73 FPS

What do you get with testsprite2 --renderer software ?

Also jerky as heck, but faster?!

gregj at bluemoon:~/Projects/upstream/SDL-1.3/test$ ./testsprite2
–renderer software
186.46 frames per second
gregj at bluemoon:~/Projects/upstream/SDL-1.3/test$ ./testsprite2 --renderer
opengl
82.48 frames per second


Do what you can, where you are, with what you have. - T. Roosevelt


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


-Sam Lantinga, Founder and CEO, Galaxy Gameworks

Speaking of which, is that guaranteed to work as intended now?

IIRC, with SDL 1.2, anything below 10 could potentially result in a busy-wait,
depending on the system at hand. (Linux with 100 Hz “jiffies”, for example.)

The behavior with a 0 argument was “undefined”; no effect on Un*x systems, and
Sleep(0) on Win32, which corresponds to sched_yield().

In my EEL wrapper for SDL 1.2, I added a sched_yield() for a 0 delay on Un*x
platforms, to have it behave like the Win32 call.

Maybe you need to do other things on other platforms, but this seems to have
the intended effect of looking less like a CPU hog on Win32 and Linux at
least. It can make a big difference on uniprocessor, single core systems when
there is any background activity.On Wednesday 16 February 2011, at 00.53.54, Sam Lantinga wrote:

I bet if you add SDL_Delay(1) to the main loop it’ll even things out by
yielding the CPU to the X server.


//David Olofson - Consultant, Developer, Artist, Open Source Advocate

.— Games, examples, libraries, scripting, sound, music, graphics —.
| http://consulting.olofson.net http://olofsonarcade.com |
’---------------------------------------------------------------------’

I tried that, to no avail.

However, David Olofson seems to have hit upon at least part of the
issue - I had forgottn about the timing differences between Linux and
Windows. When I change the delay from 1 to 10, I get much smoother
performance. Sadly, that drops the fps in OpenGL to around 53 fps.
Also, it’s still not entirely smooth, though much better!

As I said, I’ve been away from Linux (at least on the desktop, as I
spend most of my day job coding on embedded Linux) for quite a while,
but I don’t remember having trouble getting smooth screen updates.
I’ll have to reeducate myself, obviously!

I tried one last thing: when I add --vsync (and no delay), I get 59.5
fps, and mostly smoother animation than with the delay. Still gets
occasional larger stutters that way, though.

Not sure what the best way to go might be - what do others using
SDL1.3 on Linux do to keep updates smooth?On Tue, Feb 15, 2011 at 17:53, Sam Lantinga wrote:

I bet if you add SDL_Delay(1) to the main loop it’ll even things out by
yielding the CPU to the X server.


Do what you can, where you are, with what you have. - T. Roosevelt