Not sure if you are using Brook+ or CAL. CAL already has support for 8-bit, 16-bit datatypes. Brook+ will be having support for 8-bit, 16-bit in next release.
I have SDK v1.3-beta for Brook+, but i cant create
::brook::Stream<byte> gpuBuffer(2, inputDim);
::brook::Stream<char> gpuBuffer(2, inputDim);
error LNK2001: unresolved external symbol "enum brook::BRformat * __cdecl brook::getStreamType<char>(char *,unsigned int &"
Brook+ will support 8-bit, 16-bit datatype in next 1.4 release.
I have a similar problem - converting bitmap data from ubyte4 to float4. I use next code:
sample_resource(0)_sampler(0) o0, cb0.xy
But if source data stored in the global memory, then how can i do it? (CAL v1.4 beta)