• Advertisement
Sign in to follow this  

copy contents within the same surface

This topic is 1863 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi,

I am writing a program with Direct3D 9Ex. In certain requirement I have to copy (not stretch) a rectangle of a render target surface (which has something rendered) into the same surface, possibly overlapped. SctrechRect clearly does not support it; setting the render target as a texture and render to itself does not work either. So what is the fastest way to do it? I am aware that I can create a staging surface and does two copy operations but it looks really silly. In my program such operation has to be done multiple times per frame so I want to know if there's a faster way.

Thanks!

Share this post


Link to post
Share on other sites
Advertisement
Your only option with D3D9 is to copy to an intermediate texture first, and then read from that when writing to the original render target texture.


Thanks! So is it possible in D3D11? If so I could setup a D3D11 context and share the resource to it. But when I read MSDN it says CopySubresourceRegion in D3D11 also has to be done between different subresources.

Edited by Michael Tanczos

Share this post


Link to post
Share on other sites
In D3D11 you can use unordered access views for read and write access to a texture from a pixel or compute shader. However you have to be careful about cross-thread synchronization, although in your case you should be okay as long as any given output pixel is only read from and written to by a single thread.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement