Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to understand why, when and how a GPU would need to write data to some buffer inside its own Video Ram.

In Direct3D 11, there are two flags that concern this, which are D3D11_USAGE_DEFAULT and D3D11_USAGE_IMMUTABLE. The former gives the ability to read and write, the latter only the ability to read.

So, apart from the resources that imply actual rendering to, like back buffers or textures set to use in a render-to-texture scenario, is there any other case where one would prefer to use DEFAULT over IMMUTABLE? How would you get the GPU to change this data? (I guess from a shader?) Why is it not the default one the one that gives you read only access?

share|improve this question
up vote 3 down vote accepted

You'd use it for stream output (a technique frequently seen in GPU particle systems) and as output from a compute shader stage.

share|improve this answer
Thanks... So I guess for my needs I'd only make use of immutable ones. – Kaboose May 3 '13 at 11:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.