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