Принудительно запускать Pixel Shader Effect параллельно только для одного изображения

У меня есть приложение wpf, показывающее очень большое изображение с эффектом пиксельного шейдера (настройка контрастности). Выполняйте очень хорошо, пока я не увеличу масштаб изображения (что приводит к большому количеству пикселей для визуализации).

Я заметил, что если я обрезаю изображение на более мелкие части и помещаю их в ItemsControl, производительность повышается, потому что графический процессор запускает эффект параллельно для каждого обрезанного изображения.

Можно ли заставить GPU работать параллельно и для одного изображения?

Я использую DirectX 9. (поскольку мое приложение должно работать и на XP)

Другим подходом к снижению производительности может быть запуск эффекта только на пикселях экрана, а не на целых пикселях. не мог найти путь к этому либо...

1 ответ

Я предполагаю, что шейдер применяется с частотой кадров дисплея. Попробуйте нарисовать его с помощью DrawingBrush и установите для RenderOptions.CachingHint значение "Cache", как описано в справочной документации MSDN.

Другие вопросы по тегам