Здравствуйте! Мне удалось интегрировать графику SlimDX и DirectX 11 в приложение WPF с помощью D3DImage и общих текстур. Однако при рендеринге простых сцен (например, GameOfLife в сэмплах SlimDX) при высоком разрешении (2560x1440) я получаю очень низкую производительность.
Я попытался выполнить профилирование производительности моего метода рендеринга, и похоже, что большую часть времени тратится на блокировку D3DImage при аннулировании буфера.
_d3dImage.Lock(); // <- this call takes 78,5 % of the time when rendering the frame
_d3dImage.AddDirtyRect(new Int32Rect(0, 0, _d3dImage.PixelWidth, _d3dImage.PixelHeight));
_d3dImage.Unlock();
Много времени тратится на смывание устройства после нанесения:
_device.ImmediateContext.Flush(); // <- 20,6% of the time when rendering the frame
Кто-нибудь знает проблему и как это оптимизировать? Можно ли ожидать снижения производительности при интеграции WPF и SlimDX?