glamor_poly_text8

Keith Packard keithp at keithp.com
Tue Mar 4 05:54:20 PST 2014


Keith Packard <keithp at keithp.com> writes:

> I've started writing some "optimized" poly text code for glamor; the
> current results aren't working right (it paints the wrong pixels), and
> the performance sucks. But, at least the CPU is almost entirely idle.

Ok, that poor performance is just an artifact of Xephyr screen updates
and the smart scheduler interacting badly. I'm now running Xephyr with:

$ ./Xephyr :1 -retro -screen 1024x768 -schedMax 1000

I've finished all of the text interfaces now and performance is
reasonably good. Here's -ftext -fitext -aftext for comparison:

32000000 reps @   0.0002 msec (6130000.0/sec): Char in 80-char line (6x13)
32000000 reps @   0.0002 msec (6150000.0/sec): Char in 80-char line (6x13)
32000000 reps @   0.0002 msec (6210000.0/sec): Char in 80-char line (6x13)
32000000 reps @   0.0002 msec (6230000.0/sec): Char in 80-char line (6x13)
32000000 reps @   0.0002 msec (6230000.0/sec): Char in 80-char line (6x13)
160000000 trep @   0.0002 msec (6190000.0/sec): Char in 80-char line (6x13)

32000000 reps @   0.0002 msec (5990000.0/sec): Char in 80-char image line (6x13)
32000000 reps @   0.0002 msec (6110000.0/sec): Char in 80-char image line (6x13)
32000000 reps @   0.0002 msec (5950000.0/sec): Char in 80-char image line (6x13)
32000000 reps @   0.0002 msec (5570000.0/sec): Char in 80-char image line (6x13)
32000000 reps @   0.0002 msec (5610000.0/sec): Char in 80-char image line (6x13)
160000000 trep @   0.0002 msec (5840000.0/sec): Char in 80-char image line (6x13)

The rendering for x11perf looks correct, but other clients still have
occasional issues.

The CPU is saturated at this rate, and the GPU is about 66%
occupied. I suspect both bits of code could get some speed ups, although
correctness will be the first plan.

For comparison, here's the same x11perf run without the -glamor flag

48000000 reps @   0.0001 msec (9150000.0/sec): Char in 80-char line (6x13)
48000000 reps @   0.0001 msec (9090000.0/sec): Char in 80-char line (6x13)
48000000 reps @   0.0001 msec (9120000.0/sec): Char in 80-char line (6x13)
48000000 reps @   0.0001 msec (9140000.0/sec): Char in 80-char line (6x13)
48000000 reps @   0.0001 msec (8890000.0/sec): Char in 80-char line (6x13)
240000000 trep @   0.0001 msec (9080000.0/sec): Char in 80-char line (6x13)

48000000 reps @   0.0001 msec (8230000.0/sec): Char in 80-char image line (6x13)
48000000 reps @   0.0001 msec (8230000.0/sec): Char in 80-char image line (6x13)
48000000 reps @   0.0001 msec (8210000.0/sec): Char in 80-char image line (6x13)
48000000 reps @   0.0001 msec (8260000.0/sec): Char in 80-char image line (6x13)
48000000 reps @   0.0001 msec (8230000.0/sec): Char in 80-char image line (6x13)
240000000 trep @   0.0001 msec (8230000.0/sec): Char in 80-char image line (6x13)


So, glamor is about 2/3 the performance of software, and that's after
only a few hours of coding by someone who has (literally) never written
a GLSL program before today.

-- 
keith.packard at intel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 810 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20140304/f604404d/attachment.pgp>


More information about the xorg-devel mailing list