Kenneth Graunke <kenn...@whitecape.org> writes: > On 03/15/2013 04:54 PM, Eric Anholt wrote: >> 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. > > Absolutely - I believe the real fix is to use XRGB formats when > sampling, and ARGB formats when rendering. I'm pretty sure we have > formats for all of those now. We should do that. > > In the meantime, this patch improves things and is simple and easily > cherry-pickable...
Fair enough. Are there some big performance changes?
pgpgynby9VcZq.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev