Skip to content
  • Danylo Piliaiev's avatar
    turnip: implement indirect dispatch · 5331b1d9
    Danylo Piliaiev authored
    
    
    Vulkan guarantees only 4 byte alignment of offset for vkCmdDrawIndirect,
    while CP_LOAD_STATE.EXT_SRC_ADDR requires 16 byte alignment which
    makes us copy indirect parameters to a correctly aligned buffer.
    
    Blob does essentially the same but emits indirect CP_LOAD_STATE
    with src = SS6_UBO and EXT_SRC_ADDR = 0xe0000, and only for a
    first dispatch.
    
    Fixes:
    dEQP-VK.compute.indirect_dispatch.*
    
    Signed-off-by: default avatarDanylo Piliaiev <dpiliaiev@igalia.com>
    Part-of: <mesa/mesa!8444>
    5331b1d9