Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,7 @@ include("cmake/cpm.cmake")

CPMAddPackage(
NAME ViennaCore
VERSION 1.6.1
GIT_TAG main
VERSION 1.6.2
GIT_REPOSITORY "https://github.com/ViennaTools/ViennaCore"
OPTIONS "VIENNACORE_USE_GPU ${VIENNARAY_USE_GPU}")

Expand Down
1 change: 0 additions & 1 deletion gpu/include/raygDiskGeometry.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ template <int D> struct DiskGeometry {
LaunchParams &launchParams) {
assert(context.deviceID != -1 && "Context not initialized.");

launchParams.source.gridDelta = mesh.gridDelta;
if constexpr (D == 2) {
launchParams.source.minPoint[0] = mesh.minimumExtent[0];
launchParams.source.maxPoint[0] = mesh.maximumExtent[0];
Expand Down
1 change: 0 additions & 1 deletion gpu/include/raygLaunchParams.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ struct LaunchParams {
struct {
viennacore::Vec2Df minPoint;
viennacore::Vec2Df maxPoint;
float gridDelta;
float planeHeight;
std::array<viennacore::Vec3Df, 3> directionBasis;
} source;
Expand Down
8 changes: 3 additions & 5 deletions gpu/include/raygLineGeometry.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,20 @@ template <typename NumericType, int D = 3> struct LineGeometry {
void buildAccel(DeviceContext &context, const LineMesh &mesh,
LaunchParams &launchParams) {
assert(context.deviceID != -1 && "Context not initialized.");
assert(mesh.gridDelta > 0.f && "Grid delta must be positive.");

launchParams.source.gridDelta = mesh.gridDelta;
if constexpr (D == 2) {
launchParams.source.minPoint[0] = mesh.minimumExtent[0];
launchParams.source.maxPoint[0] = mesh.maximumExtent[0];
launchParams.source.planeHeight =
mesh.maximumExtent[1] +
2 * mesh.gridDelta * rayInternal::DiskFactor<D>;
mesh.maximumExtent[1] + 2 * mesh.gridDelta;
} else {
launchParams.source.minPoint[0] = mesh.minimumExtent[0];
launchParams.source.minPoint[1] = mesh.minimumExtent[1];
launchParams.source.maxPoint[0] = mesh.maximumExtent[0];
launchParams.source.maxPoint[1] = mesh.maximumExtent[1];
launchParams.source.planeHeight =
mesh.maximumExtent[2] +
2 * mesh.gridDelta * rayInternal::DiskFactor<D>;
mesh.maximumExtent[2] + 2 * mesh.gridDelta;
}
launchParams.numElements = mesh.lines.size();

Expand Down
4 changes: 0 additions & 4 deletions gpu/include/raygSource.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,6 @@ initializeRayPosition(viennaray::gpu::PerRayData *prd,
prd->pos[0] = launchParams->source.minPoint[0] +
u.x * (launchParams->source.maxPoint[0] -
launchParams->source.minPoint[0]);
// prd->pos[1] = launchParams->source.minPoint[1] +
// u.y * (launchParams->source.maxPoint[1] -
// launchParams->source.minPoint[1]);
// prd->pos[2] = launchParams->source.planeHeight;

if (D == 2) {
prd->pos[1] = launchParams->source.planeHeight;
Expand Down
6 changes: 4 additions & 2 deletions gpu/include/raygTrace.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,8 @@ template <class T, int D> class Trace {
generateSBT();

#ifndef NDEBUG // Launch on single stream in debug mode
for (size_t i = 0; i < particles.size(); i++) {
OPTIX_CHECK(optixLaunch(pipeline, streams[0],
for (size_t i = 0; i < particles_.size(); i++) {
OPTIX_CHECK(optixLaunch(pipeline_, streams[0],
/*! parameters and SBT */
launchParamsBuffers[i].dPointer(),
launchParamsBuffers[i].sizeInBytes, &sbt,
Expand Down Expand Up @@ -300,6 +300,8 @@ template <class T, int D> class Trace {
callableMap_ = std::get<1>(maps);
}

size_t getNumberOfRays() const { return numRays; }

void getFlux(float *flux, int particleIdx, int dataIdx,
int smoothingNeighbors = 0) {
unsigned int offset = 0;
Expand Down
2 changes: 1 addition & 1 deletion gpu/include/raygTraceDisk.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ template <class T, int D> class TraceDisk : public Trace<T, D> {
~TraceDisk() { diskGeometry.freeBuffers(); }

void setGeometry(const DiskMesh &passedMesh) {
assert(context);
assert(context_ && "Context not initialized.");
diskMesh = passedMesh;
if (diskMesh.gridDelta <= 0.f) {
Logger::getInstance()
Expand Down
6 changes: 6 additions & 0 deletions gpu/include/raygTraceTriangle.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ template <class T, int D> class TraceTriangle : public Trace<T, D> {
void buildHitGroups() override {
// geometry hitgroup
std::vector<HitgroupRecordTriangle> hitgroupRecords;

HitgroupRecordTriangle geometryHitgroupRecord = {};
optixSbtRecordPackHeader(hitgroupPG, &geometryHitgroupRecord);
geometryHitgroupRecord.data.vertex =
Expand All @@ -60,6 +61,8 @@ template <class T, int D> class TraceTriangle : public Trace<T, D> {
geometryHitgroupRecord.data.base.isBoundary = false;
geometryHitgroupRecord.data.base.cellData =
(void *)this->cellDataBuffer_.dPointer();

// add geometry hitgroup record
hitgroupRecords.push_back(geometryHitgroupRecord);

// boundary hitgroup
Expand All @@ -71,8 +74,11 @@ template <class T, int D> class TraceTriangle : public Trace<T, D> {
(Vec3D<unsigned> *)triangleGeometry.boundaryIndexBuffer.dPointer();
boundaryHitgroupRecord.data.base.geometryType = 0;
boundaryHitgroupRecord.data.base.isBoundary = true;

// add boundary hitgroup record
hitgroupRecords.push_back(boundaryHitgroupRecord);

// upload hitgroup records
hitgroupRecordBuffer.allocUpload(hitgroupRecords);
sbt.hitgroupRecordBase = hitgroupRecordBuffer.dPointer();
sbt.hitgroupRecordStrideInBytes = sizeof(HitgroupRecordTriangle);
Expand Down
1 change: 0 additions & 1 deletion gpu/include/raygTriangleGeometry.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ struct TriangleGeometry {
LaunchParams &launchParams) {
assert(context.deviceID != -1 && "Context not initialized.");

launchParams.source.gridDelta = mesh.gridDelta;
launchParams.source.minPoint[0] = mesh.minimumExtent[0];
launchParams.source.minPoint[1] = mesh.minimumExtent[1];
launchParams.source.maxPoint[0] = mesh.maximumExtent[0];
Expand Down
5 changes: 2 additions & 3 deletions gpu/pipelines/GeneralPipelineDisk.cu
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,8 @@ extern "C" __global__ void __closesthit__() {
// }

// ------------- SURFACE COLLISION --------------- //
unsigned callIdx;

callIdx = callableIndex(launchParams.particleType, CallableSlot::COLLISION);
unsigned callIdx =
callableIndex(launchParams.particleType, CallableSlot::COLLISION);
optixDirectCall<void, const HitSBTDataDisk *, PerRayData *>(callIdx,
sbtData, prd);

Expand Down
5 changes: 2 additions & 3 deletions gpu/pipelines/GeneralPipelineLine.cu
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,8 @@ extern "C" __global__ void __closesthit__() {
// }

// ------------- SURFACE COLLISION --------------- //
unsigned callIdx;

callIdx = callableIndex(launchParams.particleType, CallableSlot::COLLISION);
unsigned callIdx =
callableIndex(launchParams.particleType, CallableSlot::COLLISION);
optixDirectCall<void, const HitSBTDataLine *, PerRayData *>(callIdx,
sbtData, prd);

Expand Down
1 change: 0 additions & 1 deletion gpu/pipelines/GeneralPipelineTriangle.cu
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ extern "C" __global__ void __closesthit__() {
PerRayData *>(callIdx, sbtData, prd);

// ------------- REFLECTION --------------- //

callIdx =
callableIndex(launchParams.particleType, CallableSlot::REFLECTION);
optixDirectCall<void, const HitSBTDataTriangle *, PerRayData *>(
Expand Down