Skip to content
  • Marek Olšák's avatar
    gallium: split transfer_inline_write into buffer and texture callbacks · 1ffe77e7
    Marek Olšák authored
    
    
    to reduce the call indirections with u_resource_vtbl.
    
    The worst call tree you could get was:
      - u_transfer_inline_write_vtbl
        - u_default_transfer_inline_write
          - u_transfer_map_vtbl
            - driver_transfer_map
          - u_transfer_unmap_vtbl
            - driver_transfer_unmap
    
    That's 6 indirect calls. Some drivers only had 5. The goal is to have
    1 indirect call for drivers that care. The resource type can be determined
    statically at most call sites.
    
    The new interface is:
      pipe_context::buffer_subdata(ctx, resource, usage, offset, size, data)
      pipe_context::texture_subdata(ctx, resource, level, usage, box, data,
                                    stride, layer_stride)
    
    v2: fix whitespace, correct ilo's behavior
    
    Reviewed-by: default avatarNicolai Hähnle <nicolai.haehnle@amd.com>
    Acked-by: default avatarRoland Scheidegger <sroland@vmware.com>
    1ffe77e7