I have observed a shader that generates code like this: mov(16) g17<1>F 0.321569F { align1 1H }; cmp.ge.f0(16) g15<1>D -g10<8,8,1>F 0F { align1 1H }; and.nz.f0(16) null g15<8,8,1>D 1D { align1 1H compacted }; mov(16) g19<1>F 0.498039F { align1 1H }; mov(16) g21<1>F 0.223529F { align1 1H }; mov(16) g23<1>F 1F { align1 1H }; (-f0) sel(16) g120<1>F g17<8,8,1>F 0.12549F { align1 1H }; (-f0) sel(16) g122<1>F g19<8,8,1>F 0.27451F { align1 1H }; (-f0) sel(16) g124<1>F g21<8,8,1>F 0.192157F { align1 1H }; (-f0) sel(16) g126<1>F g23<8,8,1>F 0F { align1 1H }; If one set of literal constants were moved to push constants, we could save 4 instructions. The entire shader in question was only 15 instructions, so that would be worthwhile for that case. In other cases it may be more problematic.
Ian, is this still an issue, and if yes, could you attach an example shader?
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1467.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.