summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2017-12-02 22:32:59 -0800
committerJason Ekstrand <[email protected]>2017-12-08 15:43:25 -0800
commit3b34ed79f1dcc802d87191226a37f5d17cabbbc1 (patch)
treeacc817e7b6a49496824596828db3c93becf1f3db /src/intel/vulkan
parent597c194487ab4abe6dd3556faa4f0b8569336245 (diff)
i965/fs: Rewrite assign_constant_locations
This rewires the logic for assigning uniform locations to work in terms of "complex alignments". The basic idea is that, as we walk the list of instructions, we keep track of the alignment and continuity requirements of each slot and assert that the alignments all match up. We then use those alignments in the compaction stage to ensure that everything gets placed at a properly aligned register. The old mechanism handled alignments by special-casing each of the bit sizes and placing 64-bit values first followed by 32-bit values. The old scheme had the advantage of never leaving a hole since all the 64-bit values could be tightly packed and so could the 32-bit values. However, the new scheme has no type size special cases so it handles not only 32 and 64-bit types but should gracefully extend to 16 and 8-bit types as the need arises. Tested-by: Jose Maria Casanova Crespo <[email protected]> Reviewed-by: Topi Pohjolainen <[email protected]>
Diffstat (limited to 'src/intel/vulkan')
0 files changed, 0 insertions, 0 deletions