@@ -124,6 +124,8 @@ class Var:
124124 "u_float3x4" : Var (kind = "matrix" , type = "float" , value = [[0 , 1 , 2 , 3 ], [4 , 5 , 6 , 7 ], [8 , 9 , 10 , 11 ]]),
125125 "u_float4x4" : Var (kind = "matrix" , type = "float" , value = [[0 , 1 , 2 , 3 ], [4 , 5 , 6 , 7 ], [8 , 9 , 10 , 11 ], [12 , 13 , 14 , 15 ]]),
126126 "pb_float4x4" : Var (kind = "matrix" , type = "float" , value = [[0 , 1 , 2 , 3 ], [4 , 5 , 6 , 7 ], [8 , 9 , 10 , 11 ], [12 , 13 , 14 , 15 ]]),
127+ "pb_float4x3" : Var (kind = "matrix" , type = "float" , value = [[0 , 1 , 2 ], [3 , 4 , 5 ], [6 , 7 , 8 ], [9 , 10 , 11 ]]),
128+ "pb_float3x4" : Var (kind = "matrix" , type = "float" , value = [[0 , 1 , 2 , 3 ], [4 , 5 , 6 , 7 ], [8 , 9 , 10 , 11 ]]),
127129 # float16_t
128130 "u_float16_t" : Var (kind = "scalar" , type = "float16_t" , value = 1.2345 ),
129131 "u_float16_t_min" : Var (kind = "scalar" , type = "float16_t" , value = FLOAT16_MIN ),
@@ -163,6 +165,31 @@ class Var:
163165 "f_float2" : Var (kind = "vector" , type = "float" , value = [1.23 , 1.234 ]),
164166 "f_float3" : Var (kind = "vector" , type = "float" , value = [1.23 , 1.234 , 1.2345 ]),
165167 "f_float4" : Var (kind = "vector" , type = "float" , value = [1.23 , 1.235 , 1.23456 , 1.234567 ]),
168+ "f_float4x3" : Var (kind = "matrix" , type = "float" , value = [[0 , 1 , 2 ], [3 , 4 , 5 ], [6 , 7 , 8 ], [9 , 10 , 11 ]]),
169+ "f_bool_array" : Var (kind = "array" , type = "bool" , value = [False ]),
170+ "f_int_array" : Var (kind = "array" , type = "int" , value = [- 10 , 10 ]),
171+ "f_uint_array" : Var (kind = "array" , type = "uint" , value = [0 , 10 , 20 ]),
172+ "f_float_array" : Var (kind = "array" , type = "float" , value = [0.1 , 0.2 , 0.3 , 0.4 ]),
173+ },
174+ # pb_struct
175+ "pb_struct" : {
176+ "f_bool" : Var (kind = "scalar" , type = "bool" , value = True ),
177+ "f_bool2" : Var (kind = "vector" , type = "bool" , value = [False , True ]),
178+ "f_bool3" : Var (kind = "vector" , type = "bool" , value = [False , True , False ]),
179+ "f_bool4" : Var (kind = "vector" , type = "bool" , value = [False , True , False , True ]),
180+ "f_int" : Var (kind = "scalar" , type = "int" , value = - 123 ),
181+ "f_int2" : Var (kind = "vector" , type = "int" , value = [- 123 , 123 ]),
182+ "f_int3" : Var (kind = "vector" , type = "int" , value = [- 123 , 123 , - 1234 ]),
183+ "f_int4" : Var (kind = "vector" , type = "int" , value = [- 123 , 123 , - 1234 , 1234 ]),
184+ "f_uint" : Var (kind = "scalar" , type = "uint" , value = 12 ),
185+ "f_uint2" : Var (kind = "vector" , type = "uint" , value = [123 , 1234 ]),
186+ "f_uint3" : Var (kind = "vector" , type = "uint" , value = [123 , 1234 , 12345 ]),
187+ "f_uint4" : Var (kind = "vector" , type = "uint" , value = [123 , 1235 , 123456 , 1234567 ]),
188+ "f_float" : Var (kind = "scalar" , type = "float" , value = 1.2 ),
189+ "f_float2" : Var (kind = "vector" , type = "float" , value = [1.23 , 1.234 ]),
190+ "f_float3" : Var (kind = "vector" , type = "float" , value = [1.23 , 1.234 , 1.2345 ]),
191+ "f_float4" : Var (kind = "vector" , type = "float" , value = [1.23 , 1.235 , 1.23456 , 1.234567 ]),
192+ "f_float4x3" : Var (kind = "matrix" , type = "float" , value = [[0 , 1 , 2 ], [3 , 4 , 5 ], [6 , 7 , 8 ], [9 , 10 , 11 ]]),
166193 "f_bool_array" : Var (kind = "array" , type = "bool" , value = [False ]),
167194 "f_int_array" : Var (kind = "array" , type = "int" , value = [- 10 , 10 ]),
168195 "f_uint_array" : Var (kind = "array" , type = "uint" , value = [0 , 10 , 20 ]),
@@ -226,6 +253,7 @@ def convert_matrix(type: str, rows: int, cols: int, values: Any):
226253 TABLE = {
227254 ("float" , 2 , 2 ): spy .float2x2 ,
228255 ("float" , 3 , 3 ): spy .float3x3 ,
256+ ("float" , 4 , 3 ): spy .float4x3 ,
229257 ("float" , 2 , 4 ): spy .float2x4 ,
230258 ("float" , 3 , 4 ): spy .float3x4 ,
231259 ("float" , 4 , 4 ): spy .float4x4 ,
@@ -321,6 +349,10 @@ def write_vars(
321349 ):
322350 if isinstance (vars , dict ):
323351 for key , var in vars .items ():
352+ # Disabling ParameterBlock tests on Vulkan, due to issue:
353+ # https://github.com/shader-slang/slang/issues/7431
354+ if device_type == spy .DeviceType .vulkan and key .startswith ("pb_" ):
355+ continue
324356 if isinstance (var , dict ):
325357 write_vars (device_type , cursor [key ], var , key + "." )
326358 elif isinstance (var , list ):
0 commit comments