D3DImage y SharpDX parpadeando en hardware lento

Estoy usando el proyecto SharpDX.WPF para las capacidades de WPF, parece una biblioteca fácil de entender de bajo costo, en comparación con el Toolkit que viene con SharpDX (¡que tiene el mismo problema!)

Primero: arreglé el proyecto SharpDX.WPF para el último SharpDX usando lo siguiente:https://stackoverflow.com/a/19791534/442833

Luego hice el siguiente ajuste hacky a DXElement.cs, una solución que también se hizoaquí:

private Query queryForCompletion;
    public void Render()
    {
        if (Renderer == null || IsInDesignMode)
            return;

        var test = Renderer as D3D11;
        if (queryForCompletion == null)
        {

            queryForCompletion = new Query(test.Device,
                new QueryDescription {Type = QueryType.Event, Flags = QueryFlags.None});
        }

        Renderer.Render(GetDrawEventArgs());

        Surface.Lock();
        test.Device.ImmediateContext.End(queryForCompletion);
        // wait until drawing completes
        Bool completed;
        var counter = 0;
        while (!(test.Device.ImmediateContext.GetData(queryForCompletion, out completed)
                 && completed))
        {
            Console.WriteLine("Yielding..." + ++counter);
            Thread.Yield();
        }
        //Surface.Invalidate();
        Surface.AddDirtyRect(new Int32Rect(0, 0, Surface.PixelWidth, Surface.PixelHeight));
        Surface.Unlock();
    }

Luego renderizo 8000 cubos en un patrón de cubo ...

Flexible...

se imprime en la consola con bastante frecuencia, pero el parpadeo sigue ahí. Supongo que WPF es lo suficientemente bueno como para mostrar la imagen usando un hilo diferente antes de que se realice el renderizado, aunque no estoy seguro ... Este mismo problema también ocurre cuando uso la variante Toolkit de soporte WPF con SharpDX.

Imágenes para demostrar el problema:

MaloMejorCasiDestinado a

Nota: Al azar cambia entre estas imágenes antiguas, al azar. También estoy usando hardware realmente antiguo que hace que el parpadeo sea mucho más atractivo (GeForce Quadro FX 1700)

A hizo un repositorio que contiene exactamente el mismo código fuente que estoy usando para obtener este problema:https://github.com/ManIkWeet/FlickeringIssue/

Respuestas a la pregunta(3)

Su respuesta a la pregunta