[Mesa-dev] [PATCH v2] glsls: Modify exec_list to avoid strict-aliasing violations

Davin McCall davmac at davmac.org
Sun Jun 28 15:35:27 PDT 2015

On 26/06/15 14:53, Francisco Jerez wrote:

> [...]
> Your first approach seemed quite reasonable IMHO.  Were you able to
> measure any performance regression from it?
> Thanks.

When I run an apitrace replay of a Dota 2 trace [1] with 
LIBGL_ALWAYS_SOFTWARE and without the patch I get (averaged over 5 runs):

     Maximum Resident Set Size (kbytes): 4509696
     FPS: .9044752
     user time: 2467.306

("Maximum Resident Set Size" and user time are given by GNU "time". I'm 
not sure what it's really measuring, because this is a 32-bit system and 
I don't see how the maximum resident set could be > 4GB; "top" shows 
virt+res capping out at about 2.3GB. However I assume MRSS is at least 
giving some relative indication of memory use; the deviation wasn't too 

With the patch (again averaged over 5 runs):

     Maximum Resident Set Size: 4523622.4
     FPS: 0.9068524
     user time: 2457.506

So, "MRSS" has gone up a bit, but nothing else has changed 
significantly. I think that means memory use has slightly increased, but 
performance hasn't really changed.

I wanted to test with the Intel driver using INTEL_NO_HW, but I get a 
segfault when the patch is applied. Having checked over the patch 
several times, I think this might mean that it triggers a latent bug 
elsewhere, but I am still investigating that. V2 of the patch does not 
trigger this crash.

[1]  http://people.freedesktop.org/~anholt/dota_linux.trace

More information about the mesa-dev mailing list