[Mesa-dev] [PATCH 2/2] i965: perf: reduce i965 binary size

Emil Velikov emil.l.velikov at gmail.com
Tue Mar 13 15:28:18 UTC 2018


On 13 March 2018 at 14:44, Lionel Landwerlin
<lionel.g.landwerlin at intel.com> wrote:
> Performance metric numbers are calculated the following way :
>
>    - out of the 256 bytes long OA reports, we accumulate the deltas
>      into an array of uint64_t
>
>    - the equations' generated code reads the accumulated uint64_t
>      deltas and normalizes them for a particular platforms
>
> Our hardware is such that a number of counters in the OA reports
> always return the same values (i.e. they're not programmable), and
> they return the same values even across generations, and as a result a
> number of equations are identical in different metric sets across
> different generations.
>
> Up to now we've kept the generated code of the equations separated in
> different files (per generation/GT), and didn't apply any
> factorization of the common equations. We could have make some
> improvement by reusing equations within a given metrics file, but we
> can go even further and reuse across generations (i.e. all files).
>
> This change changes the code generation to emit a single file in which
> we reuse equations emitted code based on the hash of equations'
> strings.
>
> Here are the savings in a meson build :
>
> Before :
>    $ du -sh build/src/mesa/drivers/dri/libmesa_dri_drivers.so
>    47M  build/src/mesa/drivers/dri/libmesa_dri_drivers.so
> After :
>    $ du -sh build/src/mesa/drivers/dri/libmesa_dri_drivers.so
>    43M  build/src/mesa/drivers/dri/libmesa_dri_drivers.so
>
Nice improvement!

FWIW, we tend to use `size' since it shows the actual text/data changes.

Can you please squash the following patch - it should address
autotools and android.
There should be a copy in your inbox.

https://patchwork.freedesktop.org/patch/210234/

With that, from build system POV the patch is
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>

Thanks
Emil


More information about the mesa-dev mailing list