|
|
@@ -16,14 +16,21 @@ float uintBitsToFloat(uint _x) { return asfloat(_x); }
|
|
|
vec2 uintBitsToFloat(uint2 _x) { return asfloat(_x); }
|
|
|
vec3 uintBitsToFloat(uint3 _x) { return asfloat(_x); }
|
|
|
vec4 uintBitsToFloat(uint4 _x) { return asfloat(_x); }
|
|
|
-uint floatBitsToUint(float _x) { return asuint(_x); }
|
|
|
-uvec2 floatBitsToUint(vec2 _x) { return asuint(_x); }
|
|
|
-uvec3 floatBitsToUint(vec3 _x) { return asuint(_x); }
|
|
|
-uvec4 floatBitsToUint(vec4 _x) { return asuint(_x); }
|
|
|
-int floatBitsToInt(float _x) { return asint(_x); }
|
|
|
-ivec2 floatBitsToInt(vec2 _x) { return asint(_x); }
|
|
|
-ivec3 floatBitsToInt(vec3 _x) { return asint(_x); }
|
|
|
-ivec4 floatBitsToInt(vec4 _x) { return asint(_x); }
|
|
|
+
|
|
|
+uint floatBitsToUint(float _x) { return asuint(_x); }
|
|
|
+uvec2 floatBitsToUint(vec2 _x) { return asuint(_x); }
|
|
|
+uvec3 floatBitsToUint(vec3 _x) { return asuint(_x); }
|
|
|
+uvec4 floatBitsToUint(vec4 _x) { return asuint(_x); }
|
|
|
+
|
|
|
+int floatBitsToInt(float _x) { return asint(_x); }
|
|
|
+ivec2 floatBitsToInt(vec2 _x) { return asint(_x); }
|
|
|
+ivec3 floatBitsToInt(vec3 _x) { return asint(_x); }
|
|
|
+ivec4 floatBitsToInt(vec4 _x) { return asint(_x); }
|
|
|
+
|
|
|
+uint bitfieldReverse(uint _x) { return reversebits(_x); }
|
|
|
+uint2 bitfieldReverse(uint2 _x) { return reversebits(_x); }
|
|
|
+uint3 bitfieldReverse(uint3 _x) { return reversebits(_x); }
|
|
|
+uint4 bitfieldReverse(uint4 _x) { return reversebits(_x); }
|
|
|
|
|
|
uint packHalf2x16(vec2 _x)
|
|
|
{
|
|
|
@@ -52,14 +59,16 @@ vec4 imageLoad(Texture2D _image, ivec2 _uv)
|
|
|
return _image.Load(uint3(_uv.xy, 0) );
|
|
|
}
|
|
|
|
|
|
-uint imageLoad(Texture2D<uint> _image, ivec2 _uv)
|
|
|
+uint4 imageLoad(Texture2D<uint> _image, ivec2 _uv)
|
|
|
{
|
|
|
- return _image.Load(uint3(_uv.xy, 0) );
|
|
|
+ uint rr = _image.Load(uint3(_uv.xy, 0) );
|
|
|
+ return uint4(rr, rr, rr, rr);
|
|
|
}
|
|
|
|
|
|
-uint imageLoad(RWTexture2D<uint> _image, ivec2 _uv)
|
|
|
+uint4 imageLoad(RWTexture2D<uint> _image, ivec2 _uv)
|
|
|
{
|
|
|
- return _image[_uv.xy];
|
|
|
+ uint rr = _image[_uv.xy];
|
|
|
+ return uint4(rr, rr, rr, rr);
|
|
|
}
|
|
|
|
|
|
ivec2 imageSize(Texture2D _image)
|