[require] shader model >= 5.0 [pixel shader todo] struct s { float3 a; }; struct s2 { float4x4 f1, f2, f3; }; RWStructuredBuffer u : register(u2); RWStructuredBuffer u1; RWStructuredBuffer u2; RWStructuredBuffer u3; RWStructuredBuffer u4; RWStructuredBuffer u5; float4 main() : sv_target1 { u[0] = float4(11.1, 12.2, 13.3, 14.4); return 0; } [pixel shader todo] struct s { float3 a; }; struct s2 { float4x4 f1, f2, f3; }; RasterizerOrderedStructuredBuffer u : register(u2); RasterizerOrderedStructuredBuffer u1; RasterizerOrderedStructuredBuffer u2; RasterizerOrderedStructuredBuffer u3; RasterizerOrderedStructuredBuffer u4; RasterizerOrderedStructuredBuffer u5; float4 main() : sv_target1 { u[0] = float4(11.1, 12.2, 13.3, 14.4); return 0; } % Array type [pixel shader] typedef float arr[2]; RWStructuredBuffer u; float4 main() : sv_target1 { return 0; } [pixel shader] typedef float arr[2]; RasterizerOrderedStructuredBuffer u; float4 main() : sv_target1 { return 0; } % Object types [pixel shader fail(sm<6)] RWStructuredBuffer u; float4 main() : sv_target1 { return 0; } [pixel shader fail] struct s { Texture2D t; }; RWStructuredBuffer u; float4 main() : sv_target1 { return 0; } [pixel shader fail(sm<6)] RasterizerOrderedStructuredBuffer u; float4 main() : sv_target1 { return 0; } [pixel shader fail] struct s { Texture2D t; }; RasterizerOrderedStructuredBuffer u; float4 main() : sv_target1 { return 0; } [pixel shader todo] struct apple { float3 a, x; }; RWStructuredBuffer u; float4 main() : sv_target { u[0].x = float3(30.0, 40.0, 50.0); return 0; }