36 lines
621 B
HLSL
36 lines
621 B
HLSL
void set_int4(inout int4 vec, int idx, int val) {
|
|
vec = (idx.xxxx == int4(0, 1, 2, 3)) ? val.xxxx : vec;
|
|
}
|
|
|
|
[numthreads(1, 1, 1)]
|
|
void unused_entry_point() {
|
|
return;
|
|
}
|
|
|
|
struct S {
|
|
int4 a[4];
|
|
};
|
|
|
|
static int counter = 0;
|
|
|
|
int foo() {
|
|
counter = (counter + 1);
|
|
return counter;
|
|
}
|
|
|
|
int bar() {
|
|
counter = (counter + 2);
|
|
return counter;
|
|
}
|
|
|
|
void main() {
|
|
S x = (S)0;
|
|
const int tint_symbol_save = foo();
|
|
const int tint_symbol_1 = bar();
|
|
{
|
|
int4 tint_symbol_3[4] = x.a;
|
|
set_int4(tint_symbol_3[tint_symbol_save], tint_symbol_1, (x.a[tint_symbol_save][tint_symbol_1] + 5));
|
|
x.a = tint_symbol_3;
|
|
}
|
|
}
|