Skip to content

Commit 029cfeb

Browse files
committed
improved readability for config, include all new files
1 parent 437c194 commit 029cfeb

File tree

5 files changed

+78
-91
lines changed

5 files changed

+78
-91
lines changed

include/nbl/builtin/hlsl/workgroup2/arithmetic_config.hlsl

Lines changed: 51 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,11 @@ template<uint16_t _WorkgroupSizeLog2, uint16_t _SubgroupSizeLog2>
2121
struct virtual_wg_size_log2
2222
{
2323
#define DEFINE_ASSIGN(TYPE,ID,...) NBL_CONSTEXPR_STATIC_INLINE TYPE ID = __VA_ARGS__;
24-
#define DEFINE_VIRTUAL_WG_T(ID) ID
25-
#define DEFINE_MPL_MAX_V(TYPE,ARG1,ARG2) mpl::max_v<TYPE, ARG1, ARG2>
26-
#define DEFINE_COND_VAL(TYPE,COND,TRUE_VAL,FALSE_VAL) conditional_value<COND,TYPE,TRUE_VAL,FALSE_VAL>::value
24+
#define MAX(TYPE,ARG1,ARG2) mpl::max_v<TYPE, ARG1, ARG2>
25+
#define SELECT(TYPE,COND,TRUE_VAL,FALSE_VAL) conditional_value<COND,TYPE,TRUE_VAL,FALSE_VAL>::value
2726
#include "impl/virtual_wg_size_def.hlsl"
28-
#undef DEFINE_COND_VAL
29-
#undef DEFINE_MPL_MAX_V
30-
#undef DEFINE_VIRTUAL_WG_T
27+
#undef SELECT
28+
#undef MAX
3129
#undef DEFINE_ASSIGN
3230

3331
// must have at least enough level 0 outputs to feed a single subgroup
@@ -39,17 +37,15 @@ template<class VirtualWorkgroup, uint16_t BaseItemsPerInvocation>
3937
struct items_per_invocation
4038
{
4139
#define DEFINE_ASSIGN(TYPE,ID,...) NBL_CONSTEXPR_STATIC_INLINE TYPE ID = __VA_ARGS__;
42-
#define DEFINE_VIRTUAL_WG_T(ID) VirtualWorkgroup::ID
43-
#define DEFINE_ITEMS_INVOC_T(ID) ID
44-
#define DEFINE_MPL_MIN_V(TYPE,ARG1,ARG2) mpl::min_v<TYPE, ARG1, ARG2>
45-
#define DEFINE_MPL_MAX_V(TYPE,ARG1,ARG2) mpl::max_v<TYPE, ARG1, ARG2>
46-
#define DEFINE_COND_VAL(TYPE,COND,TRUE_VAL,FALSE_VAL) conditional_value<COND,TYPE,TRUE_VAL,FALSE_VAL>::value
40+
#define VIRTUAL_WG_SIZE VirtualWorkgroup::
41+
#define MIN(TYPE,ARG1,ARG2) mpl::min_v<TYPE, ARG1, ARG2>
42+
#define MAX(TYPE,ARG1,ARG2) mpl::max_v<TYPE, ARG1, ARG2>
43+
#define SELECT(TYPE,COND,TRUE_VAL,FALSE_VAL) conditional_value<COND,TYPE,TRUE_VAL,FALSE_VAL>::value
4744
#include "impl/items_per_invoc_def.hlsl"
48-
#undef DEFINE_COND_VAL
49-
#undef DEFINE_MPL_MAX_V
50-
#undef DEFINE_MPL_MIN_V
51-
#undef DEFINE_ITEMS_INVOC_T
52-
#undef DEFINE_VIRTUAL_WG_T
45+
#undef SELECT
46+
#undef MAX
47+
#undef MIN
48+
#undef VIRTUAL_WG_SIZE
5349
#undef DEFINE_ASSIGN
5450

5551
using ItemsPerInvocation = tuple<integral_constant<uint16_t,value0>,integral_constant<uint16_t,value1>,integral_constant<uint16_t,value2> >;
@@ -64,17 +60,15 @@ struct ArithmeticConfiguration
6460
using ItemsPerInvocation = typename items_per_invoc_t::ItemsPerInvocation;
6561

6662
#define DEFINE_ASSIGN(TYPE,ID,...) NBL_CONSTEXPR_STATIC_INLINE TYPE ID = __VA_ARGS__;
67-
#define DEFINE_VIRTUAL_WG_T(ID) virtual_wg_t::ID
68-
#define DEFINE_ITEMS_INVOC_T(ID) items_per_invoc_t::ID
69-
#define DEFINE_CONFIG_T(ID) ID
70-
#define DEFINE_MPL_MAX_V(TYPE,ARG1,ARG2) mpl::max_v<TYPE, ARG1, ARG2>
71-
#define DEFINE_COND_VAL(TYPE,COND,TRUE_VAL,FALSE_VAL) conditional_value<COND,TYPE,TRUE_VAL,FALSE_VAL>::value
63+
#define VIRTUAL_WG_SIZE virtual_wg_t::
64+
#define ITEMS_PER_INVOC items_per_invoc_t::
65+
#define MAX(TYPE,ARG1,ARG2) mpl::max_v<TYPE, ARG1, ARG2>
66+
#define SELECT(TYPE,COND,TRUE_VAL,FALSE_VAL) conditional_value<COND,TYPE,TRUE_VAL,FALSE_VAL>::value
7267
#include "impl/arithmetic_config_def.hlsl"
73-
#undef DEFINE_COND_VAL
74-
#undef DEFINE_MPL_MAX_V
75-
#undef DEFINE_CONFIG_T
76-
#undef DEFINE_ITEMS_INVOC_T
77-
#undef DEFINE_VIRTUAL_WG_T
68+
#undef SELECT
69+
#undef MAX
70+
#undef ITEMS_PER_INVOC
71+
#undef VIRTUAL_WG_SIZE
7872
#undef DEFINE_ASSIGN
7973

8074
using ChannelStride = tuple<integral_constant<uint16_t,__padding>,integral_constant<uint16_t,__channelStride_1>,integral_constant<uint16_t,__channelStride_2> >; // we don't use stride 0
@@ -148,19 +142,15 @@ namespace impl
148142
{
149143
struct SVirtualWGSizeLog2
150144
{
151-
static SVirtualWGSizeLog2 create(const uint16_t _WorkgroupSizeLog2, const uint16_t _SubgroupSizeLog2)
145+
void init(const uint16_t _WorkgroupSizeLog2, const uint16_t _SubgroupSizeLog2)
152146
{
153-
SVirtualWGSizeLog2 retval;
154-
#define DEFINE_ASSIGN(TYPE,ID,...) retval.ID = __VA_ARGS__;
155-
#define DEFINE_VIRTUAL_WG_T(ID) retval.ID
156-
#define DEFINE_MPL_MAX_V(TYPE,ARG1,ARG2) hlsl::max<TYPE>(ARG1, ARG2)
157-
#define DEFINE_COND_VAL(TYPE,COND,TRUE_VAL,FALSE_VAL) (COND ? TRUE_VAL : FALSE_VAL)
147+
#define DEFINE_ASSIGN(TYPE,ID,...) ID = __VA_ARGS__;
148+
#define MAX(TYPE,ARG1,ARG2) hlsl::max<TYPE>(ARG1, ARG2)
149+
#define SELECT(TYPE,COND,TRUE_VAL,FALSE_VAL) (COND ? TRUE_VAL : FALSE_VAL)
158150
#include "impl/virtual_wg_size_def.hlsl"
159-
#undef DEFINE_COND_VAL
160-
#undef DEFINE_MPL_MAX_V
161-
#undef DEFINE_VIRTUAL_WG_T
151+
#undef SELECT
152+
#undef MAX
162153
#undef DEFINE_ASSIGN
163-
return retval;
164154
}
165155

166156
#define DEFINE_ASSIGN(TYPE,ID,...) TYPE ID;
@@ -170,23 +160,19 @@ struct SVirtualWGSizeLog2
170160

171161
struct SItemsPerInvoc
172162
{
173-
static SItemsPerInvoc create(const SVirtualWGSizeLog2 virtualWgSizeLog2, const uint16_t BaseItemsPerInvocation)
163+
void init(const SVirtualWGSizeLog2 virtualWgSizeLog2, const uint16_t BaseItemsPerInvocation)
174164
{
175-
SItemsPerInvoc retval;
176-
#define DEFINE_ASSIGN(TYPE,ID,...) retval.ID = __VA_ARGS__;
177-
#define DEFINE_VIRTUAL_WG_T(ID) virtualWgSizeLog2.ID
178-
#define DEFINE_ITEMS_INVOC_T(ID) retval.ID
179-
#define DEFINE_MPL_MIN_V(TYPE,ARG1,ARG2) hlsl::min<TYPE>(ARG1, ARG2)
180-
#define DEFINE_MPL_MAX_V(TYPE,ARG1,ARG2) hlsl::max<TYPE>(ARG1, ARG2)
181-
#define DEFINE_COND_VAL(TYPE,COND,TRUE_VAL,FALSE_VAL) (COND ? TRUE_VAL : FALSE_VAL)
165+
#define DEFINE_ASSIGN(TYPE,ID,...) ID = __VA_ARGS__;
166+
#define VIRTUAL_WG_SIZE virtualWgSizeLog2.
167+
#define MIN(TYPE,ARG1,ARG2) hlsl::min<TYPE>(ARG1, ARG2)
168+
#define MAX(TYPE,ARG1,ARG2) hlsl::max<TYPE>(ARG1, ARG2)
169+
#define SELECT(TYPE,COND,TRUE_VAL,FALSE_VAL) (COND ? TRUE_VAL : FALSE_VAL)
182170
#include "impl/items_per_invoc_def.hlsl"
183-
#undef DEFINE_COND_VAL
184-
#undef DEFINE_MPL_MAX_V
185-
#undef DEFINE_MPL_MIN_V
186-
#undef DEFINE_ITEMS_INVOC_T
187-
#undef DEFINE_VIRTUAL_WG_T
171+
#undef SELECT
172+
#undef MAX
173+
#undef MIN
174+
#undef VIRTUAL_WG_SIZE
188175
#undef DEFINE_ASSIGN
189-
return retval;
190176
}
191177

192178
#define DEFINE_ASSIGN(TYPE,ID,...) TYPE ID;
@@ -197,26 +183,24 @@ struct SItemsPerInvoc
197183

198184
struct SArithmeticConfiguration
199185
{
200-
static SArithmeticConfiguration create(const uint16_t _WorkgroupSizeLog2, const uint16_t _SubgroupSizeLog2, const uint16_t _ItemsPerInvocation)
186+
void init(const uint16_t _WorkgroupSizeLog2, const uint16_t _SubgroupSizeLog2, const uint16_t _ItemsPerInvocation)
201187
{
202-
impl::SVirtualWGSizeLog2 virtualWgSizeLog2 = impl::SVirtualWGSizeLog2::create(_WorkgroupSizeLog2, _SubgroupSizeLog2);
203-
impl::SItemsPerInvoc itemsPerInvoc = impl::SItemsPerInvoc::create(virtualWgSizeLog2, _ItemsPerInvocation);
204-
205-
SArithmeticConfiguration retval;
206-
#define DEFINE_ASSIGN(TYPE,ID,...) retval.ID = __VA_ARGS__;
207-
#define DEFINE_VIRTUAL_WG_T(ID) virtualWgSizeLog2.ID
208-
#define DEFINE_ITEMS_INVOC_T(ID) itemsPerInvoc.ID
209-
#define DEFINE_CONFIG_T(ID) retval.ID
210-
#define DEFINE_MPL_MAX_V(TYPE,ARG1,ARG2) hlsl::max<TYPE>(ARG1, ARG2)
211-
#define DEFINE_COND_VAL(TYPE,COND,TRUE_VAL,FALSE_VAL) (COND ? TRUE_VAL : FALSE_VAL)
188+
impl::SVirtualWGSizeLog2 virtualWgSizeLog2;
189+
virtualWgSizeLog2.init(_WorkgroupSizeLog2, _SubgroupSizeLog2);
190+
impl::SItemsPerInvoc itemsPerInvoc;
191+
itemsPerInvoc.init(virtualWgSizeLog2, _ItemsPerInvocation);
192+
193+
#define DEFINE_ASSIGN(TYPE,ID,...) ID = __VA_ARGS__;
194+
#define VIRTUAL_WG_SIZE virtualWgSizeLog2.
195+
#define ITEMS_PER_INVOC itemsPerInvoc.
196+
#define MAX(TYPE,ARG1,ARG2) hlsl::max<TYPE>(ARG1, ARG2)
197+
#define SELECT(TYPE,COND,TRUE_VAL,FALSE_VAL) (COND ? TRUE_VAL : FALSE_VAL)
212198
#include "impl/arithmetic_config_def.hlsl"
213-
#undef DEFINE_COND_VAL
214-
#undef DEFINE_MPL_MAX_V
215-
#undef DEFINE_CONFIG_T
216-
#undef DEFINE_ITEMS_INVOC_T
217-
#undef DEFINE_VIRTUAL_WG_T
199+
#undef SELECT
200+
#undef MAX
201+
#undef ITEMS_PER_INVOC
202+
#undef VIRTUAL_WG_SIZE
218203
#undef DEFINE_ASSIGN
219-
return retval;
220204
}
221205

222206
#define DEFINE_ASSIGN(TYPE,ID,...) TYPE ID;

include/nbl/builtin/hlsl/workgroup2/impl/arithmetic_config_def.hlsl

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,32 @@
33
// For conditions of distribution and use, see copyright notice in nabla.h
44

55
DEFINE_ASSIGN(uint16_t, WorkgroupSizeLog2, _WorkgroupSizeLog2)
6-
DEFINE_ASSIGN(uint16_t, WorkgroupSize, uint16_t(0x1u) << DEFINE_CONFIG_T(WorkgroupSizeLog2))
6+
DEFINE_ASSIGN(uint16_t, WorkgroupSize, uint16_t(0x1u) << WorkgroupSizeLog2)
77
DEFINE_ASSIGN(uint16_t, SubgroupSizeLog2, _SubgroupSizeLog2)
8-
DEFINE_ASSIGN(uint16_t, SubgroupSize, uint16_t(0x1u) << DEFINE_CONFIG_T(SubgroupSizeLog2))
8+
DEFINE_ASSIGN(uint16_t, SubgroupSize, uint16_t(0x1u) << SubgroupSizeLog2)
99

10-
DEFINE_ASSIGN(uint16_t, LevelCount, DEFINE_VIRTUAL_WG_T(levels))
11-
DEFINE_ASSIGN(uint16_t, VirtualWorkgroupSize, uint16_t(0x1u) << DEFINE_VIRTUAL_WG_T(value))
10+
DEFINE_ASSIGN(uint16_t, LevelCount, VIRTUAL_WG_SIZE levels)
11+
DEFINE_ASSIGN(uint16_t, VirtualWorkgroupSize, uint16_t(0x1u) << VIRTUAL_WG_SIZE value)
1212

13-
DEFINE_ASSIGN(uint16_t, ItemsPerInvocation_0, DEFINE_ITEMS_INVOC_T(value0))
14-
DEFINE_ASSIGN(uint16_t, ItemsPerInvocation_1, DEFINE_ITEMS_INVOC_T(value1))
15-
DEFINE_ASSIGN(uint16_t, ItemsPerInvocation_2, DEFINE_ITEMS_INVOC_T(value2))
13+
DEFINE_ASSIGN(uint16_t, ItemsPerInvocation_0, ITEMS_PER_INVOC value0)
14+
DEFINE_ASSIGN(uint16_t, ItemsPerInvocation_1, ITEMS_PER_INVOC value1)
15+
DEFINE_ASSIGN(uint16_t, ItemsPerInvocation_2, ITEMS_PER_INVOC value2)
1616

17-
DEFINE_ASSIGN(uint16_t, LevelInputCount_1, DEFINE_COND_VAL(uint16_t,(DEFINE_CONFIG_T(LevelCount)==3),
18-
DEFINE_MPL_MAX_V(uint16_t, (DEFINE_CONFIG_T(VirtualWorkgroupSize)>>DEFINE_CONFIG_T(SubgroupSizeLog2)), DEFINE_CONFIG_T(SubgroupSize)),
19-
DEFINE_CONFIG_T(SubgroupSize)*DEFINE_CONFIG_T(ItemsPerInvocation_1)))
20-
DEFINE_ASSIGN(uint16_t, LevelInputCount_2, DEFINE_COND_VAL(uint16_t,(DEFINE_CONFIG_T(LevelCount)==3),DEFINE_CONFIG_T(SubgroupSize)*DEFINE_CONFIG_T(ItemsPerInvocation_2),0))
21-
DEFINE_ASSIGN(uint16_t, VirtualInvocationsAtLevel1, DEFINE_CONFIG_T(LevelInputCount_1) / DEFINE_CONFIG_T(ItemsPerInvocation_1))
17+
DEFINE_ASSIGN(uint16_t, LevelInputCount_1, SELECT(uint16_t,(LevelCount==3),
18+
MAX(uint16_t, (VirtualWorkgroupSize>>SubgroupSizeLog2), SubgroupSize),
19+
SubgroupSize*ItemsPerInvocation_1))
20+
DEFINE_ASSIGN(uint16_t, LevelInputCount_2, SELECT(uint16_t,(LevelCount==3),SubgroupSize*ItemsPerInvocation_2,0))
21+
DEFINE_ASSIGN(uint16_t, VirtualInvocationsAtLevel1, LevelInputCount_1 / ItemsPerInvocation_1)
2222

23-
DEFINE_ASSIGN(uint16_t, __padding, DEFINE_COND_VAL(uint16_t,(DEFINE_CONFIG_T(LevelCount)==3),DEFINE_CONFIG_T(SubgroupSize)-1,0))
24-
DEFINE_ASSIGN(uint16_t, __channelStride_1, DEFINE_COND_VAL(uint16_t,(DEFINE_CONFIG_T(LevelCount)==3),DEFINE_CONFIG_T(VirtualInvocationsAtLevel1),DEFINE_CONFIG_T(SubgroupSize)) + DEFINE_CONFIG_T(__padding))
25-
DEFINE_ASSIGN(uint16_t, __channelStride_2, DEFINE_COND_VAL(uint16_t,(DEFINE_CONFIG_T(LevelCount)==3),DEFINE_CONFIG_T(SubgroupSize),0))
23+
DEFINE_ASSIGN(uint16_t, __padding, SELECT(uint16_t,(LevelCount==3),SubgroupSize-1,0))
24+
DEFINE_ASSIGN(uint16_t, __channelStride_1, SELECT(uint16_t,(LevelCount==3),VirtualInvocationsAtLevel1,SubgroupSize) + __padding)
25+
DEFINE_ASSIGN(uint16_t, __channelStride_2, SELECT(uint16_t,(LevelCount==3),SubgroupSize,0))
2626

2727
// user specified the shared mem size of Scalars
28-
DEFINE_ASSIGN(uint32_t, SharedScratchElementCount, DEFINE_COND_VAL(uint16_t,(DEFINE_CONFIG_T(LevelCount)==1),
28+
DEFINE_ASSIGN(uint32_t, SharedScratchElementCount, SELECT(uint16_t,(LevelCount==1),
2929
0,
30-
DEFINE_COND_VAL(uint16_t,(DEFINE_CONFIG_T(LevelCount)==3),
31-
DEFINE_CONFIG_T(LevelInputCount_2)+(DEFINE_CONFIG_T(SubgroupSize)*DEFINE_CONFIG_T(ItemsPerInvocation_1))-1,
30+
SELECT(uint16_t,(LevelCount==3),
31+
LevelInputCount_2+(SubgroupSize*ItemsPerInvocation_1)-1,
3232
0
33-
) + DEFINE_CONFIG_T(LevelInputCount_1)
33+
) + LevelInputCount_1
3434
))

include/nbl/builtin/hlsl/workgroup2/impl/items_per_invoc_def.hlsl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// This file is part of the "Nabla Engine".
33
// For conditions of distribution and use, see copyright notice in nabla.h
44

5-
DEFINE_ASSIGN(uint16_t, ItemsPerInvocationProductLog2, DEFINE_MPL_MAX_V(int16_t,DEFINE_VIRTUAL_WG_T(WorkgroupSizeLog2)-DEFINE_VIRTUAL_WG_T(SubgroupSizeLog2)*DEFINE_VIRTUAL_WG_T(levels),0))
5+
DEFINE_ASSIGN(uint16_t, ItemsPerInvocationProductLog2, MAX(int16_t,VIRTUAL_WG_SIZE WorkgroupSizeLog2-VIRTUAL_WG_SIZE SubgroupSizeLog2*VIRTUAL_WG_SIZE levels,0))
66
DEFINE_ASSIGN(uint16_t, value0, BaseItemsPerInvocation)
7-
DEFINE_ASSIGN(uint16_t, value1, uint16_t(0x1u) << DEFINE_COND_VAL(uint16_t,(DEFINE_VIRTUAL_WG_T(levels)==3),DEFINE_MPL_MIN_V(uint16_t,DEFINE_ITEMS_INVOC_T(ItemsPerInvocationProductLog2),2),DEFINE_ITEMS_INVOC_T(ItemsPerInvocationProductLog2)))
8-
DEFINE_ASSIGN(uint16_t, value2, uint16_t(0x1u) << DEFINE_MPL_MAX_V(int16_t,DEFINE_ITEMS_INVOC_T(ItemsPerInvocationProductLog2)-2,0))
7+
DEFINE_ASSIGN(uint16_t, value1, uint16_t(0x1u) << SELECT(uint16_t,(VIRTUAL_WG_SIZE levels==3),MIN(uint16_t,ItemsPerInvocationProductLog2,2),ItemsPerInvocationProductLog2))
8+
DEFINE_ASSIGN(uint16_t, value2, uint16_t(0x1u) << MAX(int16_t,ItemsPerInvocationProductLog2-2,0))

include/nbl/builtin/hlsl/workgroup2/impl/virtual_wg_size_def.hlsl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44

55
DEFINE_ASSIGN(uint16_t, WorkgroupSizeLog2, _WorkgroupSizeLog2)
66
DEFINE_ASSIGN(uint16_t, SubgroupSizeLog2, _SubgroupSizeLog2)
7-
DEFINE_ASSIGN(uint16_t, levels, DEFINE_COND_VAL(uint16_t,(_WorkgroupSizeLog2>_SubgroupSizeLog2),DEFINE_COND_VAL(uint16_t,(_WorkgroupSizeLog2>_SubgroupSizeLog2*2+2),3,2),1))
8-
DEFINE_ASSIGN(uint16_t, value, DEFINE_MPL_MAX_V(uint16_t, _SubgroupSizeLog2*DEFINE_VIRTUAL_WG_T(levels), _WorkgroupSizeLog2))
7+
DEFINE_ASSIGN(uint16_t, levels, SELECT(uint16_t,(_WorkgroupSizeLog2>_SubgroupSizeLog2),SELECT(uint16_t,(_WorkgroupSizeLog2>_SubgroupSizeLog2*2+2),3,2),1))
8+
DEFINE_ASSIGN(uint16_t, value, MAX(uint16_t, _SubgroupSizeLog2*levels, _WorkgroupSizeLog2))

src/nbl/builtin/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,9 @@ LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "hlsl/workgroup/shared_scan.hlsl")
347347
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "hlsl/workgroup/shuffle.hlsl")
348348
#workgroup2
349349
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "hlsl/workgroup2/arithmetic_config.hlsl")
350+
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "hlsl/workgroup2/impl/virtual_wg_size_def.hlsl")
351+
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "hlsl/workgroup2/impl/items_per_invoc_def.hlsl")
352+
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "hlsl/workgroup2/impl/arithmetic_config_def.hlsl")
350353
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "hlsl/workgroup2/arithmetic.hlsl")
351354
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "hlsl/workgroup2/shared_scan.hlsl")
352355
#Extensions

0 commit comments

Comments
 (0)