About formats and multisampling
I'm checking currently supported DXGI format, what exactly is the difference between:
- D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET
- D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE
What is the meaning of the following formats:
- G8R8_G8B8_UNORM and R8G8_B8G8_UNORM
How are coded the following formats:
- R9G9B9E5_SHAREDEXP
- R8G8B8A8_UNORM_SRGB
- R11G11B10_FLOAT (number of bits of mantissa and exponent for 11 bits and 10 bits float).
Thanks.
Strikes me that the documentation for these values is still pretty weak - would be a good idea if you send MS some feedback on this. I've sent an email about the lack of DXGI_FORMAT information, but can't be a bad thing if you fire off a similar email 
Pascal Mignot wrote: |
I'm checking currently supported DXGI format, what exactly is the difference between: - D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET - D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE |
|
I'm not 100% sure on these, but the first one should be fairly obvious - it can be used as a target for MSAA'd rendering. The second one is for resolving from a MSAA target down to a non-MSAA target, I'd assume that is equivalent to a mapping from a format that has _MULTISAMPLE_RENDERTARGET to one that has _RENDER_TARGET...
Pascal Mignot wrote: |
- G8R8_G8B8_UNORM and R8G8_B8G8_UNORM |
|
These are similar to the existing D3DFMT_G8R8_G8B8 format in D3D9 but without the scaling. The D3D9 documentation might be useful, but from what I gather it seems to be aimed at video content - YUV2 is mentioned in the D3D9 docs.
Pascal Mignot wrote: |
|
The HDRFormat10 documentation briefly explains this. You have three 9 bit mantissa's and a 5 bit shared exponent. You can decode them in a shader using
decoded.rgb = encoded.rgb * pow( 2, encoded.a ).
Pascal Mignot wrote: |
|
The pixel data is stored in gamma 2.2 corrected form.
Pascal Mignot wrote: |
- R11G11B10_FLOAT (number of bits of mantissa and exponent for 11 bits and 10 bits float). |
|
No signed bit, 5 bits exponent and 6 bits mantissa (or 5 bit mantissa for float10).
hope thats useful!
Jack
Ralf Kornmann wrote: |
Jack Hoxley wrote: | The HDRFormat10 documentation briefly explains this. You have three 9 bit mantissa's and a 5 bit shared exponent. You can decode them in a shader using decoded.rgb = encoded.rgb * pow( 2, encoded.a ). | | You are sure about this? As far as I understand the demo and the documentation the R9G9B9E5_SHAREDEXP format is decoded during the sample operation and you don’t need additional code in the shader. |
|
No, I'm not sure to be honest

I was digging around in all the information I have and it seems to suggest its handled implicitly for you, but I couldn't find anywhere that explicitly defined what happened... That fragment I quoted was ripped direct from the latest documentation - but I didn't have the time to check the actual source code for myself...
Might well be specified somewhere in the GameFest slides - I've not had time to do more than scan-read them so far.
Cheers,
Jack