Sign in to follow this  
Mihulik

[D3D10]What's the difference between DXGI_USAGE_BACK_BUFFER and DXGI_USAGE_RENDER_TAR

Recommended Posts

Mihulik    128
Hi everyone,
I was wondering what the difference between DXGI_USAGE_BACK_BUFFER and DXGI_USAGE_RENDER_TARGET_OUTPUT is when creating a device and a swapchain (I use the D3D10CreateDeviceAndSwapChain function).
I use DXGI_USAGE_RENDER_TARGET_OUTPUT because I learned to do so. So does every tutorial I've found.

However, I don't know the reason why I use DXGI_USAGE_RENDER_TARGET_OUTPUT instead of DXGI_USAGE_BACK_BUFFER.
By calling that function I create a backbuffer. So, I'd expect to use DXGI_USAGE_BACK_BUFFER instead at first sight.

I haven't found any sufficient explanation. I found some explanations but not sufficient one.


I believe you can explain me what the reason is.:-)

[Edited by - Mihulik on December 21, 2010 4:34:27 AM]

Share this post


Link to post
Share on other sites
MJP    19754
I'm not sure, but perhaps DXGI_USAGE_BACK_BUFFER is implicit when you're creating the swap chain? I mean it wouldn't make any sense to create the back buffer without a flag specifying that it's the back buffer. Perhaps the flag is only relevant when you're manually creating a DXGI surface.

Share this post


Link to post
Share on other sites
Mihulik    128
It sounds reasonable.:-)
However, I could say the same thing about DXGI_USAGE_RENDER_TARGET_OUTPUT because when I create a backbuffer, I create a render target, couldn't I?:-)

Share this post


Link to post
Share on other sites
Quat    568
Hi, I looked into this a while back and couldn't find any information. It seems safe to add the DXGI_USAGE_BACK_BUFFER flag, but it is not necessary. I would just do what the SDK tutorials / samples do.

Share this post


Link to post
Share on other sites
Mihulik    128
I do so but I'd like to know why I do so.:)
However, I got an answer on another forum:
"DXGI_USAGE_RENDER_TARGET_OUTPUT enables the surface to be able to be presented to the screen. So it must create a front buffer as well as a back buffer (in fact, it can create even more, for triple/quadruple/whatever buffering, if desired). I would guess that DXGI_USAGE_BACK_BUFFER creates a back buffer only, which you might do for offscreen rendering (e.g. you wanted to save the image to a file, or run some image-processing on it)."

I think that answer is reasonable.:-)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this