I'm currently rendering up to 6 images (7440 x 7440) together via a series of colorizing shaders (one each image) and then merging shaders (5 to merge colorizer result). I'm not getting the performance I would expect. I'm using D3DImage to render into a WPF application. The rendering is appearing to be very slow. However, the shaders are rendering in .005 secs each. This is currently rendered on one quad...

Is it better to flush between image and merge or send on flush at the end?

Are C# for loop slowing it do? The benchmarks are not showing that but...

Also I use the colorize shader to change color in near real time the UI locks up...

Windows 7 I know is limited to 1 device. Windows 10 I know support multiple instances of devices... is there a way to use that capability? is it worth it?

Here is the kicker I will need to eventually do this on 20 quads.

Thank you in advance!


1 Answer 1


The Pixel Shader and Texture Array are your friends.

I removed any C# architecture the was not absolutely necessary (Loops and Collections). I was able to get this working very well with smooth color transitions.

I also limited my layers to 15 which still meets my initial requirements.

Windows 10 and Windows 7 are running in single device mode at 60fps.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .