WHERE IS THE BUG COMING FORM
This commit is contained in:
@@ -43,6 +43,7 @@ public:
|
||||
for (;;)
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(_mData);
|
||||
mLastState = mState.load();
|
||||
if (mToTrace.empty())
|
||||
{
|
||||
lock.unlock();
|
||||
@@ -51,6 +52,11 @@ public:
|
||||
}
|
||||
mState = EModuleState::Trace;
|
||||
|
||||
if (mLastState != mState)
|
||||
{
|
||||
spdlog::info("[hartcpu] Signal start");
|
||||
}
|
||||
|
||||
auto* ray = mToTrace.front();
|
||||
int bestIdx = -1;
|
||||
glm::vec2 coords;
|
||||
|
||||
@@ -86,11 +86,11 @@ public:
|
||||
// module keeps queue reference
|
||||
inline void submitQueue(std::vector<Ray*> queue)
|
||||
{
|
||||
mState = EModuleState::Trace;
|
||||
std::lock_guard<std::mutex> lock(_mData);
|
||||
// mState = EModuleState::Trace;
|
||||
for (const auto& e: queue)
|
||||
mToTrace.push(e);
|
||||
spdlog::info("[hartmodule] New trace queue");
|
||||
spdlog::info("[hartmodule] New trace queue: {}", mToTrace.size());
|
||||
}
|
||||
|
||||
inline void pushtoQueue(Ray* ray)
|
||||
@@ -101,6 +101,7 @@ public:
|
||||
|
||||
inline void passContext(void* context, HART_HIT_CALLBACK callback)
|
||||
{
|
||||
spdlog::debug("[hartmodule] Recieved context from HHM");
|
||||
std::lock_guard<std::mutex> lock(_mData);
|
||||
mCtx = context;
|
||||
Hit = callback;
|
||||
@@ -114,6 +115,7 @@ public:
|
||||
protected:
|
||||
std::queue<Ray*> mToTrace;
|
||||
std::atomic<EModuleState> mState = EModuleState::Bad;
|
||||
std::atomic<EModuleState> mLastState = EModuleState::Bad;
|
||||
|
||||
std::mutex _mData;
|
||||
|
||||
|
||||
@@ -79,5 +79,6 @@ void HHM::startTrace(RayField sourceScatter)
|
||||
{
|
||||
HARTModule* mod = mDirectory.getActiveModule();
|
||||
mod->passContext((void*)this, &rayHitCallback);
|
||||
spdlog::debug("SubmitQueue {}", sourceScatter.size());
|
||||
mod->submitQueue(sourceScatter);
|
||||
}
|
||||
|
||||
@@ -109,7 +109,9 @@ void RayRenderer::draw()
|
||||
{
|
||||
case EModuleState::Bad:
|
||||
spdlog::error("MODULE STATE BAD");
|
||||
break;
|
||||
case EModuleState::Build:
|
||||
spdlog::error("MODULE STATE BUILD");
|
||||
case EModuleState::Trace:
|
||||
break;
|
||||
case EModuleState::Ready:
|
||||
|
||||
Reference in New Issue
Block a user