[PATCH] glamor: Remove shader-based trapezoid implementation. Fixes Bug 76213.

Keith Packard keithp at keithp.com
Wed Aug 6 21:57:14 PDT 2014


Keith Packard <keithp at keithp.com> writes:

> I can't find any performance benefit to using the GL path

Eric pointed out that reaching the shader path was much harder than I
thought, and in fact I wasn't measuring the shader path, I was just
measuring the sw path both times.. I went and hacked the code so that it
would use the shader path when drawing up to 1000 trapezoids, and even
in Precise mode just so that I could use x11perf -addaatrapezoid to
measure it:

1: trapezoid.shader
2: trapezoid.sw

       1                 2                 Operation
------------   -------------------------   -------------------------
     59700.0      3770000.0 (    63.149)   Fill 1x1 aa pre-added trapezoid 
     59700.0       605000.0 (    10.134)   Fill 10x10 aa pre-added trapezoid 
      5970.0        45800.0 (     7.672)   Fill 100x100 aa pre-added trapezoid 
      4660.0         5150.0 (     1.105)   Fill 300x300 aa pre-added trapezoid 

I think we can remove this code without any remorse.

However, XFCE is clearly broken in expecting what it drew to work.

 1. The trapezoid is self-intersecting ("bow tie"), for which the spec
    says:

    "Rendering of concave trapezoids is unspecified except that the
     result must obey the clipping rules."

 2. It requests Imprecise mode, which relaxes the rasterization rules.
    Expecting this bizarre set of trapezoids to draw something
    reasonable seems optimistic at best.

-- 
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/20140806/56e314de/attachment.sig>


More information about the xorg-devel mailing list