time tracking in grid2
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit

This commit is contained in:
austin 2024-12-12 00:07:30 -05:00
parent 0f4379920b
commit eed5f79130
3 changed files with 29 additions and 1 deletions

View File

@ -72,6 +72,8 @@ typedef struct {
double existingDensity; double existingDensity;
double newDensity; double newDensity;
double normalizationRatio; double normalizationRatio;
double densityTime;
double velocityTime;
int frame; int frame;
} FluidSimState; } FluidSimState;

View File

@ -1,6 +1,7 @@
#include <stdint.h> #include <stdint.h>
#include <stdlib.h> #include <stdlib.h>
#include <immintrin.h> #include <immintrin.h>
#include <sys/time.h>
//native interfaces //native interfaces
#include "native/electrosphere_server_fluid_simulator_FluidAcceleratedSimulator.h" #include "native/electrosphere_server_fluid_simulator_FluidAcceleratedSimulator.h"
@ -43,6 +44,11 @@ float * fluid_grid2_neighborArr_v0;
float * fluid_grid2_neighborArr_w0; float * fluid_grid2_neighborArr_w0;
float * fluid_grid2_neighborArr_bounds; float * fluid_grid2_neighborArr_bounds;
/**
* Used for storing timings
*/
static struct timeval tv;
LIBRARY_API void fluid_grid2_simulate( LIBRARY_API void fluid_grid2_simulate(
int numChunks, int numChunks,
Chunk ** passedInChunks, Chunk ** passedInChunks,
@ -50,8 +56,11 @@ LIBRARY_API void fluid_grid2_simulate(
jfloat timestep jfloat timestep
){ ){
Chunk ** chunks = passedInChunks; Chunk ** chunks = passedInChunks;
double start, end, perMilli;
gettimeofday(&tv,NULL);
start = 1000000.0 * tv.tv_sec + tv.tv_usec;
// //
//Velocity step //Velocity step
// //
@ -110,7 +119,12 @@ LIBRARY_API void fluid_grid2_simulate(
} }
//get time at end
gettimeofday(&tv,NULL);
end = 1000000.0 * tv.tv_sec + tv.tv_usec;
perMilli = (end - start) / 1000.0f;
environment->state.velocityTime = perMilli;
start = end;
///------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ///------------------------------------------------------------------------------------------------------------------------------------------------------------------------
///------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ///------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@ -144,6 +158,12 @@ LIBRARY_API void fluid_grid2_simulate(
fluid_grid2_advectDensity(currentChunk->d,currentChunk->d0,currentChunk->u,currentChunk->v,currentChunk->w,timestep); fluid_grid2_advectDensity(currentChunk->d,currentChunk->d0,currentChunk->u,currentChunk->v,currentChunk->w,timestep);
} }
//get time at end
gettimeofday(&tv,NULL);
end = 1000000.0 * tv.tv_sec + tv.tv_usec;
perMilli = (end - start) / 1000.0f;
environment->state.densityTime = perMilli;
// //
//mirror densities //mirror densities

View File

@ -110,6 +110,8 @@ int fluid_sim_grid2_speed_test1(){
printf("Frame time per chunk (micro): %lf \n",avgPerChunk); printf("Frame time per chunk (micro): %lf \n",avgPerChunk);
printf("Frame time per chunk (milli): %lf \n",perMilli); printf("Frame time per chunk (milli): %lf \n",perMilli);
printf("Target time (milli): %f \n",TIME_PER_CHUNK); printf("Target time (milli): %f \n",TIME_PER_CHUNK);
printf("Velocity time (milli): %f \n",env->state.velocityTime);
printf("Density time (milli): %f \n",env->state.densityTime);
printf("\n"); printf("\n");
rVal++; rVal++;
} }
@ -162,6 +164,8 @@ int fluid_sim_grid2_speed_test2(){
printf("Frame time per chunk (micro): %lf \n",avgPerChunk); printf("Frame time per chunk (micro): %lf \n",avgPerChunk);
printf("Frame time per chunk (milli): %lf \n",perMilli); printf("Frame time per chunk (milli): %lf \n",perMilli);
printf("Target time (milli): %f \n",TIME_PER_CHUNK); printf("Target time (milli): %f \n",TIME_PER_CHUNK);
printf("Velocity time (milli): %f \n",env->state.velocityTime);
printf("Density time (milli): %f \n",env->state.densityTime);
printf("\n"); printf("\n");
rVal++; rVal++;
} }
@ -214,6 +218,8 @@ int fluid_sim_grid2_speed_test3(){
printf("Frame time per chunk (micro): %lf \n",avgPerChunk); printf("Frame time per chunk (micro): %lf \n",avgPerChunk);
printf("Frame time per chunk (milli): %lf \n",perMilli); printf("Frame time per chunk (milli): %lf \n",perMilli);
printf("Target time (milli): %f \n",TIME_PER_CHUNK); printf("Target time (milli): %f \n",TIME_PER_CHUNK);
printf("Velocity time (milli): %f \n",env->state.velocityTime);
printf("Density time (milli): %f \n",env->state.densityTime);
printf("\n"); printf("\n");
rVal++; rVal++;
} }