rename pressure cache
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit

This commit is contained in:
austin 2024-12-13 20:02:34 -05:00
parent 2fda30c8c1
commit 254d8d3d9d
10 changed files with 27 additions and 27 deletions

View File

@ -33,7 +33,7 @@ typedef struct {
jfieldID worldZId; jfieldID worldZId;
jfieldID neighborsId; jfieldID neighborsId;
jfieldID divergenceCacheId; jfieldID divergenceCacheId;
jfieldID scalarPotentialCacheId; jfieldID pressureCacheId;
jfieldID chunkmaskJId; jfieldID chunkmaskJId;
jfieldID updatedId; jfieldID updatedId;
jfieldID totalDensityId; jfieldID totalDensityId;

View File

@ -62,7 +62,7 @@ typedef struct {
/** /**
* Caches the scalar potential of this chunk for usage next frame * Caches the scalar potential of this chunk for usage next frame
*/ */
float * scalarPotentialCache[27]; float * pressureCache[27];
/** /**
* The bitmask which tracks valid neighbors * The bitmask which tracks valid neighbors

View File

@ -370,7 +370,7 @@ LIBRARY_API void fluid_solve_bounds(int numReadIn, Chunk ** chunkViewC, Environm
fluid_solve_bounds_checker(current->w0,0); fluid_solve_bounds_checker(current->w0,0);
fluid_solve_bounds_checker(current->bounds,BOUND_MAX_VALUE); fluid_solve_bounds_checker(current->bounds,BOUND_MAX_VALUE);
fluid_solve_bounds_checker(current->divergenceCache,0); fluid_solve_bounds_checker(current->divergenceCache,0);
fluid_solve_bounds_checker(current->scalarPotentialCache,0); fluid_solve_bounds_checker(current->pressureCache,0);
} }
} }

View File

@ -128,7 +128,7 @@ JNIEXPORT void JNICALL Java_electrosphere_server_fluid_simulator_FluidAccelerate
environment->lookupTable.serverFluidChunkTable.v0JId = (*env)->GetFieldID(env,fluidSimStorageClass,"b0VelocityY","[Ljava/nio/ByteBuffer;"); environment->lookupTable.serverFluidChunkTable.v0JId = (*env)->GetFieldID(env,fluidSimStorageClass,"b0VelocityY","[Ljava/nio/ByteBuffer;");
environment->lookupTable.serverFluidChunkTable.w0JId = (*env)->GetFieldID(env,fluidSimStorageClass,"b0VelocityZ","[Ljava/nio/ByteBuffer;"); environment->lookupTable.serverFluidChunkTable.w0JId = (*env)->GetFieldID(env,fluidSimStorageClass,"b0VelocityZ","[Ljava/nio/ByteBuffer;");
environment->lookupTable.serverFluidChunkTable.boundsId = (*env)->GetFieldID(env,fluidSimStorageClass,"bBounds","[Ljava/nio/ByteBuffer;"); environment->lookupTable.serverFluidChunkTable.boundsId = (*env)->GetFieldID(env,fluidSimStorageClass,"bBounds","[Ljava/nio/ByteBuffer;");
environment->lookupTable.serverFluidChunkTable.scalarPotentialCacheId = (*env)->GetFieldID(env,fluidSimStorageClass,"bScalarPotentialCache","[Ljava/nio/ByteBuffer;"); environment->lookupTable.serverFluidChunkTable.pressureCacheId = (*env)->GetFieldID(env,fluidSimStorageClass,"bPressureCache","[Ljava/nio/ByteBuffer;");
environment->lookupTable.serverFluidChunkTable.divergenceCacheId = (*env)->GetFieldID(env,fluidSimStorageClass,"bDivergenceCache","[Ljava/nio/ByteBuffer;"); environment->lookupTable.serverFluidChunkTable.divergenceCacheId = (*env)->GetFieldID(env,fluidSimStorageClass,"bDivergenceCache","[Ljava/nio/ByteBuffer;");
environment->lookupTable.serverFluidChunkTable.worldXId = (*env)->GetFieldID(env,fluidSimStorageClass,"worldX","I"); environment->lookupTable.serverFluidChunkTable.worldXId = (*env)->GetFieldID(env,fluidSimStorageClass,"worldX","I");
environment->lookupTable.serverFluidChunkTable.worldYId = (*env)->GetFieldID(env,fluidSimStorageClass,"worldY","I"); environment->lookupTable.serverFluidChunkTable.worldYId = (*env)->GetFieldID(env,fluidSimStorageClass,"worldY","I");
@ -165,7 +165,7 @@ int readInChunks(JNIEnv * env, jobject chunkList, Environment * environment){
jfieldID v0JId = environment->lookupTable.serverFluidChunkTable.v0JId; jfieldID v0JId = environment->lookupTable.serverFluidChunkTable.v0JId;
jfieldID w0JId = environment->lookupTable.serverFluidChunkTable.w0JId; jfieldID w0JId = environment->lookupTable.serverFluidChunkTable.w0JId;
jfieldID boundsId = environment->lookupTable.serverFluidChunkTable.boundsId; jfieldID boundsId = environment->lookupTable.serverFluidChunkTable.boundsId;
jfieldID scalarPotentialCacheId = environment->lookupTable.serverFluidChunkTable.scalarPotentialCacheId; jfieldID pressureCacheId = environment->lookupTable.serverFluidChunkTable.pressureCacheId;
jfieldID divergenceCacheId = environment->lookupTable.serverFluidChunkTable.divergenceCacheId; jfieldID divergenceCacheId = environment->lookupTable.serverFluidChunkTable.divergenceCacheId;
jfieldID chunkmaskJId = environment->lookupTable.serverFluidChunkTable.chunkmaskJId; jfieldID chunkmaskJId = environment->lookupTable.serverFluidChunkTable.chunkmaskJId;
jfieldID asleepId = environment->lookupTable.serverFluidChunkTable.asleepId; jfieldID asleepId = environment->lookupTable.serverFluidChunkTable.asleepId;
@ -188,7 +188,7 @@ int readInChunks(JNIEnv * env, jobject chunkList, Environment * environment){
jobjectArray v0; jobjectArray v0;
jobjectArray w0; jobjectArray w0;
jobjectArray bounds; jobjectArray bounds;
jobjectArray scalarPotentialCache; jobjectArray pressureCache;
jobjectArray divergenceCache; jobjectArray divergenceCache;
int chunkMask; int chunkMask;
@ -236,7 +236,7 @@ int readInChunks(JNIEnv * env, jobject chunkList, Environment * environment){
v0 = (*env)->GetObjectField(env,chunkJRaw,v0JId); v0 = (*env)->GetObjectField(env,chunkJRaw,v0JId);
w0 = (*env)->GetObjectField(env,chunkJRaw,w0JId); w0 = (*env)->GetObjectField(env,chunkJRaw,w0JId);
bounds = (*env)->GetObjectField(env,chunkJRaw,boundsId); bounds = (*env)->GetObjectField(env,chunkJRaw,boundsId);
scalarPotentialCache = (*env)->GetObjectField(env,chunkJRaw,scalarPotentialCacheId); pressureCache = (*env)->GetObjectField(env,chunkJRaw,pressureCacheId);
divergenceCache = (*env)->GetObjectField(env,chunkJRaw,divergenceCacheId); divergenceCache = (*env)->GetObjectField(env,chunkJRaw,divergenceCacheId);
newChunk->chunkMask = chunkMask; newChunk->chunkMask = chunkMask;
newChunk->chunkJRaw = chunkJRaw; newChunk->chunkJRaw = chunkJRaw;
@ -254,8 +254,8 @@ int readInChunks(JNIEnv * env, jobject chunkList, Environment * environment){
newChunk->v0[j] = getArray(env,v0,j); newChunk->v0[j] = getArray(env,v0,j);
newChunk->w0[j] = getArray(env,w0,j); newChunk->w0[j] = getArray(env,w0,j);
newChunk->bounds[j] = getArray(env,bounds,j); newChunk->bounds[j] = getArray(env,bounds,j);
newChunk->scalarPotentialCache[j] = getArray(env,scalarPotentialCache,j); newChunk->pressureCache[j] = getArray(env,pressureCache,j);
newChunk->divergenceCache[j] = getArray(env,scalarPotentialCache,j); newChunk->divergenceCache[j] = getArray(env,pressureCache,j);
} else { } else {
newChunk->d[j] = NULL; newChunk->d[j] = NULL;
newChunk->d0[j] = NULL; newChunk->d0[j] = NULL;
@ -266,7 +266,7 @@ int readInChunks(JNIEnv * env, jobject chunkList, Environment * environment){
newChunk->v0[j] = NULL; newChunk->v0[j] = NULL;
newChunk->w0[j] = NULL; newChunk->w0[j] = NULL;
newChunk->bounds[j] = NULL; newChunk->bounds[j] = NULL;
newChunk->scalarPotentialCache[j] = NULL; newChunk->pressureCache[j] = NULL;
newChunk->divergenceCache[j] = NULL; newChunk->divergenceCache[j] = NULL;
} }
} }

View File

@ -379,6 +379,6 @@ void fluid_grid2_estimate_ghost_flux(float ** arrays){
* Updates the flux stored in the ghost cells of this chunk * Updates the flux stored in the ghost cells of this chunk
*/ */
void fluid_grid2_update_ghost_flux(Environment * environment, Chunk * chunk){ void fluid_grid2_update_ghost_flux(Environment * environment, Chunk * chunk){
fluid_grid2_estimate_ghost_flux(chunk->scalarPotentialCache); fluid_grid2_estimate_ghost_flux(chunk->pressureCache);
fluid_grid2_estimate_ghost_flux(chunk->divergenceCache); fluid_grid2_estimate_ghost_flux(chunk->divergenceCache);
} }

View File

@ -452,7 +452,7 @@ static inline void fluid_grid2_rewrite_bounds(Environment * environment, Chunk *
fluid_grid2_populate_masked_arr(environment,chunk->v0[CENTER_LOC], environment->state.grid2.fluid_grid2_neighborArr_v0); fluid_grid2_populate_masked_arr(environment,chunk->v0[CENTER_LOC], environment->state.grid2.fluid_grid2_neighborArr_v0);
fluid_grid2_populate_masked_arr(environment,chunk->w0[CENTER_LOC], environment->state.grid2.fluid_grid2_neighborArr_w0); fluid_grid2_populate_masked_arr(environment,chunk->w0[CENTER_LOC], environment->state.grid2.fluid_grid2_neighborArr_w0);
fluid_grid2_populate_masked_arr(environment,chunk->bounds[CENTER_LOC], environment->state.grid2.fluid_grid2_neighborArr_bounds); fluid_grid2_populate_masked_arr(environment,chunk->bounds[CENTER_LOC], environment->state.grid2.fluid_grid2_neighborArr_bounds);
fluid_grid2_populate_masked_arr(environment,chunk->scalarPotentialCache[CENTER_LOC], environment->state.grid2.fluid_grid2_neighborArr_scalarCache); fluid_grid2_populate_masked_arr(environment,chunk->pressureCache[CENTER_LOC], environment->state.grid2.fluid_grid2_neighborArr_scalarCache);
fluid_grid2_populate_masked_arr(environment,chunk->divergenceCache[CENTER_LOC], environment->state.grid2.fluid_grid2_neighborArr_divergenceCache); fluid_grid2_populate_masked_arr(environment,chunk->divergenceCache[CENTER_LOC], environment->state.grid2.fluid_grid2_neighborArr_divergenceCache);
} }

View File

@ -281,7 +281,7 @@ LIBRARY_API void fluid_grid2_solveProjection(
// } // }
//store scalar potential in cache //store scalar potential in cache
util_matrix_copy(p,chunk->scalarPotentialCache[CENTER_LOC],DIM); util_matrix_copy(p,chunk->pressureCache[CENTER_LOC],DIM);
} }
/** /**

View File

@ -77,7 +77,7 @@ JNIEXPORT void JNICALL Java_electrosphere_server_fluid_manager_ServerFluidChunk_
jfieldID v0Id = (*env)->GetFieldID(env,serverFluidChunkClass,"b0VelocityY","[Ljava/nio/ByteBuffer;"); jfieldID v0Id = (*env)->GetFieldID(env,serverFluidChunkClass,"b0VelocityY","[Ljava/nio/ByteBuffer;");
jfieldID w0Id = (*env)->GetFieldID(env,serverFluidChunkClass,"b0VelocityZ","[Ljava/nio/ByteBuffer;"); jfieldID w0Id = (*env)->GetFieldID(env,serverFluidChunkClass,"b0VelocityZ","[Ljava/nio/ByteBuffer;");
jfieldID boundsId = (*env)->GetFieldID(env,serverFluidChunkClass,"bBounds","[Ljava/nio/ByteBuffer;"); jfieldID boundsId = (*env)->GetFieldID(env,serverFluidChunkClass,"bBounds","[Ljava/nio/ByteBuffer;");
jfieldID scalarPotentialCacheId = (*env)->GetFieldID(env,serverFluidChunkClass,"bScalarPotentialCache","[Ljava/nio/ByteBuffer;"); jfieldID pressureCacheId = (*env)->GetFieldID(env,serverFluidChunkClass,"bPressureCache","[Ljava/nio/ByteBuffer;");
jfieldID divergenceCacheId = (*env)->GetFieldID(env,serverFluidChunkClass,"bDivergenceCache","[Ljava/nio/ByteBuffer;"); jfieldID divergenceCacheId = (*env)->GetFieldID(env,serverFluidChunkClass,"bDivergenceCache","[Ljava/nio/ByteBuffer;");
allocateCenterField(env,fluidObj,dId); allocateCenterField(env,fluidObj,dId);
allocateCenterField(env,fluidObj,d0Id); allocateCenterField(env,fluidObj,d0Id);
@ -88,7 +88,7 @@ JNIEXPORT void JNICALL Java_electrosphere_server_fluid_manager_ServerFluidChunk_
allocateCenterField(env,fluidObj,v0Id); allocateCenterField(env,fluidObj,v0Id);
allocateCenterField(env,fluidObj,w0Id); allocateCenterField(env,fluidObj,w0Id);
allocateCenterField(env,fluidObj,boundsId); allocateCenterField(env,fluidObj,boundsId);
allocateCenterField(env,fluidObj,scalarPotentialCacheId); allocateCenterField(env,fluidObj,pressureCacheId);
allocateCenterField(env,fluidObj,divergenceCacheId); allocateCenterField(env,fluidObj,divergenceCacheId);
} }
@ -142,7 +142,7 @@ JNIEXPORT void JNICALL Java_electrosphere_server_fluid_manager_ServerFluidChunk_
jfieldID v0Id = (*env)->GetFieldID(env,serverFluidChunkClass,"b0VelocityY","[Ljava/nio/ByteBuffer;"); jfieldID v0Id = (*env)->GetFieldID(env,serverFluidChunkClass,"b0VelocityY","[Ljava/nio/ByteBuffer;");
jfieldID w0Id = (*env)->GetFieldID(env,serverFluidChunkClass,"b0VelocityZ","[Ljava/nio/ByteBuffer;"); jfieldID w0Id = (*env)->GetFieldID(env,serverFluidChunkClass,"b0VelocityZ","[Ljava/nio/ByteBuffer;");
jfieldID boundsId = (*env)->GetFieldID(env,serverFluidChunkClass,"bBounds","[Ljava/nio/ByteBuffer;"); jfieldID boundsId = (*env)->GetFieldID(env,serverFluidChunkClass,"bBounds","[Ljava/nio/ByteBuffer;");
jfieldID scalarPotentialCacheId = (*env)->GetFieldID(env,serverFluidChunkClass,"bScalarPotentialCache","[Ljava/nio/ByteBuffer;"); jfieldID pressureCacheId = (*env)->GetFieldID(env,serverFluidChunkClass,"bPressureCache","[Ljava/nio/ByteBuffer;");
jfieldID divergenceCacheId = (*env)->GetFieldID(env,serverFluidChunkClass,"bDivergenceCache","[Ljava/nio/ByteBuffer;"); jfieldID divergenceCacheId = (*env)->GetFieldID(env,serverFluidChunkClass,"bDivergenceCache","[Ljava/nio/ByteBuffer;");
freeCenterField(env,fluidObj,dId); freeCenterField(env,fluidObj,dId);
freeCenterField(env,fluidObj,d0Id); freeCenterField(env,fluidObj,d0Id);
@ -153,7 +153,7 @@ JNIEXPORT void JNICALL Java_electrosphere_server_fluid_manager_ServerFluidChunk_
freeCenterField(env,fluidObj,v0Id); freeCenterField(env,fluidObj,v0Id);
freeCenterField(env,fluidObj,w0Id); freeCenterField(env,fluidObj,w0Id);
freeCenterField(env,fluidObj,boundsId); freeCenterField(env,fluidObj,boundsId);
freeCenterField(env,fluidObj,scalarPotentialCacheId); freeCenterField(env,fluidObj,pressureCacheId);
freeCenterField(env,fluidObj,divergenceCacheId); freeCenterField(env,fluidObj,divergenceCacheId);
} }

View File

@ -159,7 +159,7 @@ public class ServerFluidChunk {
/** /**
* The array storing cached pressure data * The array storing cached pressure data
*/ */
public ByteBuffer[] bScalarPotentialCache = new ByteBuffer[ARRAY_CT]; public ByteBuffer[] bPressureCache = new ByteBuffer[ARRAY_CT];
/** /**
* The array of pointers to neighboring chunks * The array of pointers to neighboring chunks
@ -236,7 +236,7 @@ public class ServerFluidChunk {
this.b0VelocityZ[CENTER_BUFF].order(ByteOrder.LITTLE_ENDIAN); this.b0VelocityZ[CENTER_BUFF].order(ByteOrder.LITTLE_ENDIAN);
this.bBounds[CENTER_BUFF].order(ByteOrder.LITTLE_ENDIAN); this.bBounds[CENTER_BUFF].order(ByteOrder.LITTLE_ENDIAN);
this.bDivergenceCache[CENTER_BUFF].order(ByteOrder.LITTLE_ENDIAN); this.bDivergenceCache[CENTER_BUFF].order(ByteOrder.LITTLE_ENDIAN);
this.bScalarPotentialCache[CENTER_BUFF].order(ByteOrder.LITTLE_ENDIAN); this.bPressureCache[CENTER_BUFF].order(ByteOrder.LITTLE_ENDIAN);
//get float view //get float view
this.weights = this.bWeights[CENTER_BUFF].asFloatBuffer(); this.weights = this.bWeights[CENTER_BUFF].asFloatBuffer();
@ -546,7 +546,7 @@ public class ServerFluidChunk {
b0VelocityZ[index] = null; b0VelocityZ[index] = null;
bBounds[index] = null; bBounds[index] = null;
bDivergenceCache[index] = null; bDivergenceCache[index] = null;
bScalarPotentialCache[index] = null; bPressureCache[index] = null;
neighbors[index] = null; neighbors[index] = null;
} else { } else {
bWeights[index] = neighbor.bWeights[CENTER_BUFF]; bWeights[index] = neighbor.bWeights[CENTER_BUFF];
@ -560,7 +560,7 @@ public class ServerFluidChunk {
b0VelocityZ[index] = neighbor.b0VelocityZ[CENTER_BUFF]; b0VelocityZ[index] = neighbor.b0VelocityZ[CENTER_BUFF];
bBounds[index] = neighbor.bBounds[CENTER_BUFF]; bBounds[index] = neighbor.bBounds[CENTER_BUFF];
bDivergenceCache[index] = neighbor.bDivergenceCache[CENTER_BUFF]; bDivergenceCache[index] = neighbor.bDivergenceCache[CENTER_BUFF];
bScalarPotentialCache[index] = neighbor.bScalarPotentialCache[CENTER_BUFF]; bPressureCache[index] = neighbor.bPressureCache[CENTER_BUFF];
neighbors[index] = neighbor; neighbors[index] = neighbor;
} }
} }
@ -605,7 +605,7 @@ public class ServerFluidChunk {
b0VelocityZ[i] = null; b0VelocityZ[i] = null;
bBounds[i] = null; bBounds[i] = null;
bDivergenceCache[i] = null; bDivergenceCache[i] = null;
bScalarPotentialCache[i] = null; bPressureCache[i] = null;
} }
} }

View File

@ -46,7 +46,7 @@ Chunk * chunk_create(int x, int y, int z){
chunk1->v0[i] = NULL; chunk1->v0[i] = NULL;
chunk1->w0[i] = NULL; chunk1->w0[i] = NULL;
chunk1->bounds[i] = NULL; chunk1->bounds[i] = NULL;
chunk1->scalarPotentialCache[i] = NULL; chunk1->pressureCache[i] = NULL;
chunk1->divergenceCache[i] = NULL; chunk1->divergenceCache[i] = NULL;
} }
chunk1->d[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float)); chunk1->d[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float));
@ -58,7 +58,7 @@ Chunk * chunk_create(int x, int y, int z){
chunk1->v0[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float)); chunk1->v0[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float));
chunk1->w0[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float)); chunk1->w0[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float));
chunk1->bounds[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float)); chunk1->bounds[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float));
chunk1->scalarPotentialCache[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float)); chunk1->pressureCache[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float));
chunk1->divergenceCache[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float)); chunk1->divergenceCache[CENTER_LOC] = (float *)calloc(1,DIM * DIM * DIM * sizeof(float));
chunk1->x = x; chunk1->x = x;
chunk1->y = y; chunk1->y = y;
@ -79,7 +79,7 @@ void chunk_free(Chunk * chunk){
free(chunk->v0[CENTER_LOC]); free(chunk->v0[CENTER_LOC]);
free(chunk->w0[CENTER_LOC]); free(chunk->w0[CENTER_LOC]);
free(chunk->bounds[CENTER_LOC]); free(chunk->bounds[CENTER_LOC]);
free(chunk->scalarPotentialCache[CENTER_LOC]); free(chunk->pressureCache[CENTER_LOC]);
free(chunk->divergenceCache[CENTER_LOC]); free(chunk->divergenceCache[CENTER_LOC]);
free(chunk); free(chunk);
} }
@ -124,7 +124,7 @@ void chunk_fill(Chunk * chunk, float val){
chunk->v0[CENTER_LOC][i] = val; chunk->v0[CENTER_LOC][i] = val;
chunk->w0[CENTER_LOC][i] = val; chunk->w0[CENTER_LOC][i] = val;
chunk->bounds[CENTER_LOC][i] = val; chunk->bounds[CENTER_LOC][i] = val;
chunk->scalarPotentialCache[CENTER_LOC][i] = val; chunk->pressureCache[CENTER_LOC][i] = val;
chunk->divergenceCache[CENTER_LOC][i] = val; chunk->divergenceCache[CENTER_LOC][i] = val;
} }
} }
@ -158,7 +158,7 @@ void chunk_link_by_index(Chunk * chunk1, Chunk * chunk2, int x, int y, int z){
chunk1->v0[CK(x,y,z)] = chunk2->v0[CENTER_LOC]; chunk1->v0[CK(x,y,z)] = chunk2->v0[CENTER_LOC];
chunk1->w0[CK(x,y,z)] = chunk2->w0[CENTER_LOC]; chunk1->w0[CK(x,y,z)] = chunk2->w0[CENTER_LOC];
chunk1->bounds[CK(x,y,z)] = chunk2->bounds[CENTER_LOC]; chunk1->bounds[CK(x,y,z)] = chunk2->bounds[CENTER_LOC];
chunk1->scalarPotentialCache[CK(x,y,z)] = chunk2->scalarPotentialCache[CENTER_LOC]; chunk1->pressureCache[CK(x,y,z)] = chunk2->pressureCache[CENTER_LOC];
chunk1->divergenceCache[CK(x,y,z)] = chunk2->divergenceCache[CENTER_LOC]; chunk1->divergenceCache[CK(x,y,z)] = chunk2->divergenceCache[CENTER_LOC];
} }