Render Target Surface Format?

Quick question, is it possible for a RenderTarget2D to be created with a surface format of ‘Alpha8’? I’ve tried creating one at it just gives me one with a format of ‘Color’.

I’m assuming its not, but I’d rather ask to confirm with someone who may know for certain.

If I’m right and its not possible, is there a list of what surface formats a render target can be?

what profile are you using? Maybe it’s one of those formats that are supported only on HiDef profile or only on certain backends.

Thanks for replying.

Actually I am using the HiDef profile, so I have a feeling it may be a limitation of modern systems.

For context, I’m prototyping a 2D game where I want to have a dynamic texture atlas that could stream data into itself. Now since the atlas was going to be 16K square, updating that using a SetData<> call was going to have a noticeable performance blip on even the fastest GPUs (I’m on a GTX1080 and the blip is huge so I’d hate to think how slow it would be on slower cards).

To get around the blip I was testing the texture atlas as a render target as I would be able to schedule partial updates to it using draw calls. Now I did manage to get a working version using a surface format of Color but that takes up a whole GB of ram, so I wanted to see if it was possible to use an 8 Bit render target to quarter the memory usage and then draw using palettes.

I did consider the possibility of packing 4 pixels into a single color but the shader code to draw and extract the correct information would likely be awkward.

On the flip side I’m experimenting some other ideas.