   Alpha operations with floating point render targets
  I am currently looking at the HDR samples in the DirectX SDK, and having a question about how alpha blending works with these textures. If I write some test code or change existing rendering code that works with integer render targets to use floating point render targets (D3DFMT_A16B16G16R16F or D3DFMT_A32B32G32R32F), alpha blending doesn't seem to work at all. I tried the much simpler alpha test, too (i.e. rejection of the pixel if it has a value less than 0.5f using the commands:device->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE); device->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER);device->SetRenderState(D3DRS_ALPHAREF, (DWORD)(0.5f));) and this doesn't seem to work with floating point render targets, either. Is there any resource that explains why this happens and how to work with the alpha channel in this special surface formats? I guess this could be solved if you could render the scene in a normal target and then copy that to the floating point surface, but I've had no luck accomplishing that either. Any response from someone who has faced those issues would be appreciated, thanks.   
  It's a limitation of most newer cards.  See D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING.  I only just learned that this check included alphatest as a result of someone's post about shadows earlier this week.   