Kenneth Graunke <kenn...@whitecape.org> writes: > Commit 33599433c7 began setting the texture swizzle mode to XYZ1 for > RED, RG, and RGB textures in order to force alpha to 1.0 in case we > actually stored the texture as RGBA. > > This had a unforseen performance implication: the shader precompile > assumes that the texture swizzle mode will be XYZW for non-shadow > sampler types. By setting it to XYZ1, this means every shader used with > a RED, RG, or RGB texture has to be recompiled. This is a very common > case. > > Unfortunately, there's no way to improve the precompile, since RGBA > textures still need XYZW, and there's no way to know by looking at > the shader source what texture formats might be used. > > However, we only need to smash alpha to 1.0 if the texture's memory > format actually has alpha bits. If not, the sampler already returns 1.0 > for us without any special swizzling. XRGB8888, for example, is a very > common case where this occurs. > > This partially fixes a performance regression since commit 33599433c7. > More work is required to fully fix it in all cases. This at least helps > Warsow.
Now that we have MESA_FORMAT_XBGR16161616_FLOAT and company, we could potentially make this conditional just die by using those formats.
pgpzWJJvQCiwz.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev