• Alexey Sheplyakov's avatar
    drm/panfrost: initial dual core group GPUs support · 6e55d273
    Alexey Sheplyakov authored
    On a dual core group GPUs (such as T628) fragment shading can be
    performed over all cores (because a fragment shader job doesn't
    need coherency between threads), however vertex shading requires
    to be run on the same core group as the tiler (which always lives
    in core group 0).
    
    As a first step to support T628 power on only the first core group
    (so no jobs are scheduled on the second one). This makes T628 look
    like every other Midgard GPU (and throws away up to half the cores).
    
    With this patch panfrost is able to drive T628 (r1p0) GPU on some
    armv8 SoCs (in particular BE-M1000). Without the patch rendering
    is horribly broken (desktop is completely unusable) and eventually
    the GPU locks up (it takes from a few seconds to a couple of
    minutes).
    
    Using the second core group requires support in Mesa (and an UABI
    change): the userspace should
    
    1) set PANFROST_JD_DOESNT_NEED_COHERENCY_ON_GPU flag to opt-in
       to allowing the job to run across all cores.
    2) set PANFROST_RUN_ON_SECOND_CORE_GROUP flag to allow compute
       jobs to be run on the second core group (at the moment Mesa
       does not advertise compute support on anything older than
       Mali T760)
    
    But there's little point adding such flags until someone (myself)
    steps up to do the Mesa work.
    Signed-off-by: default avatarAlexey Sheplyakov <asheplyakov@basealt.ru>
    Signed-off-by: default avatarVadim V. Vlasov <vadim.vlasov@elpitech.ru>
    Tested-by: default avatarAlexey Sheplyakov <asheplyakov@basealt.ru>
    Co-developed-by: default avatarSteven Price <steven.price@arm.com>
    Signed-off-by: default avatarSteven Price <steven.price@arm.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220115160658.582646-1-asheplyakov@basealt.ru
    6e55d273
panfrost_gpu.c 12.5 KB