Skip to content
  • Faith Ekstrand's avatar
    anv,i965: Lower away image derefs in the driver · 09f1de97
    Faith Ekstrand authored
    
    
    Previously, the back-end compiler turn image access into magic uniform
    reads and there was a complex contract between back-end compiler and
    driver about setting up and filling out those params.  As of this
    commit, both drivers now lower image_deref_load_param_intel intrinsics
    to load_uniform intrinsics controlled by the driver and lower the other
    image_deref_* intrinsics to image_* intrinsics which take an actual
    binding table index.  There are still "magic" uniforms but they are now
    added and controlled entirely by the driver and that contract no longer
    spans components.
    
    This also has the side-effect of making most image use compile-time
    binding table indices.  Previously, all image access pulled the binding
    table index from a uniform.  Part of the reason for this was that the
    magic uniforms made it difficult to decouple binding table indices from
    the uniforms and, since they are indexed completely differently
    (especially in Vulkan), it was hard to pull them apart.  Now that the
    driver is handling both, it's trivial to decouple the two and provide
    actual binding table indices.
    
    Shader-db results on Kaby Lake:
    
        total instructions in shared programs: 15166872 -> 15164293 (-0.02%)
        instructions in affected programs: 115834 -> 113255 (-2.23%)
        helped: 191
        HURT: 0
    
        total cycles in shared programs: 571311495 -> 571196465 (-0.02%)
        cycles in affected programs: 4757115 -> 4642085 (-2.42%)
        helped: 73
        HURT: 67
    
        total spills in shared programs: 10951 -> 10926 (-0.23%)
        spills in affected programs: 742 -> 717 (-3.37%)
        helped: 7
        HURT: 0
    
        total fills in shared programs: 22226 -> 22201 (-0.11%)
        fills in affected programs: 1146 -> 1121 (-2.18%)
        helped: 7
        HURT: 0
    
    Reviewed-by: Kenneth Graunke's avatarKenneth Graunke <kenneth@whitecape.org>
    09f1de97