Sign in to follow this  
lomateron

blending support on R32G32B32A32_UINT texture

Recommended Posts

lomateron    491

I am creating a texture of this type R32G32B32A32_UINT and I am dividing it in my way to fill it with 16 (8-bit) uint numbers.

Then i am rendering to it various times. I need to add the value that each texel already has with the new rendered value, so i need the blending. Then when run my program it says in the output that blending isn't supported in those types of textures, but it says too that the shader output value will be interpreted as float bits wiout any data conversion. It says exactly this:

 

ERROR: ID3D10Device::DrawInstanced: The renderTarget bound to slot 0 has a format (R32G32B32A32_UINT) that does not support blending. The Pixel Shader output signature indicates this output could be written, and the Blend State indicates blending is enabled for this slot. [ EXECUTION ERROR #376: DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING]

WARNING: ID3D10Device::DrawInstanced: Pixel Shader output 'SV_Target0' has type that is NOT float, while the corresponding Output Merger RenderTarget slot [0] has blending enabled.  This happens to be well defined: the raw bits output from the shader will simply be interpreted as float bits in the blender without any data conversion.  This warning is to check that the application developer really intended to rely on this behavior. [ EXECUTION WARNING #415: DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH]

 

 

So I want to know if the blending still works. or the texture texel values are just replaced without blending.

 

If blending works, then, when adding floats binary, is it different from uints binary addition?

Edited by lomateron

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