-
Rhys Perry authored
Instead of assuming scalar alignment for an attribute, we can use the required alignment of other attributes in a binding to expect a higher one. This uses the alignment of all attributes in the pipeline, not just the ones loaded. This can create slightly better code, but could break pipelines which relied on unused (and unaligned) attributes no being loaded. I don't think such pipelines are allowed by the spec. fossil-db (Sienna Cichlid): Totals from 44350 (30.32% of 146267) affected shaders: VGPRs: 1694464 -> 1700616 (+0.36%); split: -0.08%, +0.44% CodeSize: 60207184 -> 58093836 (-3.51%); split: -3.51%, +0.00% MaxWaves: 1175998 -> 1174948 (-0.09%); split: +0.02%, -0.11% Instrs: 11763444 -> 11458952 (-2.59%); split: -2.60%, +0.01% Latency: 70679612 -> 67062215 (-5.12%); split: -5.27%, +0.15% InvThroughput: 11482495 -> 11362911 (-1.04%); split: -1.20%, +0.16% VClause: 359459 -> 343248 (-4.51%); split: -6.36%, +1.85% SClause: 422404 -> 419229 (-0.75%); split: -1.17%, +0.42% Copies: 754384 -> 764368 (+1.32%); split: -1.74%, +3.06% Branches: 197472 -> 197474 (+0.00%); split: -0.03%, +0.03% PreVGPRs: 1215348 -> 1215503 (+0.01%) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <mesa/mesa!9007>
91f8f828