MPC Actuator support

This commit is contained in:
Daniel Mills 2021-07-27 17:24:17 -04:00
parent 8d967856b5
commit 48f581525e
4 changed files with 21 additions and 9 deletions

View File

@ -63,7 +63,7 @@ public class IrisBiomeActuator extends EngineAssignedActuator<Biome> {
@BlockCoordinates @BlockCoordinates
@Override @Override
public void onActuate(int x, int z, Hunk<Biome> h) { public void onActuate(int x, int z, Hunk<Biome> h, boolean multicore) {
PrecisionStopwatch p = PrecisionStopwatch.start(); PrecisionStopwatch p = PrecisionStopwatch.start();
int zf, maxHeight; int zf, maxHeight;
IrisBiome ib; IrisBiome ib;

View File

@ -80,7 +80,7 @@ public class IrisDecorantActuator extends EngineAssignedActuator<BlockData> {
@BlockCoordinates @BlockCoordinates
@Override @Override
public void onActuate(int x, int z, Hunk<BlockData> output) { public void onActuate(int x, int z, Hunk<BlockData> output, boolean multicore) {
if (!getEngine().getDimension().isDecorate()) { if (!getEngine().getDimension().isDecorate()) {
return; return;
} }

View File

@ -53,7 +53,7 @@ public class IrisTerrainIslandActuator extends EngineAssignedActuator<BlockData>
@BlockCoordinates @BlockCoordinates
@Override @Override
public void onActuate(int x, int z, Hunk<BlockData> h) { public void onActuate(int x, int z, Hunk<BlockData> h, boolean multicore) {
PrecisionStopwatch p = PrecisionStopwatch.start(); PrecisionStopwatch p = PrecisionStopwatch.start();
int i, zf, depth, surface, realX, realZ; int i, zf, depth, surface, realX, realZ;
IrisBiome biome; IrisBiome biome;

View File

@ -51,15 +51,27 @@ public class IrisTerrainNormalActuator extends EngineAssignedActuator<BlockData>
@BlockCoordinates @BlockCoordinates
@Override @Override
public void onActuate(int x, int z, Hunk<BlockData> h) { public void onActuate(int x, int z, Hunk<BlockData> h, boolean multicore) {
PrecisionStopwatch p = PrecisionStopwatch.start(); PrecisionStopwatch p = PrecisionStopwatch.start();
BurstExecutor e = getEngine().burst().burst(h.getWidth());
for (int xf = 0; xf < h.getWidth(); xf++) { if(multicore)
int finalXf = xf; {
e.queue(() -> terrainSliver(x, z, finalXf, h)); BurstExecutor e = getEngine().burst().burst(h.getWidth());
for (int xf = 0; xf < h.getWidth(); xf++) {
int finalXf = xf;
e.queue(() -> terrainSliver(x, z, finalXf, h));
}
e.complete();
}
else
{
for (int xf = 0; xf < h.getWidth(); xf++) {
terrainSliver(x, z, xf, h);
}
} }
e.complete();
getEngine().getMetrics().getTerrain().put(p.getMilliseconds()); getEngine().getMetrics().getTerrain().put(p.getMilliseconds());
} }