blob: 34b90605f81eb446d6009453cde5cd7820633bde (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj
/* A test of a generic function returning a generic struct (of built in type).
Note somewhat silly example because could just use float4(2.0f)
Works.
*/
//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
vector<T, N> broadcast<T, let N : int>(T v)
{
vector<T, N> vec;
for (int i = 0; i < N; ++i)
{
vec[i] = v;
}
return vec;
}
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
{
int index = dispatchThreadID.x;
let vec = broadcast<float, 4>(2.0f);
outputBuffer[index] = dot(vec, vec);
}
|