Re: Re: how to write snappy benchmark?

Allen Akin <[email protected]>
Newsgroups gmane.comp.xfree86.forum
Message-ID <[email protected]>
On Sun, Jul 06, 2003 at 03:14:13PM -0700, Mark Vojkovich wrote:
| > * Assuming the apps are capable of redrawing quickly enough to maintain
| > interactivity, and the scheduler gives them time to do so. 
| 
|    I think if that were true we wouldn't be having this discussion.

Possibly.  It's important to know exactly why things are misbehaving
now, and I haven't heard consensus on that yet.

It's not due to lack of horsepower in the graphics subsystem, for
several reasons including:  (1) Most 3D scenes in games are vastly more
expensive to render than the typical GUI, yet are rendered with
excellent responsiveness.  (2) Windows often seems faster when running
on the same hardware.

There may be scheduler issues.  Alan said:

	The 2.4-ac tree has the O(1) scheduler as has stuff like Red
	Hat.

My Ti4200 machine running RH 2.4.20-18.9 isn't noticeably snappier than
before, so I don't know what's up there, yet.

And of course if some critical drawing operation isn't accelerated,
there goes the ballgame.  RENDER does add some risk in that respect.

But I suspect it's mostly due to the toolkits and window managers being
based on abstractions that optimize for goals other than performance.
Those of you who have used Open Inventor and Performer, two high-level
toolkits that yield significantly different performance for similar
scenes running on the same hardware, know what I have in mind.  But
without more hard data that's just a guess based on experience.

I brought up the subject of double-buffered displays without per-window
backing store because the backing store just papers over the real
problem, and costs a fair amount of memory in the bargain.  As you said,
if the apps take a long time to render, you're still stuck looking at a
stale image for a noticeable amount of time.

|    Most OpenGL apps are the types of apps that don't need to handle
| expose events.  And it's a good thing too, because they'd probably
| suck at it.

In the IrisGL days, many apps were based on a simple model a lot like
games:  Render continuously, and structure your pipeline so that there's
no more than one frame of latency between an input and the first drawing
command issued in response to it.  Exposure events were irrelevant.
Rendering was always double-buffered and there was no expensive backing
store per-window.  Those apps updated the screen cleanly, were extremely
snappy, and were a joy to use.

Most current OpenGL apps wait for exposure events so that they're not
burning CPU cycles unnecessarily.  But if they're otherwise structured
in a similar way, and they're dispatched quickly enough, there's no
fundamental difference between them and the old IrisGL apps.  If such an
app can render a scene in a frame time, it feels fast.  There's nothing
special about the API used for drawing, so I don't see why OpenGL apps
would be any worse than Xlib-based apps or apps using any other
reasonable accelerated API.

Allen
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.