summaryrefslogtreecommitdiffstats
path: root/tests/reflection/attribute.slang
diff options
context:
space:
mode:
authorkaizhangNV <149626564+kaizhangNV@users.noreply.github.com>2024-05-02 13:05:18 -0700
committerGitHub <noreply@github.com>2024-05-02 13:05:18 -0700
commite5d49cf21db7a398afe6cfdb76f6b4a028e9eecb (patch)
treecbf120740771f332b1b8f61eacee01b85628465c /tests/reflection/attribute.slang
parentf7d54af67e026feb2546af1deaf2513a36f8516e (diff)
Allow multiple _AttributeTargets for attribute declaration (#4087)
The syntax like: [__AttributeUsage(_AttributeTargets.Var)] [__AttributeUsage(_AttributeTargets.Param)] struct DefaultValueAttribute { int iParam; }; is allowed. For user-defined attribute, we can specify more attribute targets on the attribute declaration. So one attribute can be used in more than one situations.
Diffstat (limited to 'tests/reflection/attribute.slang')
-rw-r--r--tests/reflection/attribute.slang30
1 files changed, 23 insertions, 7 deletions
diff --git a/tests/reflection/attribute.slang b/tests/reflection/attribute.slang
index 864aa5896..e0739643c 100644
--- a/tests/reflection/attribute.slang
+++ b/tests/reflection/attribute.slang
@@ -10,14 +10,10 @@ struct MyStructAttribute
int iParam;
float fParam;
};
-[__AttributeUsage(_AttributeTargets.Var)]
-struct DefaultValueAttribute
-{
- int iParam;
-};
+[__AttributeUsage(_AttributeTargets.Var)]
[__AttributeUsage(_AttributeTargets.Param)]
-struct DefaultFuncParamAttribute
+struct DefaultValueAttribute
{
int iParam;
};
@@ -43,9 +39,29 @@ ParameterBlock<B> param2;
[DefaultValue(2)] int globalInt;
+[__AttributeUsage(_AttributeTargets.Struct)]
+[__AttributeUsage(_AttributeTargets.Var)]
+[__AttributeUsage(_AttributeTargets.Param)]
+struct StructVarParamAttribute
+{
+ int iParam;
+};
+
+[StructVarParam(0)]
+struct D
+{
+ int a;
+};
+
+D param3;
+
+[StructVarParam(1)] int globalInt2;
+
+
[numthreads(1, 1, 1)]
void main(
uint3 dispatchThreadID : SV_DispatchThreadID,
- [DefaultFuncParam(3)] float a)
+ [DefaultValue(3)] float a,
+ [StructVarParam(2)] float b)
{
}