yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

MindSpunkFix reflection JSON writing userAttribs section twice for some cases. (#8210)c45f02579

master
11.5 KiB324 linesraw
1result code = 0
2standard error = {
3}
4standard output = {
5{
6    "parameters": [
7        {
8            "name": "param",
9            "binding": {"kind": "constantBuffer", "index": 1},
10            "type": {
11                "kind": "parameterBlock",
12                "elementType": {
13                    "kind": "struct",
14                    "name": "A",
15                    "fields": [
16                        {
17                            "name": "x",
18                            "type": {
19                                "kind": "scalar",
20                                "scalarType": "float32"
21                            },
22                            "binding": {"kind": "uniform", "offset": 0, "size": 4, "elementStride": 0}
23                        },
24                        {
25                            "name": "y",
26                            "type": {
27                                "kind": "scalar",
28                                "scalarType": "float32"
29                            },
30                            "userAttribs": [
31                                {
32                                    "name": "DefaultValue",
33                                    "arguments": [
34                                        1
35                                    ]
36                                }
37                            ],
38                            "binding": {"kind": "uniform", "offset": 4, "size": 4, "elementStride": 0}
39                        }
40                    ],
41                    "userAttribs": [
42                        {
43                            "name": "MyStruct",
44                            "arguments": [
45                                0,
46                                1.000000,
47                                "A"
48                            ]
49                        }
50                    ]
51                },
52                "containerVarLayout": {
53                    "binding": {"kind": "constantBuffer", "index": 0}
54                },
55                "elementVarLayout": {
56                    "type": {
57                        "kind": "struct",
58                        "name": "A",
59                        "fields": [
60                            {
61                                "name": "x",
62                                "type": {
63                                    "kind": "scalar",
64                                    "scalarType": "float32"
65                                },
66                                "binding": {"kind": "uniform", "offset": 0, "size": 4, "elementStride": 0}
67                            },
68                            {
69                                "name": "y",
70                                "type": {
71                                    "kind": "scalar",
72                                    "scalarType": "float32"
73                                },
74                                "userAttribs": [
75                                    {
76                                        "name": "DefaultValue",
77                                        "arguments": [
78                                            1
79                                        ]
80                                    }
81                                ],
82                                "binding": {"kind": "uniform", "offset": 4, "size": 4, "elementStride": 0}
83                            }
84                        ],
85                        "userAttribs": [
86                            {
87                                "name": "MyStruct",
88                                "arguments": [
89                                    0,
90                                    1.000000,
91                                    "A"
92                                ]
93                            }
94                        ]
95                    },
96                    "binding": {"kind": "uniform", "offset": 0, "size": 8, "elementStride": 0}
97                }
98            }
99        },
100        {
101            "name": "param2",
102            "binding": {"kind": "constantBuffer", "index": 2},
103            "type": {
104                "kind": "parameterBlock",
105                "elementType": {
106                    "kind": "struct",
107                    "name": "B",
108                    "fields": [
109                        {
110                            "name": "x",
111                            "type": {
112                                "kind": "scalar",
113                                "scalarType": "float32"
114                            },
115                            "binding": {"kind": "uniform", "offset": 0, "size": 4, "elementStride": 0}
116                        },
117                        {
118                            "name": "z",
119                            "type": {
120                                "kind": "scalar",
121                                "scalarType": "float32"
122                            },
123                            "userAttribs": [
124                                {
125                                    "name": "DefaultValue",
126                                    "arguments": [
127                                        2
128                                    ]
129                                }
130                            ],
131                            "binding": {"kind": "uniform", "offset": 4, "size": 4, "elementStride": 0}
132                        }
133                    ],
134                    "userAttribs": [
135                        {
136                            "name": "MyStruct",
137                            "arguments": [
138                                0,
139                                2.000000,
140                                "\""
141                            ]
142                        }
143                    ]
144                },
145                "containerVarLayout": {
146                    "binding": {"kind": "constantBuffer", "index": 0}
147                },
148                "elementVarLayout": {
149                    "type": {
150                        "kind": "struct",
151                        "name": "B",
152                        "fields": [
153                            {
154                                "name": "x",
155                                "type": {
156                                    "kind": "scalar",
157                                    "scalarType": "float32"
158                                },
159                                "binding": {"kind": "uniform", "offset": 0, "size": 4, "elementStride": 0}
160                            },
161                            {
162                                "name": "z",
163                                "type": {
164                                    "kind": "scalar",
165                                    "scalarType": "float32"
166                                },
167                                "userAttribs": [
168                                    {
169                                        "name": "DefaultValue",
170                                        "arguments": [
171                                            2
172                                        ]
173                                    }
174                                ],
175                                "binding": {"kind": "uniform", "offset": 4, "size": 4, "elementStride": 0}
176                            }
177                        ],
178                        "userAttribs": [
179                            {
180                                "name": "MyStruct",
181                                "arguments": [
182                                    0,
183                                    2.000000,
184                                    "\""
185                                ]
186                            }
187                        ]
188                    },
189                    "binding": {"kind": "uniform", "offset": 0, "size": 8, "elementStride": 0}
190                }
191            }
192        },
193        {
194            "name": "globalInt",
195            "userAttribs": [
196                {
197                    "name": "DefaultValue",
198                    "arguments": [
199                        2
200                    ]
201                }
202            ],
203            "binding": {"kind": "uniform", "offset": 0, "size": 4, "elementStride": 0},
204            "type": {
205                "kind": "scalar",
206                "scalarType": "int32"
207            }
208        },
209        {
210            "name": "param3",
211            "binding": {"kind": "uniform", "offset": 16, "size": 4, "elementStride": 0},
212            "type": {
213                "kind": "struct",
214                "name": "D",
215                "fields": [
216                    {
217                        "name": "a",
218                        "type": {
219                            "kind": "scalar",
220                            "scalarType": "int32"
221                        },
222                        "binding": {"kind": "uniform", "offset": 0, "size": 4, "elementStride": 0}
223                    }
224                ],
225                "userAttribs": [
226                    {
227                        "name": "StructVarParam",
228                        "arguments": [
229                            0
230                        ]
231                    }
232                ]
233            }
234        },
235        {
236            "name": "globalInt2",
237            "userAttribs": [
238                {
239                    "name": "StructVarParam",
240                    "arguments": [
241                        1
242                    ]
243                }
244            ],
245            "binding": {"kind": "uniform", "offset": 20, "size": 4, "elementStride": 0},
246            "type": {
247                "kind": "scalar",
248                "scalarType": "int32"
249            }
250        }
251    ],
252    "entryPoints": [
253        {
254            "name": "main",
255            "stage": "compute",
256            "parameters": [
257                {
258                    "name": "dispatchThreadID",
259                    "semanticName": "SV_DISPATCHTHREADID",
260                    "type": {
261                        "kind": "vector",
262                        "elementCount": 3,
263                        "elementType": {
264                            "kind": "scalar",
265                            "scalarType": "uint32"
266                        }
267                    }
268                },
269                {
270                    "name": "a",
271                    "userAttribs": [
272                        {
273                            "name": "DefaultValue",
274                            "arguments": [
275                                3
276                            ]
277                        }
278                    ],
279                    "binding": {"kind": "uniform", "offset": 0, "size": 4, "elementStride": 0},
280                    "type": {
281                        "kind": "scalar",
282                        "scalarType": "float32"
283                    }
284                },
285                {
286                    "name": "b",
287                    "userAttribs": [
288                        {
289                            "name": "StructVarParam",
290                            "arguments": [
291                                2
292                            ]
293                        }
294                    ],
295                    "binding": {"kind": "uniform", "offset": 4, "size": 4, "elementStride": 0},
296                    "type": {
297                        "kind": "scalar",
298                        "scalarType": "float32"
299                    }
300                }
301            ],
302            "threadGroupSize": [1, 1, 1],
303            "userAttribs": [
304                {
305                    "name": "MyStruct",
306                    "arguments": [
307                        2,
308                        3.000000,
309                        "main"
310                    ]
311                },
312                {
313                    "name": "MyStruct",
314                    "arguments": [
315                        -2,
316                        -3.000000,
317                        ""
318                    ]
319                }
320            ]
321        }
322    ]
323}
324}