Thanks for your reply, that’s good to know. I currently switched to a RG32 and accept a precision of 16 bit for the float and may use the other float for packing different values into.
There is actual a PackedVector for that … and it seems they are going to produce a uint anyway.
My main concern was - lets assume I would stick to 23bit float - that in the shader, what would I work with when sampling the texture? a float1/2/3/4? so how would HLSL do the channel assignment in that case.
That’s one reason I currently went with RG32 - because there it’s very clear, that the float component will be in the red channel, and everything else in the green channel
I just wondered, how one would do with an unusal packed vector, like a 23bit float … how would the shader know, that the red channel is 23bit? So I came to single-channel SurfaceFormats (and unpack myself in shader) and the only available is R32_Float. But that’s not a PackedVector (uint), but a float - so I wondered if I could still feed an uint into the Texture without screwing up HLSL.
In reality it’s just a 32 bit number, but I don’t know if the shader does anything special for float vs uint SurfaceFormats