Eyescale/Equalizer

Certain combinations of 2D and subpixels compounds don't work in eqPly

Closed this issue · 0 comments

The following configuration accumulates the top and half part at different speeds during idle AA. When the bottom part is done, idle AA accumulation on the destination channel is mixing its empty background with the image accumulated so far.
This seems hard to fix because it requires identifying which regions were not updated during the last draw/assemble and not accumulate them. A potential solution could be to defer the clear operation until assembly (but this is still non-trivial in the general case due to ROI and possibly overlapping frames).
My suggestion is to not fix it, but document the behaviour (anyway this is eqPly specific, isn't it?)

#Equalizer 1.1 ascii

server
{
    connection{ hostname "127.0.0.1" }
    config
    {
        appNode
        {
            pipe
            {
                window
                {
                    viewport [ 25 450 400 400 ]
                    channel { name "channel1" }
                }
            }
            pipe
            {
                window
                {
                    viewport [ 450 25 400 400 ]
                    channel { name "channel2" }
                }
            }
            pipe
            {
                window
                {
                    viewport [ 25 25 400 400 ]
                    channel { name "channel3" }
                }
            }
        }
        observer{}
        layout{ view { observer 0 }}
        canvas
        {
            layout 0
            wall
            {
                bottom_left  [ -.5 -.5 -1 ]
                bottom_right [  .5 -.5 -1 ]
                top_left     [ -.5  .5 -1 ]
            }
            segment { channel "channel3" }
        }
        compound
        {
            channel ( view 0 segment 0 )


            compound
            {
                channel "channel1"
                viewport [ 0 0 1 0.5 ]
                compound
                {
                    subpixel [ 0 2 ]
                    channel "channel1"
                    outputframe {}
                }
                compound
                {
                    subpixel [ 1 2 ]
                    channel "channel2"
                    outputframe {}
                }
                inputframe { name "frame.channel1" }
                inputframe { name "frame.channel2" }
                outputframe { name "frame.top" }
            }
            compound
            {
                viewport [ 0 0.5 1 0.5 ]
            }
            inputframe { name "frame.top" }
        }
    }
}