haoyunfeix / fluid

0 stars 0 forks source link

Failure on D3D11 backend #8

Open haoyunfeix opened 5 years ago

haoyunfeix commented 5 years ago
void main()
{
    int ID = int(gl_GlobalInvocationID.x);
    int G_ID = GridGetValue(gridRO.data[ID].grid);
    //particlesRW.data[ID] = particlesRO.data[G_ID];  //useProgram: program not valid
    particlesRW.data[ID].position = particlesRO.data[G_ID].position;
    particlesRW.data[ID].velocity = particlesRO.data[G_ID].velocity;
}
void main()
{
    uint ID = gl_GlobalInvocationID.y * uint(cb.g_iWidth) + gl_GlobalInvocationID.x;
    transpose_shared_data[gl_LocalInvocationIndex] = inputData.data[ID].grid;
    //transpose_shared_data[gl_LocalInvocationIndex] = inputData.data[gl_GlobalInvocationID.y * uint(cb.g_iWidth) + gl_GlobalInvocationID.x].grid;
    GroupMemoryBarrierWithGroupSync();
    uvec2 XY = gl_GlobalInvocationID.yx - gl_LocalInvocationID.yx + gl_LocalInvocationID.xy;
    uint CID = XY.y * uint(cb.g_iHeight) + XY.x;
    uint DID = gl_LocalInvocationID.x * 16u + gl_LocalInvocationID.y;
    tempData.data[CID].grid = transpose_shared_data[DID];
    //tempData.data[XY.y * uint(cb.g_iHeight) + XY.x].grid = transpose_shared_data[gl_LocalInvocationID.x * 16u + gl_LocalInvocationID.y];
}
haoyunfeix commented 5 years ago

FPS on Nvidia M1200

Backend Simple SharedMemory Grid
OpenGL 11 12 60
D3D11 9 15 60
haoyunfeix commented 5 years ago

FPS on HD630 (16K Particles)

Backend Simple SharedMemory Grid
OpenGL 23 27 60
D3D11 14 28 60