Skip to content
  • Iago Toral's avatar
    v3d: add lowering for OpenGL logic operations · e540775f
    Iago Toral authored
    
    
    This implements support for OpenGL logic operations by emitting code to read
    from the TLB if needed and blending the fragment output accordingly. It is
    similar to VC4's blend lowering pass, but exclusive to logic operations, since
    blending is otherwise supported in hardware.
    
    The pass doesn't handle MSAA targets yet.
    
    Fixes the following piglit tests:
    spec/!opengl 1.0/gl-1.0-logicop/*
    spec/!opengl 1.1/gl-1.1-xor
    spec/!opengl 1.1/gl-1.1-xor-copypixels
    
    It also fixes text cursor rendering in Libreoffice with the GTK+2 theme, which
    is rendered via glamor using the XOR logic operation.
    
    v2: fix checks for allowed variable location and maximum render target (Eric)
    
    Reviewed-by: default avatarEric Anholt <eric@anholt.net>
    e540775f