Fix release
This commit is contained in:
@@ -102,7 +102,9 @@ namespace Juliet::D3D12
|
||||
|
||||
events[i] = fence->Event;
|
||||
}
|
||||
LogDebug(LogCategory::Graphics, "Waiting for %d fences. Querier %s", numFences JULIET_DEBUG_PARAM(CStr(querier)));
|
||||
#if JULIET_DEBUG
|
||||
LogDebug(LogCategory::Graphics, "Waiting for %d fences. Querier %s", numFences, CStr(querier));
|
||||
#endif
|
||||
for (uint32 i = 0; i < numFences; ++i)
|
||||
{
|
||||
D3D12Fence* d3d12fence = reinterpret_cast<D3D12Fence*>(fences[i]);
|
||||
@@ -152,8 +154,10 @@ namespace Juliet::D3D12
|
||||
auto d3d12driver = static_cast<D3D12Driver*>(driver.Get());
|
||||
auto d3d12Fence = reinterpret_cast<D3D12Fence*>(fence.Get());
|
||||
|
||||
LogDebug(LogCategory::Graphics, "ReleaseFence Querier %s | %x fence. Handle %x | Event %x | Refcount %d",
|
||||
CStr(querier), d3d12Fence, d3d12Fence->Handle, d3d12Fence->Event, d3d12Fence->ReferenceCount);
|
||||
#if JULIET_DEBUG
|
||||
LogDebug(LogCategory::Graphics, "ReleaseFence | %x fence. Handle %x | Event %x | Refcount %d | Querier %s", d3d12Fence,
|
||||
d3d12Fence->Handle, d3d12Fence->Event, d3d12Fence->ReferenceCount, CStr(querier));
|
||||
#endif
|
||||
if (--d3d12Fence->ReferenceCount == 0)
|
||||
{
|
||||
ReleaseFenceToPool(d3d12driver, d3d12Fence);
|
||||
@@ -224,21 +228,27 @@ namespace Juliet::D3D12
|
||||
fence->Handle = handle;
|
||||
fence->Event = CreateEvent(nullptr, false, false, nullptr);
|
||||
fence->ReferenceCount = 0;
|
||||
#if JULIET_DEBUG
|
||||
LogDebug(LogCategory::Graphics, "Acquire Querier %s | Setting Signal to 0 NEW fence", CStr(querier));
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
fence = driver->AvailableFences[driver->AvailableFenceCount - 1];
|
||||
driver->AvailableFenceCount -= 1;
|
||||
fence->Handle->Signal(D3D12_FENCE_UNSIGNALED_VALUE);
|
||||
#if JULIET_DEBUG
|
||||
LogDebug(LogCategory::Graphics, "Acquire Querier %s | Setting Signal to 0, RECYCLING", CStr(querier));
|
||||
#endif
|
||||
}
|
||||
|
||||
fence->ReferenceCount += 1;
|
||||
Assert(fence->ReferenceCount == 1);
|
||||
|
||||
#if JULIET_DEBUG
|
||||
LogDebug(LogCategory::Graphics, "Acquire Querier %s | %x fence. Handle %x | Event %x | Refcount %d",
|
||||
CStr(querier), fence, fence->Handle, fence->Event, fence->ReferenceCount);
|
||||
#endif
|
||||
|
||||
return fence;
|
||||
}
|
||||
|
||||
@@ -295,7 +295,7 @@ namespace Juliet
|
||||
|
||||
void SetMeshTransform(MeshID id, const Matrix& transform)
|
||||
{
|
||||
Assert(id < static_cast<MeshID>(g_MeshRenderer.Meshes.Count), "Invalid MeshID");
|
||||
Assert(id < static_cast<MeshID>(g_MeshRenderer.Meshes.Count));
|
||||
g_MeshRenderer.Meshes.Data[id].Transform = transform;
|
||||
}
|
||||
#if ALLOW_SHADER_HOT_RELOAD
|
||||
|
||||
@@ -195,6 +195,20 @@ void JulietApplication::Shutdown()
|
||||
|
||||
void JulietApplication::Update()
|
||||
{
|
||||
static LARGE_INTEGER frequency = {};
|
||||
static LARGE_INTEGER lastTime = {};
|
||||
if (frequency.QuadPart == 0)
|
||||
{
|
||||
QueryPerformanceFrequency(&frequency);
|
||||
QueryPerformanceCounter(&lastTime);
|
||||
}
|
||||
|
||||
LARGE_INTEGER currentTime;
|
||||
QueryPerformanceCounter(¤tTime);
|
||||
float deltaTime = static_cast<float>(currentTime.QuadPart - lastTime.QuadPart) / static_cast<float>(frequency.QuadPart);
|
||||
lastTime = currentTime;
|
||||
|
||||
CameraTime += deltaTime;
|
||||
bool reloadShaders = false;
|
||||
static bool reloadShadersDebounce = false;
|
||||
|
||||
@@ -315,8 +329,7 @@ DepthStencilTargetInfo* JulietApplication::GetDepthTargetInfo()
|
||||
|
||||
Camera JulietApplication::GetDebugCamera()
|
||||
{
|
||||
static float time = 0.0f;
|
||||
time += 0.016f;
|
||||
float time = CameraTime;
|
||||
|
||||
float orbitSpeed = 0.5f;
|
||||
float currentOrbitTime = time * orbitSpeed;
|
||||
|
||||
@@ -48,6 +48,7 @@ class JulietApplication : public Juliet::IApplication
|
||||
|
||||
int AutoCloseFrameCount = -1;
|
||||
bool Running = false;
|
||||
float CameraTime = 0.0f;
|
||||
};
|
||||
|
||||
JulietApplication& GetEditorApplication();
|
||||
|
||||
Reference in New Issue
Block a user