1RWTexture1D<float4> uImage1D : register(u0); 2RWTexture2D<float2> uImage2D : register(u1); 3Texture2DArray<float4> uImage2DArray : register(t2); 4RWTexture3D<unorm float4> uImage3D : register(u3); 5RWBuffer<snorm float4> uImageBuffer : register(u6); 6 7uint3 spvTextureSize(Texture2DArray<float4> Tex, uint Level, out uint Param) 8{ 9 uint3 ret; 10 Tex.GetDimensions(Level, ret.x, ret.y, ret.z, Param); 11 return ret; 12} 13 14uint2 spvImageSize(RWTexture2D<float2> Tex, out uint Param) 15{ 16 uint2 ret; 17 Tex.GetDimensions(ret.x, ret.y); 18 Param = 0u; 19 return ret; 20} 21 22uint spvImageSize(RWTexture1D<float4> Tex, out uint Param) 23{ 24 uint ret; 25 Tex.GetDimensions(ret.x); 26 Param = 0u; 27 return ret; 28} 29 30uint3 spvImageSize(RWTexture3D<unorm float4> Tex, out uint Param) 31{ 32 uint3 ret; 33 Tex.GetDimensions(ret.x, ret.y, ret.z); 34 Param = 0u; 35 return ret; 36} 37 38uint spvImageSize(RWBuffer<snorm float4> Tex, out uint Param) 39{ 40 uint ret; 41 Tex.GetDimensions(ret.x); 42 Param = 0u; 43 return ret; 44} 45 46void frag_main() 47{ 48 uint _14_dummy_parameter; 49 int a = int(spvImageSize(uImage1D, _14_dummy_parameter)); 50 uint _22_dummy_parameter; 51 int2 b = int2(spvImageSize(uImage2D, _22_dummy_parameter)); 52 uint _30_dummy_parameter; 53 int3 c = int3(spvTextureSize(uImage2DArray, 0u, _30_dummy_parameter)); 54 uint _36_dummy_parameter; 55 int3 d = int3(spvImageSize(uImage3D, _36_dummy_parameter)); 56 uint _42_dummy_parameter; 57 int e = int(spvImageSize(uImageBuffer, _42_dummy_parameter)); 58} 59 60void main() 61{ 62 frag_main(); 63} 64