Skip to content
  • Lionel Landwerlin's avatar
    i965: enable INTEL_blackhole_render · 5d7e9edb
    Lionel Landwerlin authored
    
    
    v2: condition the extension on context isolation support from the
        kernel (Chris)
    
    v3: (Lionel)
    
        The initial version of this change used a feature of the Gen7+
        command parser to turn the primitive instructions into no-ops.
        Unfortunately this doesn't play well with how we're using the
        hardware outside of the user submitted commands. For example
        resolves are implicit operations which should not be turned into
        no-ops as part of the previously submitted commands (before
        blackhole_render is enabled) might not be disabled. For example
        this sequence :
    
           glClear();
           glEnable(GL_BLACKHOLE_RENDER_INTEL);
           glDrawArrays(...);
           glReadPixels(...);
           glDisable(GL_BLACKHOLE_RENDER_INTEL);
    
        While clear has been emitted outside the blackhole render, it
        should still be resolved properly in the read pixels. Hence we
        need to be more selective and only disable user submitted
        commands.
    
        This v3 manually turns primitives into MI_NOOP if blackhole render
        is enabled. This lets us enable this feature on any platform.
    
    v4: Limit support to gen7.5+ (Lionel)
    
    v5: Enable Gen7.5 support again, requires a kernel update of the
        command parser (Lionel)
    
    v6: Disable Gen7.5 again... Kernel devs want these patches landed
        before they accept the kernel patches to whitelist INSTPM (Lionel)
    
    v7: Simplify change by never holding noop (there was a shortcoming in the test not considering fast clears)
        Only program register using MI_LRI (Lionel)
    
    v8: Switch to software managed blackhole (BDW hangs on compute batches...)
    
    v9: Simplify the noop state tracking (Lionel)
    
    v10: Don't modify flush function (Ken)
    
    Signed-off-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v8)
    Part-of: <mesa/mesa!2964>
    5d7e9edb