Shader ownership change
All checks were successful
CI / React UI Build (push) Successful in 11s
CI / Native Windows Build And Tests (push) Successful in 2m52s
CI / Windows Release Package (push) Successful in 2m59s

This commit is contained in:
Aiden
2026-05-12 02:15:03 +10:00
parent 4ea829af85
commit c0d7e84495
12 changed files with 370 additions and 36 deletions

View File

@@ -1,7 +1,7 @@
#pragma once
#include "RenderCadenceClock.h"
#include "../runtime/RuntimeSlangShaderCompiler.h"
#include "../runtime/RuntimeShaderArtifact.h"
#include "RuntimeShaderRenderer.h"
#include <atomic>
@@ -44,6 +44,7 @@ public:
bool Start(std::string& error);
void Stop();
void SubmitRuntimeShaderArtifact(const RuntimeShaderArtifact& artifact);
Metrics GetMetrics() const;
bool IsRunning() const { return mRunning.load(std::memory_order_acquire); }
@@ -56,10 +57,10 @@ private:
void CountCompleted();
void CountAcquireMiss();
void TryCommitReadyRuntimeShader(RuntimeShaderRenderer& runtimeShaderRenderer);
bool TryTakePendingRuntimeShaderArtifact(RuntimeShaderArtifact& artifact);
SystemFrameExchange& mFrameExchange;
Config mConfig;
RuntimeSlangShaderCompiler mSlangCompiler;
std::thread mThread;
std::atomic<bool> mStopping{ false };
std::atomic<bool> mRunning{ false };
@@ -71,4 +72,8 @@ private:
mutable std::mutex mMetricsMutex;
Metrics mMetrics;
std::mutex mShaderArtifactMutex;
bool mHasPendingShaderArtifact = false;
RuntimeShaderArtifact mPendingShaderArtifact;
};