diff --git a/Juliet/src/Graphics/D3D12/D3D12Synchronization.cpp b/Juliet/src/Graphics/D3D12/D3D12Synchronization.cpp index a28de07..d59f9b2 100644 --- a/Juliet/src/Graphics/D3D12/D3D12Synchronization.cpp +++ b/Juliet/src/Graphics/D3D12/D3D12Synchronization.cpp @@ -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(fences[i]); @@ -152,8 +154,10 @@ namespace Juliet::D3D12 auto d3d12driver = static_cast(driver.Get()); auto d3d12Fence = reinterpret_cast(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; } diff --git a/Juliet/src/Graphics/MeshRenderer.cpp b/Juliet/src/Graphics/MeshRenderer.cpp index 1785b28..8c5b2a1 100644 --- a/Juliet/src/Graphics/MeshRenderer.cpp +++ b/Juliet/src/Graphics/MeshRenderer.cpp @@ -295,7 +295,7 @@ namespace Juliet void SetMeshTransform(MeshID id, const Matrix& transform) { - Assert(id < static_cast(g_MeshRenderer.Meshes.Count), "Invalid MeshID"); + Assert(id < static_cast(g_MeshRenderer.Meshes.Count)); g_MeshRenderer.Meshes.Data[id].Transform = transform; } #if ALLOW_SHADER_HOT_RELOAD diff --git a/JulietApp/main.cpp b/JulietApp/main.cpp index 12d34c0..33aa40d 100644 --- a/JulietApp/main.cpp +++ b/JulietApp/main.cpp @@ -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(currentTime.QuadPart - lastTime.QuadPart) / static_cast(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; diff --git a/JulietApp/main.h b/JulietApp/main.h index 8ab5e8e..e78a28a 100644 --- a/JulietApp/main.h +++ b/JulietApp/main.h @@ -48,6 +48,7 @@ class JulietApplication : public Juliet::IApplication int AutoCloseFrameCount = -1; bool Running = false; + float CameraTime = 0.0f; }; JulietApplication& GetEditorApplication();