blob: a9c516744ca36791cba3ced78ca3befb57aa22dc [file] [log] [blame]
struct Particle {
float3 position[8];
float lifetime;
float4 color;
float3 velocity;
};
ByteAddressBuffer particles : register(t3, space1);
cbuffer cbuffer_sim : register(b4, space1) {
uint4 sim[1];
};
typedef float3 particles_load_1_ret[8];
particles_load_1_ret particles_load_1(uint offset) {
float3 arr[8] = (float3[8])0;
{
for(uint i_1 = 0u; (i_1 < 8u); i_1 = (i_1 + 1u)) {
arr[i_1] = asfloat(particles.Load3((offset + (i_1 * 16u))));
}
}
return arr;
}
Particle particles_load(uint offset) {
const Particle tint_symbol_2 = {particles_load_1((offset + 0u)), asfloat(particles.Load((offset + 128u))), asfloat(particles.Load4((offset + 144u))), asfloat(particles.Load3((offset + 160u)))};
return tint_symbol_2;
}
[numthreads(1, 1, 1)]
void main() {
Particle particle = particles_load(0u);
{
float3 tint_symbol_1[8] = particle.position;
tint_symbol_1[sim[0].x] = particle.position[sim[0].x];
particle.position = tint_symbol_1;
}
return;
}