[Mesa-dev] [PATCH] Implementing varying packing
Ian Romanick
idr at freedesktop.org
Tue Aug 16 14:25:16 PDT 2011
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 08/16/2011 08:28 AM, Dan McCabe wrote:
> On 08/16/2011 07:06 AM, vlj wrote:
>> From: Vincent Lejeune<vljn at ovi.com>
>>
>> This optimisation pass will look for and pack together float,
>> vec2, vec3 varyings in fragment shaders and transform the vertex
>> shader accordingly. It might improve performance depending on
>> the hardware.
>
> Do you have any quatitative data on performance improvements you have
> actually seen? What sort of perf improvements should we expect?
There are two cases where you could see benefit from this:
1. Shaders that are interpolation bound on architectures where
interpolation is not free (e.g., i965). Imagine a vertex shader that
passes through 16 float or vec2 values to the fragment shader, and the
fragment shader just adds them all together. It's a contrived example,
but that should be the best case scenario.
It would be interesting to see this measured in some real applications,
but, like I said, the benefits would be very hardware dependent.
2. Shaders that try to use more than 16 interpolated values. On i965
we'll reject a shader that uses 18 vec2 varyings, but that shader could
run on that hardware by packing to 9 vec4 varyings. We can also
encounter this in cases where the driver has to use one or more slots
for values that developers won't expect to count against the limit.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/
iEYEARECAAYFAk5K4DwACgkQX1gOwKyEAw9tsgCfeKTx1hHIT4xjEiSRRzlTezI+
ULIAoJPdzxv+FEvorDfrhMKajvIDzoL1
=ZLta
-----END PGP SIGNATURE-----
More information about the mesa-dev
mailing list