Compare commits
3 Commits
e1eb9976ad
...
2362cefbc0
| Author | SHA1 | Date | |
|---|---|---|---|
| 2362cefbc0 | |||
| bbd1095227 | |||
| 49fc0a24d1 |
@@ -227,6 +227,10 @@
|
||||
<CustomBuild Include="src\UnitTest\RunUnitTests.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="include\Graphics\MeshRenderer.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\Graphics\MeshRenderer.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{ab9c7e88-6c94-4f93-bc2a-7f5284b7d434}</ProjectGuid>
|
||||
|
||||
@@ -98,6 +98,34 @@ namespace Juliet
|
||||
}
|
||||
}
|
||||
|
||||
void PushBack(const Type* buffer, size_t amount)
|
||||
{
|
||||
Assert(Arena);
|
||||
|
||||
if (Count + amount > Capacity)
|
||||
{
|
||||
if (Capacity == 0 && Count + amount < ReserveSize)
|
||||
{
|
||||
Reserve(ReserveSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
size_t newCapacity = Max(Capacity * 2, AlignPow2(Capacity + amount, AlignOf(Type)));
|
||||
Reserve(newCapacity);
|
||||
}
|
||||
}
|
||||
|
||||
Type* dst = Data + Count;
|
||||
MemCopy(dst, buffer, amount * sizeof(Type));
|
||||
|
||||
if (Count == 0)
|
||||
{
|
||||
DataFirst = dst;
|
||||
}
|
||||
DataLast = dst + amount;
|
||||
Count += amount;
|
||||
}
|
||||
|
||||
void PushBack(const Type& value)
|
||||
{
|
||||
Assert(Arena);
|
||||
@@ -172,6 +200,8 @@ namespace Juliet
|
||||
Capacity = 0;
|
||||
}
|
||||
|
||||
bool IsEmpty() const { return Count == 0; }
|
||||
|
||||
// C++ Accessors for loop supports and Index based access
|
||||
Type& operator[](size_t index) { return DataFirst[index]; }
|
||||
const Type& operator[](size_t index) const { return DataFirst[index]; }
|
||||
|
||||
@@ -22,6 +22,7 @@ namespace Juliet
|
||||
extern void JULIET_API LogScopeEnd();
|
||||
|
||||
extern void JULIET_API Log(LogLevel level, LogCategory category, const char* fmt, ...);
|
||||
extern void JULIET_API LogDebug(LogCategory category, const char* fmt, ...);
|
||||
extern void JULIET_API LogMessage(LogCategory category, const char* fmt, ...);
|
||||
extern void JULIET_API LogWarning(LogCategory category, const char* fmt, ...);
|
||||
extern void JULIET_API LogError(LogCategory category, const char* fmt, ...);
|
||||
|
||||
@@ -4,9 +4,10 @@ namespace Juliet
|
||||
{
|
||||
enum class LogLevel : uint8
|
||||
{
|
||||
Message = 0,
|
||||
Warning = 1,
|
||||
Error = 2,
|
||||
Debug = 0,
|
||||
Message = 1,
|
||||
Warning = 2,
|
||||
Error = 3,
|
||||
};
|
||||
|
||||
enum class LogCategory : uint8
|
||||
|
||||
@@ -11,18 +11,10 @@ namespace Juliet
|
||||
|
||||
struct Mesh
|
||||
{
|
||||
Vertex* Vertices;
|
||||
uint16* Indices;
|
||||
|
||||
size_t VertexCount;
|
||||
size_t IndexCount;
|
||||
|
||||
index_t VertexOffset;
|
||||
index_t IndexOffset;
|
||||
index_t IndexByteOffset;
|
||||
};
|
||||
|
||||
JULIET_API Mesh* CreateCubeMesh(NonNullPtr<Arena> arena);
|
||||
JULIET_API Mesh* CreateQuadMesh(NonNullPtr<Arena> arena);
|
||||
JULIET_API void DestroyMesh(NonNullPtr<Mesh> mesh);
|
||||
} // namespace Juliet
|
||||
|
||||
63
Juliet/include/Graphics/MeshRenderer.h
Normal file
63
Juliet/include/Graphics/MeshRenderer.h
Normal file
@@ -0,0 +1,63 @@
|
||||
#pragma once
|
||||
|
||||
#include <Core/Container/Vector.h>
|
||||
#include <Core/Math/Matrix.h>
|
||||
#include <Graphics/VertexData.h>
|
||||
#include <Juliet.h>
|
||||
|
||||
namespace Juliet
|
||||
{
|
||||
struct GraphicsTransferBuffer;
|
||||
struct RenderPass;
|
||||
struct CommandList;
|
||||
struct GraphicsBuffer;
|
||||
struct Window;
|
||||
struct GraphicsPipeline;
|
||||
struct GraphicsDevice;
|
||||
struct Mesh;
|
||||
|
||||
using MeshID = index_t;
|
||||
|
||||
constexpr size_t kGeometryPage = Megabytes(64);
|
||||
constexpr size_t kIndexPage = Megabytes(32);
|
||||
constexpr size_t kDefaultMeshNumber = 500;
|
||||
constexpr size_t kDefaultVertexCount = 2'000'000; // Fit less than one geometry page
|
||||
constexpr size_t kDefaultIndexCount = 16'000'000; // Fit less than one index page
|
||||
|
||||
struct MeshRenderer
|
||||
{
|
||||
// Note we prevent realloc for now.
|
||||
VectorArena<Mesh, kDefaultMeshNumber, false> Meshes;
|
||||
VectorArena<Vertex, kDefaultVertexCount, false> Vertices;
|
||||
VectorArena<Index, kDefaultIndexCount, false> Indices;
|
||||
|
||||
GraphicsBuffer* VertexBuffer;
|
||||
GraphicsBuffer* IndexBuffer;
|
||||
GraphicsTransferBuffer* StreamCopyBuffer;
|
||||
GraphicsTransferBuffer* LoadCopyBuffer;
|
||||
|
||||
GraphicsDevice* Device;
|
||||
GraphicsPipeline* Pipeline;
|
||||
};
|
||||
|
||||
struct PushData
|
||||
{
|
||||
Matrix ViewProjection;
|
||||
uint32 BufferIndex;
|
||||
};
|
||||
|
||||
[[nodiscard]] JULIET_API bool InitializeMeshRenderer(NonNullPtr<Arena> arena, NonNullPtr<GraphicsDevice> device,
|
||||
NonNullPtr<Window> window);
|
||||
JULIET_API void ShutdownMeshRenderer();
|
||||
JULIET_API void LoadMeshesOnGPU(NonNullPtr<CommandList> cmdList);
|
||||
JULIET_API void RenderMeshes(NonNullPtr<RenderPass> pass, NonNullPtr<CommandList> cmdList, PushData& pushData);
|
||||
|
||||
// Utils
|
||||
[[nodiscard]] JULIET_API MeshID AddCube();
|
||||
[[nodiscard]] JULIET_API MeshID AddQuad();
|
||||
|
||||
#if ALLOW_SHADER_HOT_RELOAD
|
||||
JULIET_API void ReloadMeshRendererShaders();
|
||||
#endif
|
||||
|
||||
} // namespace Juliet
|
||||
@@ -7,4 +7,6 @@ namespace Juliet
|
||||
float Position[3];
|
||||
float Color[4];
|
||||
};
|
||||
|
||||
using Index = uint16;
|
||||
} // namespace Juliet
|
||||
|
||||
@@ -28,6 +28,9 @@ namespace Juliet
|
||||
};
|
||||
DECLARE_QUEUE(LogsEntry);
|
||||
|
||||
// TODO: Debug level per category
|
||||
const bool kPrintDebugLog = false;
|
||||
|
||||
// A log scope accumulates log until end of scope.
|
||||
// Can be used to accumulate then write in a log file each frame.
|
||||
struct LogScope
|
||||
@@ -133,6 +136,11 @@ namespace Juliet
|
||||
|
||||
void Log(LogLevel level, LogCategory category, const char* fmt, va_list args)
|
||||
{
|
||||
if (level == LogLevel::Debug && kPrintDebugLog == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO : Revisit, copy from https://github.com/Eclmist/Ether/blob/develop/src/common/logging/loggingmanager.cpp
|
||||
char formattedBuffer[4096];
|
||||
|
||||
@@ -163,6 +171,14 @@ namespace Juliet
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void LogDebug(LogCategory category, const char* fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
Log(LogLevel::Debug, category, fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void LogMessage(LogCategory category, const char* fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
@@ -113,10 +113,10 @@ namespace Juliet::D3D12
|
||||
{
|
||||
heapProperties.Type = D3D12_HEAP_TYPE_UPLOAD;
|
||||
heapFlags = D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS;
|
||||
initialState = D3D12_RESOURCE_STATE_GENERIC_READ;
|
||||
}
|
||||
heapProperties.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN;
|
||||
heapProperties.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN;
|
||||
initialState = D3D12_RESOURCE_STATE_GENERIC_READ;
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -142,10 +142,10 @@ namespace Juliet::D3D12
|
||||
{
|
||||
heapProperties.Type = D3D12_HEAP_TYPE_UPLOAD;
|
||||
heapFlags = D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS;
|
||||
initialState = D3D12_RESOURCE_STATE_GENERIC_READ;
|
||||
}
|
||||
heapProperties.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN;
|
||||
heapProperties.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN;
|
||||
initialState = D3D12_RESOURCE_STATE_GENERIC_READ;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -246,7 +246,8 @@ namespace Juliet::D3D12
|
||||
d3d12Driver->GraphicsQueue->ExecuteCommandLists(1, ppCommandLists);
|
||||
|
||||
// Acquire a fence and set it to the in-flight fence
|
||||
d3d12CommandList->InFlightFence = Internal::AcquireFence(d3d12Driver);
|
||||
d3d12CommandList->InFlightFence =
|
||||
Internal::AcquireFence(d3d12Driver JULIET_DEBUG_PARAM(ConstString("SubmitCommandLists")));
|
||||
if (!d3d12CommandList->InFlightFence)
|
||||
{
|
||||
return false;
|
||||
@@ -305,14 +306,22 @@ namespace Juliet::D3D12
|
||||
windowData->WindowFrameCounter = (windowData->WindowFrameCounter + 1) % d3d12Driver->FramesInFlight;
|
||||
}
|
||||
|
||||
// TODO : Correctly clean up and destroy
|
||||
// Check for cleanups
|
||||
for (int32 i = d3d12Driver->SubmittedCommandListCount - 1; i >= 0; i -= 1)
|
||||
{
|
||||
int32 i = 0;
|
||||
while (i < d3d12Driver->SubmittedCommandListCount)
|
||||
{
|
||||
uint64 fenceValue = d3d12Driver->SubmittedCommandLists[i]->InFlightFence->Handle->GetCompletedValue();
|
||||
if (fenceValue == D3D12_FENCE_SIGNAL_VALUE)
|
||||
{
|
||||
success &= Internal::CleanCommandList(d3d12Driver, d3d12Driver->SubmittedCommandLists[i], false);
|
||||
// CleanCommandList swaps [i] with last and decrements count.
|
||||
// Don't increment — re-check the swapped-in element.
|
||||
}
|
||||
else
|
||||
{
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -487,7 +496,8 @@ namespace Juliet::D3D12
|
||||
// Release Fence if needed
|
||||
if (commandList->AutoReleaseFence)
|
||||
{
|
||||
ReleaseFence(driver.Get(), reinterpret_cast<Fence*>(commandList->InFlightFence));
|
||||
ReleaseFence(driver.Get(), reinterpret_cast<Fence*>(commandList->InFlightFence)
|
||||
JULIET_DEBUG_PARAM(ConstString("CleanCommandList")));
|
||||
commandList->InFlightFence = nullptr;
|
||||
}
|
||||
|
||||
@@ -510,6 +520,7 @@ namespace Juliet::D3D12
|
||||
{
|
||||
driver->SubmittedCommandLists[idx] = driver->SubmittedCommandLists[driver->SubmittedCommandListCount - 1];
|
||||
driver->SubmittedCommandListCount -= 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -604,7 +604,8 @@ namespace Juliet::D3D12
|
||||
{
|
||||
if (windowData->InFlightFences[idx] != nullptr)
|
||||
{
|
||||
ReleaseFence(driver, windowData->InFlightFences[idx]);
|
||||
ReleaseFence(driver,
|
||||
windowData->InFlightFences[idx] JULIET_DEBUG_PARAM(ConstString("DeatchFromWindow")));
|
||||
windowData->InFlightFences[idx] = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,7 +140,8 @@ namespace Juliet::D3D12
|
||||
{
|
||||
// Wait until the fence for the frame is signaled.
|
||||
// In VSYNC this means waiting that the least recent presented frame is done
|
||||
if (!Wait(driver, true, &windowData->InFlightFences[windowData->WindowFrameCounter], 1))
|
||||
if (!Wait(driver, true, &windowData->InFlightFences[windowData->WindowFrameCounter],
|
||||
1 JULIET_DEBUG_PARAM(ConstString("AcquireSwapChainTexture"))))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -155,7 +156,8 @@ namespace Juliet::D3D12
|
||||
}
|
||||
}
|
||||
|
||||
ReleaseFence(driver, windowData->InFlightFences[windowData->WindowFrameCounter]);
|
||||
ReleaseFence(driver, windowData->InFlightFences[windowData->WindowFrameCounter] JULIET_DEBUG_PARAM(
|
||||
ConstString("AcquireSwapChainTexture")));
|
||||
windowData->InFlightFences[windowData->WindowFrameCounter] = nullptr;
|
||||
}
|
||||
|
||||
@@ -219,7 +221,8 @@ namespace Juliet::D3D12
|
||||
|
||||
if (windowData->InFlightFences[windowData->WindowFrameCounter] != nullptr)
|
||||
{
|
||||
if (!Wait(d3d12Driver, true, &windowData->InFlightFences[windowData->WindowFrameCounter], 1))
|
||||
if (!Wait(d3d12Driver, true, &windowData->InFlightFences[windowData->WindowFrameCounter],
|
||||
1 JULIET_DEBUG_PARAM(ConstString("WaitForSwapchain"))))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -17,16 +17,21 @@ namespace Juliet::D3D12
|
||||
driver->AvailableFenceCapacity = driver->AvailableFenceCapacity * 2;
|
||||
driver->AvailableFences = static_cast<D3D12Fence**>(
|
||||
Realloc(driver->AvailableFences, sizeof(D3D12Fence*) * driver->AvailableFenceCapacity));
|
||||
|
||||
LogDebug(LogCategory::Graphics, "ReleaseFenceToPool With Realloc");
|
||||
}
|
||||
driver->AvailableFences[driver->AvailableFenceCount] = fence;
|
||||
driver->AvailableFenceCount += 1;
|
||||
|
||||
LogDebug(LogCategory::Graphics, "ReleaseFenceToPool %x fence. Handle %x | Event %x | Refcount %d",
|
||||
fence.Get(), fence->Handle, fence->Event, fence->ReferenceCount);
|
||||
}
|
||||
} // namespace
|
||||
|
||||
bool WaitUntilGPUIsIdle(NonNullPtr<GPUDriver> driver)
|
||||
{
|
||||
auto d3d12driver = static_cast<D3D12Driver*>(driver.Get());
|
||||
D3D12Fence* fence = Internal::AcquireFence(d3d12driver);
|
||||
D3D12Fence* fence = Internal::AcquireFence(d3d12driver JULIET_DEBUG_PARAM(ConstString("WaitUntilGPUIsIdle")));
|
||||
if (!fence)
|
||||
{
|
||||
return false;
|
||||
@@ -56,14 +61,19 @@ namespace Juliet::D3D12
|
||||
}
|
||||
}
|
||||
|
||||
ReleaseFence(driver, reinterpret_cast<Fence*>(fence));
|
||||
ReleaseFence(driver, reinterpret_cast<Fence*>(fence) JULIET_DEBUG_PARAM(ConstString("WaitUntilGPUIsIdle")));
|
||||
|
||||
bool result = true;
|
||||
|
||||
// Clean up
|
||||
for (int32 idx = d3d12driver->SubmittedCommandListCount - 1; idx >= 0; --idx)
|
||||
{
|
||||
int32 idx = 0;
|
||||
while (idx < d3d12driver->SubmittedCommandListCount)
|
||||
{
|
||||
result &= Internal::CleanCommandList(d3d12driver, d3d12driver->SubmittedCommandLists[idx], false);
|
||||
// CleanCommandList swaps [idx] with last and decrements count.
|
||||
// Don't increment — re-check the swapped-in element.
|
||||
}
|
||||
}
|
||||
|
||||
Internal::DisposePendingResourcces(d3d12driver);
|
||||
@@ -71,16 +81,17 @@ namespace Juliet::D3D12
|
||||
return result;
|
||||
}
|
||||
|
||||
bool Wait(NonNullPtr<GPUDriver> driver, bool waitForAll, Fence* const* fences, uint32 numFences)
|
||||
bool Wait(NonNullPtr<GPUDriver> driver, bool waitForAll, Fence* const* fences, uint32 numFences JULIET_DEBUG_PARAM(String querier))
|
||||
{
|
||||
auto d3d12driver = static_cast<D3D12Driver*>(driver.Get());
|
||||
|
||||
// TODO: use scratch allocator for alloca (stack alloc)
|
||||
auto events = static_cast<HANDLE*>(alloca(sizeof(HANDLE) * numFences));
|
||||
HANDLE* events = static_cast<HANDLE*>(alloca(sizeof(HANDLE) * numFences));
|
||||
MemoryZero(events, sizeof(HANDLE) * numFences);
|
||||
|
||||
for (uint32 i = 0; i < numFences; ++i)
|
||||
{
|
||||
auto fence = reinterpret_cast<D3D12Fence*>(fences[i]);
|
||||
D3D12Fence* fence = reinterpret_cast<D3D12Fence*>(fences[i]);
|
||||
|
||||
HRESULT res = fence->Handle->SetEventOnCompletion(D3D12_FENCE_SIGNAL_VALUE, fence->Event);
|
||||
if (FAILED(res))
|
||||
@@ -91,6 +102,13 @@ namespace Juliet::D3D12
|
||||
|
||||
events[i] = fence->Event;
|
||||
}
|
||||
LogDebug(LogCategory::Graphics, "Waiting for %d fences. Querier %s", numFences JULIET_DEBUG_PARAM(CStr(querier)));
|
||||
for (uint32 i = 0; i < numFences; ++i)
|
||||
{
|
||||
D3D12Fence* d3d12fence = reinterpret_cast<D3D12Fence*>(fences[i]);
|
||||
LogDebug(LogCategory::Graphics, "Waiting for %x fence. Handle %x | Event %x | Refcount %d", d3d12fence,
|
||||
d3d12fence->Handle, d3d12fence->Event, d3d12fence->ReferenceCount);
|
||||
}
|
||||
|
||||
DWORD waitResult = WaitForMultipleObjects(numFences, events, waitForAll, INFINITE);
|
||||
if (waitResult == WAIT_FAILED)
|
||||
@@ -102,13 +120,20 @@ namespace Juliet::D3D12
|
||||
bool result = true;
|
||||
|
||||
// Clean up
|
||||
for (int32 idx = d3d12driver->SubmittedCommandListCount - 1; idx >= 0; --idx -= 1)
|
||||
{
|
||||
int32 idx = 0;
|
||||
while (idx < d3d12driver->SubmittedCommandListCount)
|
||||
{
|
||||
uint64 fenceValue = d3d12driver->SubmittedCommandLists[idx]->InFlightFence->Handle->GetCompletedValue();
|
||||
if (fenceValue == D3D12_FENCE_SIGNAL_VALUE)
|
||||
{
|
||||
result &= Internal::CleanCommandList(d3d12driver, d3d12driver->SubmittedCommandLists[idx], false);
|
||||
}
|
||||
else
|
||||
{
|
||||
idx += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Internal::DisposePendingResourcces(d3d12driver);
|
||||
@@ -122,11 +147,13 @@ namespace Juliet::D3D12
|
||||
return true;
|
||||
}
|
||||
|
||||
void ReleaseFence(NonNullPtr<GPUDriver> driver, NonNullPtr<Fence> fence)
|
||||
void ReleaseFence(NonNullPtr<GPUDriver> driver, NonNullPtr<Fence> fence JULIET_DEBUG_PARAM(String querier))
|
||||
{
|
||||
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 (--d3d12Fence->ReferenceCount == 0)
|
||||
{
|
||||
ReleaseFenceToPool(d3d12driver, d3d12Fence);
|
||||
@@ -170,7 +197,7 @@ namespace Juliet::D3D12
|
||||
}
|
||||
}
|
||||
|
||||
D3D12Fence* AcquireFence(NonNullPtr<D3D12Driver> driver)
|
||||
D3D12Fence* AcquireFence(NonNullPtr<D3D12Driver> driver JULIET_DEBUG_PARAM(String querier))
|
||||
{
|
||||
D3D12Fence* fence;
|
||||
ID3D12Fence* handle;
|
||||
@@ -197,15 +224,22 @@ namespace Juliet::D3D12
|
||||
fence->Handle = handle;
|
||||
fence->Event = CreateEvent(nullptr, false, false, nullptr);
|
||||
fence->ReferenceCount = 0;
|
||||
LogDebug(LogCategory::Graphics, "Acquire Querier %s | Setting Signal to 0 NEW fence", CStr(querier));
|
||||
}
|
||||
else
|
||||
{
|
||||
fence = driver->AvailableFences[driver->AvailableFenceCount - 1];
|
||||
driver->AvailableFenceCount -= 1;
|
||||
fence->Handle->Signal(D3D12_FENCE_UNSIGNALED_VALUE);
|
||||
LogDebug(LogCategory::Graphics, "Acquire Querier %s | Setting Signal to 0, RECYCLING", CStr(querier));
|
||||
}
|
||||
|
||||
fence->ReferenceCount += 1;
|
||||
Assert(fence->ReferenceCount == 1);
|
||||
|
||||
LogDebug(LogCategory::Graphics, "Acquire Querier %s | %x fence. Handle %x | Event %x | Refcount %d",
|
||||
CStr(querier), fence, fence->Handle, fence->Event, fence->ReferenceCount);
|
||||
|
||||
return fence;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,9 +26,10 @@ namespace Juliet::D3D12
|
||||
};
|
||||
|
||||
extern bool WaitUntilGPUIsIdle(NonNullPtr<GPUDriver> driver);
|
||||
extern bool Wait(NonNullPtr<GPUDriver> driver, bool waitForAll, Fence* const* fences, uint32 numFences);
|
||||
extern bool Wait(NonNullPtr<GPUDriver> driver, bool waitForAll, Fence* const* fences,
|
||||
uint32 numFences JULIET_DEBUG_PARAM(String querier));
|
||||
extern bool QueryFence(NonNullPtr<GPUDriver> driver, NonNullPtr<Fence> fence);
|
||||
extern void ReleaseFence(NonNullPtr<GPUDriver> driver, NonNullPtr<Fence> fence);
|
||||
extern void ReleaseFence(NonNullPtr<GPUDriver> driver, NonNullPtr<Fence> fence JULIET_DEBUG_PARAM(String querier));
|
||||
|
||||
namespace Internal
|
||||
{
|
||||
@@ -36,7 +37,7 @@ namespace Juliet::D3D12
|
||||
D3D12_RESOURCE_STATES destinationState, ID3D12Resource* resource,
|
||||
uint32 subresourceIndex, bool needsUavBarrier);
|
||||
|
||||
extern D3D12Fence* AcquireFence(NonNullPtr<D3D12Driver> driver);
|
||||
extern D3D12Fence* AcquireFence(NonNullPtr<D3D12Driver> driver JULIET_DEBUG_PARAM(String querier));
|
||||
extern void DestroyFence(NonNullPtr<D3D12Fence> fence);
|
||||
} // namespace Internal
|
||||
} // namespace Juliet::D3D12
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
#include <algorithm>
|
||||
#include <Core/Common/EnumUtils.h>
|
||||
#include <Core/Logging/LogManager.h>
|
||||
#include <Core/Logging/LogTypes.h>
|
||||
#include <Core/Memory/Allocator.h>
|
||||
#include <Graphics/D3D12/D3D12CommandList.h>
|
||||
#include <Graphics/D3D12/D3D12GraphicsDevice.h>
|
||||
#include <Graphics/D3D12/D3D12Synchronization.h>
|
||||
#include <Graphics/D3D12/D3D12Texture.h>
|
||||
#include <Graphics/D3D12/D3D12GraphicsDevice.h>
|
||||
#include <Graphics/D3D12/D3D12Utils.h>
|
||||
#include <Core/Memory/Allocator.h>
|
||||
#include <algorithm>
|
||||
|
||||
namespace Juliet::D3D12
|
||||
{
|
||||
@@ -375,13 +375,9 @@ namespace Juliet::D3D12
|
||||
case TextureType::Texture_2D:
|
||||
case TextureType::Texture_2DArray:
|
||||
case TextureType::Texture_Cube:
|
||||
case TextureType::Texture_CubeArray:
|
||||
desc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE2D;
|
||||
break;
|
||||
case TextureType::Texture_CubeArray: desc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE2D; break;
|
||||
case TextureType::Texture_3D:
|
||||
case TextureType::Texture_3DArray:
|
||||
desc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE3D;
|
||||
break;
|
||||
case TextureType::Texture_3DArray: desc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE3D; break;
|
||||
}
|
||||
|
||||
desc.Alignment = 0;
|
||||
@@ -396,14 +392,24 @@ namespace Juliet::D3D12
|
||||
desc.Flags = D3D12_RESOURCE_FLAG_NONE;
|
||||
|
||||
if ((createInfo.Flags & TextureUsageFlag::ColorTarget) != TextureUsageFlag::None)
|
||||
{
|
||||
desc.Flags |= D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET;
|
||||
}
|
||||
if ((createInfo.Flags & TextureUsageFlag::DepthStencilTarget) != TextureUsageFlag::None)
|
||||
{
|
||||
desc.Flags |= D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL;
|
||||
}
|
||||
if ((createInfo.Flags & TextureUsageFlag::ComputeStorageWrite) != TextureUsageFlag::None)
|
||||
{
|
||||
desc.Flags |= D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS;
|
||||
}
|
||||
|
||||
D3D12_HEAP_PROPERTIES heapProps = {};
|
||||
heapProps.Type = D3D12_HEAP_TYPE_DEFAULT;
|
||||
heapProps.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN;
|
||||
heapProps.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN;
|
||||
heapProps.CreationNodeMask = 0; // We don't do multi-adapter operation
|
||||
heapProps.VisibleNodeMask = 0; // We don't do multi-adapter operation
|
||||
|
||||
ID3D12Resource* resource = nullptr;
|
||||
D3D12_CLEAR_VALUE clearValue = {};
|
||||
@@ -426,8 +432,9 @@ namespace Juliet::D3D12
|
||||
pClearValue = &clearValue;
|
||||
}
|
||||
|
||||
D3D12_RESOURCE_STATES initialState = GetDefaultTextureResourceState(createInfo.Flags);
|
||||
HRESULT hr = d3d12Driver->D3D12Device->CreateCommittedResource(&heapProps, D3D12_HEAP_FLAG_NONE, &desc,
|
||||
D3D12_RESOURCE_STATE_COMMON, pClearValue, IID_ID3D12Resource,
|
||||
initialState, pClearValue, IID_ID3D12Resource,
|
||||
reinterpret_cast<void**>(&resource));
|
||||
|
||||
if (FAILED(hr))
|
||||
@@ -454,7 +461,8 @@ namespace Juliet::D3D12
|
||||
uint32 numLayers = std::max<uint32>(1, createInfo.LayerCount);
|
||||
uint32 numMips = std::max<uint32>(1, createInfo.MipLevelCount);
|
||||
texture->SubresourceCount = numLayers * numMips;
|
||||
texture->Subresources = static_cast<D3D12TextureSubresource*>(Calloc(texture->SubresourceCount, sizeof(D3D12TextureSubresource)));
|
||||
texture->Subresources =
|
||||
static_cast<D3D12TextureSubresource*>(Calloc(texture->SubresourceCount, sizeof(D3D12TextureSubresource)));
|
||||
|
||||
for (uint32 layer = 0; layer < numLayers; ++layer)
|
||||
{
|
||||
@@ -529,7 +537,6 @@ namespace Juliet::D3D12
|
||||
}
|
||||
|
||||
return reinterpret_cast<Texture*>(textureContainer);
|
||||
|
||||
}
|
||||
|
||||
void DestroyTexture(NonNullPtr<GPUDriver> driver, NonNullPtr<Texture> texture)
|
||||
|
||||
@@ -83,7 +83,7 @@ namespace Juliet
|
||||
// Fences
|
||||
bool (*WaitUntilGPUIsIdle)(NonNullPtr<GPUDriver> driver);
|
||||
bool (*QueryFence)(NonNullPtr<GPUDriver> driver, NonNullPtr<Fence> fence);
|
||||
void (*ReleaseFence)(NonNullPtr<GPUDriver> driver, NonNullPtr<Fence> fence);
|
||||
void (*ReleaseFence)(NonNullPtr<GPUDriver> driver, NonNullPtr<Fence> fence JULIET_DEBUG_PARAM(String querier));
|
||||
|
||||
// Shaders
|
||||
Shader* (*CreateShader)(NonNullPtr<GPUDriver> driver, ByteBuffer shaderByteCode, ShaderCreateInfo& shaderCreateInfo);
|
||||
|
||||
@@ -5,95 +5,5 @@
|
||||
|
||||
namespace Juliet
|
||||
{
|
||||
Mesh* CreateCubeMesh(NonNullPtr<Arena> arena)
|
||||
{
|
||||
Mesh* result = ArenaPushStruct<Mesh>(arena.Get());
|
||||
|
||||
constexpr Vertex vertexData[] = {
|
||||
// Front Face (Z = -0.5f)
|
||||
{ { -0.5f, 0.5f, -0.5f }, { 0.0f, 0.0f } }, // 0: Top Left
|
||||
{ { 0.5f, 0.5f, -0.5f }, { 1.0f, 0.0f } }, // 1: Top Right
|
||||
{ { 0.5f, -0.5f, -0.5f }, { 1.0f, 1.0f } }, // 2: Bottom Right
|
||||
{ { -0.5f, -0.5f, -0.5f }, { 0.0f, 1.0f } }, // 3: Bottom Left
|
||||
|
||||
// Back Face (Z = 0.5f)
|
||||
{ { 0.5f, 0.5f, 0.5f }, { 0.0f, 0.0f } }, // 4: Top Left
|
||||
{ { -0.5f, 0.5f, 0.5f }, { 1.0f, 0.0f } }, // 5: Top Right
|
||||
{ { -0.5f, -0.5f, 0.5f }, { 1.0f, 1.0f } }, // 6: Bottom Right
|
||||
{ { 0.5f, -0.5f, 0.5f }, { 0.0f, 1.0f } }, // 7: Bottom Left
|
||||
|
||||
// Top Face (Y = 0.5f)
|
||||
{ { -0.5f, 0.5f, 0.5f }, { 0.0f, 0.0f } }, // 8: Top Left
|
||||
{ { 0.5f, 0.5f, 0.5f }, { 1.0f, 0.0f } }, // 9: Top Right
|
||||
{ { 0.5f, 0.5f, -0.5f }, { 1.0f, 1.0f } }, // 10: Bottom Right
|
||||
{ { -0.5f, 0.5f, -0.5f }, { 0.0f, 1.0f } }, // 11: Bottom Left
|
||||
|
||||
// Bottom Face (Y = -0.5f)
|
||||
{ { -0.5f, -0.5f, -0.5f }, { 0.0f, 0.0f } }, // 12: Top Left
|
||||
{ { 0.5f, -0.5f, -0.5f }, { 1.0f, 0.0f } }, // 13: Top Right
|
||||
{ { 0.5f, -0.5f, 0.5f }, { 1.0f, 1.0f } }, // 14: Bottom Right
|
||||
{ { -0.5f, -0.5f, 0.5f }, { 0.0f, 1.0f } }, // 15: Bottom Left
|
||||
|
||||
// Right Face (X = 0.5f)
|
||||
{ { 0.5f, 0.5f, -0.5f }, { 0.0f, 0.0f } }, // 16: Top Left
|
||||
{ { 0.5f, 0.5f, 0.5f }, { 1.0f, 0.0f } }, // 17: Top Right
|
||||
{ { 0.5f, -0.5f, 0.5f }, { 1.0f, 1.0f } }, // 18: Bottom Right
|
||||
{ { 0.5f, -0.5f, -0.5f }, { 0.0f, 1.0f } }, // 19: Bottom Left
|
||||
|
||||
// Left Face (X = -0.5f)
|
||||
{ { -0.5f, 0.5f, 0.5f }, { 0.0f, 0.0f } }, // 20: Top Left
|
||||
{ { -0.5f, 0.5f, -0.5f }, { 1.0f, 0.0f } }, // 21: Top Right
|
||||
{ { -0.5f, -0.5f, -0.5f }, { 1.0f, 1.0f } }, // 22: Bottom Right
|
||||
{ { -0.5f, -0.5f, 0.5f }, { 0.0f, 1.0f } } // 23: Bottom Left
|
||||
};
|
||||
constexpr size_t cubeVertexCount = ArraySize(vertexData);
|
||||
result->VertexCount = cubeVertexCount;
|
||||
result->Vertices = ArenaPushArray<Vertex>(arena.Get(), cubeVertexCount);
|
||||
MemCopy(result->Vertices, vertexData, sizeof(Vertex) * cubeVertexCount);
|
||||
|
||||
constexpr uint16 indices[] = { 0, 1, 2, 0, 2, 3, // Front
|
||||
4, 5, 6, 4, 6, 7, // Back
|
||||
8, 9, 10, 8, 10, 11, // Top
|
||||
12, 13, 14, 12, 14, 15, // Bottom
|
||||
16, 17, 18, 16, 18, 19, // Right
|
||||
20, 21, 22, 20, 22, 23 }; // Left
|
||||
constexpr size_t indexCubeCount = ArraySize(indices);
|
||||
result->IndexCount = indexCubeCount;
|
||||
result->Indices = ArenaPushArray<uint16>(arena.Get(), indexCubeCount JULIET_DEBUG_PARAM("Indices"));
|
||||
MemCopy(result->Indices, indices, sizeof(uint16) * indexCubeCount);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Mesh* CreateQuadMesh(NonNullPtr<Arena> arena)
|
||||
{
|
||||
Mesh* result = ArenaPushStruct<Mesh>(arena.Get());
|
||||
|
||||
// Using the exact 6 vertices from the working triangles!
|
||||
constexpr Vertex vertexData[] = {
|
||||
// Triangle 1 (Clockwise)
|
||||
{ { -0.5f, -0.5f, 0.0f }, { 1.0f, 0.0f, 0.0f, 1.0f } }, // 0: Red
|
||||
{ { 0.0f, 0.5f, 0.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } }, // 1: Green
|
||||
{ { 0.5f, -0.5f, 0.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } }, // 2: Blue
|
||||
|
||||
// Triangle 2 (Clockwise)
|
||||
{ { -0.5f, 0.5f, 0.0f }, { 1.0f, 1.0f, 0.0f, 1.0f } }, // 3: Yellow
|
||||
{ { 0.0f, 0.8f, 0.0f }, { 0.0f, 1.0f, 1.0f, 1.0f } }, // 4: Cyan
|
||||
{ { 0.5f, 0.5f, 0.0f }, { 1.0f, 0.0f, 1.0f, 1.0f } } // 5: Magenta
|
||||
};
|
||||
constexpr size_t triVertexCount = ArraySize(vertexData);
|
||||
result->VertexCount = triVertexCount;
|
||||
result->Vertices = ArenaPushArray<Vertex>(arena.Get(), triVertexCount);
|
||||
MemCopy(result->Vertices, vertexData, sizeof(Vertex) * triVertexCount);
|
||||
|
||||
// Just the 6 indices for the two triangles
|
||||
constexpr uint16 indices[] = { 0, 1, 2, 3, 4, 5 };
|
||||
constexpr size_t triIndexCount = ArraySize(indices);
|
||||
result->IndexCount = triIndexCount;
|
||||
result->Indices = ArenaPushArray<uint16>(arena.Get(), triIndexCount JULIET_DEBUG_PARAM("Indices"));
|
||||
MemCopy(result->Indices, indices, sizeof(uint16) * triIndexCount);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace Juliet
|
||||
|
||||
315
Juliet/src/Graphics/MeshRenderer.cpp
Normal file
315
Juliet/src/Graphics/MeshRenderer.cpp
Normal file
@@ -0,0 +1,315 @@
|
||||
#include <Graphics/MeshRenderer.h>
|
||||
|
||||
#include <Core/Logging/LogManager.h>
|
||||
#include <Core/Logging/LogTypes.h>
|
||||
#include <Core/Math/Matrix.h>
|
||||
#include <Graphics/GraphicsDevice.h>
|
||||
#include <Graphics/Mesh.h>
|
||||
#include <Graphics/VertexData.h>
|
||||
|
||||
namespace Juliet
|
||||
{
|
||||
namespace
|
||||
{
|
||||
MeshRenderer g_MeshRenderer;
|
||||
} // namespace
|
||||
|
||||
bool InitializeMeshRenderer(NonNullPtr<Arena> arena, NonNullPtr<GraphicsDevice> device, NonNullPtr<Window> window)
|
||||
{
|
||||
(void)arena;
|
||||
(void)device;
|
||||
(void)window;
|
||||
return true;
|
||||
// bool result = true;
|
||||
//
|
||||
// g_MeshRenderer.Meshes.Create(arena JULIET_DEBUG_PARAM("Meshes"));
|
||||
// g_MeshRenderer.Vertices.Create(arena JULIET_DEBUG_PARAM("Vertices"));
|
||||
// g_MeshRenderer.Indices.Create(arena JULIET_DEBUG_PARAM("Indices"));
|
||||
//
|
||||
// GraphicsDevice* graphicsDevice = g_MeshRenderer.Device = device.Get();
|
||||
//
|
||||
// // Create graphics pipeline
|
||||
// String entryPoint = WrapString("main");
|
||||
// ShaderCreateInfo shaderCI = {};
|
||||
// shaderCI.EntryPoint = entryPoint;
|
||||
//
|
||||
// // TODO: Assets management that handles path to assets or something.
|
||||
// String shaderPath = WrapString("../../Assets/compiled/Triangle.vert.dxil");
|
||||
// shaderCI.Stage = ShaderStage::Vertex;
|
||||
// Shader* vertexShader = CreateShader(graphicsDevice, shaderPath, shaderCI);
|
||||
//
|
||||
// shaderPath = WrapString("../../Assets/compiled/SolidColor.frag.dxil");
|
||||
// shaderCI.Stage = ShaderStage::Fragment;
|
||||
// Shader* fragmentShader = CreateShader(graphicsDevice, shaderPath, shaderCI);
|
||||
//
|
||||
// ColorTargetDescription colorTargetDescription = {};
|
||||
// colorTargetDescription.Format = GetSwapChainTextureFormat(graphicsDevice, window);
|
||||
//
|
||||
// GraphicsPipelineCreateInfo pipelineCI = {};
|
||||
// pipelineCI.VertexShader = vertexShader;
|
||||
// pipelineCI.FragmentShader = fragmentShader;
|
||||
// pipelineCI.PrimitiveType = PrimitiveType::TriangleList;
|
||||
// pipelineCI.TargetInfo = { .ColorTargetDescriptions = &colorTargetDescription,
|
||||
// .NumColorTargets = 1,
|
||||
// .DepthStencilFormat = TextureFormat::D32_FLOAT,
|
||||
// .HasDepthStencilTarget = true };
|
||||
// pipelineCI.RasterizerState.FillMode = FillMode::Solid;
|
||||
// pipelineCI.DepthStencilState.EnableDepthTest = true;
|
||||
// pipelineCI.DepthStencilState.EnableDepthWrite = true;
|
||||
// pipelineCI.DepthStencilState.CompareOperation = CompareOperation::Less;
|
||||
//
|
||||
// g_MeshRenderer.Pipeline = CreateGraphicsPipeline(graphicsDevice, pipelineCI);
|
||||
// if (g_MeshRenderer.Pipeline == nullptr)
|
||||
// {
|
||||
// LogError(LogCategory::Graphics, "Failed to create graphics pipeline!");
|
||||
// result = false;
|
||||
// }
|
||||
//
|
||||
// // Create the vertex and index buffers
|
||||
// BufferCreateInfo vertexBufferCI = {};
|
||||
// vertexBufferCI.Size = kGeometryPage;
|
||||
// vertexBufferCI.Usage = BufferUsage::VertexBuffer;
|
||||
// g_MeshRenderer.VertexBuffer = CreateGraphicsBuffer(graphicsDevice, vertexBufferCI);
|
||||
//
|
||||
// BufferCreateInfo indexBufferCI = {};
|
||||
// indexBufferCI.Size = kIndexPage;
|
||||
// indexBufferCI.Usage = BufferUsage::IndexBuffer;
|
||||
// g_MeshRenderer.IndexBuffer = CreateGraphicsBuffer(graphicsDevice, indexBufferCI);
|
||||
//
|
||||
// if (vertexShader)
|
||||
// {
|
||||
// DestroyShader(graphicsDevice, vertexShader);
|
||||
// }
|
||||
// if (fragmentShader)
|
||||
// {
|
||||
// DestroyShader(graphicsDevice, fragmentShader);
|
||||
// }
|
||||
//
|
||||
// return result;
|
||||
}
|
||||
|
||||
void ShutdownMeshRenderer()
|
||||
{
|
||||
return;
|
||||
// DestroyGraphicsBuffer(g_MeshRenderer.Device, g_MeshRenderer.IndexBuffer);
|
||||
// DestroyGraphicsBuffer(g_MeshRenderer.Device, g_MeshRenderer.VertexBuffer);
|
||||
//
|
||||
// g_MeshRenderer.Indices.Destroy();
|
||||
// g_MeshRenderer.Vertices.Destroy();
|
||||
// g_MeshRenderer.Meshes.Destroy();
|
||||
}
|
||||
|
||||
void LoadMeshesOnGPU(NonNullPtr<CommandList> cmdList)
|
||||
{
|
||||
if (g_MeshRenderer.Meshes.IsEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Loading everything in one go.
|
||||
// Destroy the buffer at the end
|
||||
|
||||
TransferBufferCreateInfo uploadBCI = {};
|
||||
uploadBCI.Usage = TransferBufferUsage::Upload;
|
||||
uploadBCI.Size = kGeometryPage + kIndexPage;
|
||||
g_MeshRenderer.LoadCopyBuffer = CreateGraphicsTransferBuffer(g_MeshRenderer.Device, uploadBCI);
|
||||
|
||||
void* map = MapGraphicsTransferBuffer(g_MeshRenderer.Device, g_MeshRenderer.LoadCopyBuffer);
|
||||
|
||||
Vertex* vertices = g_MeshRenderer.Vertices.Data;
|
||||
if (!vertices)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Index* indices = g_MeshRenderer.Indices.Data;
|
||||
if (!indices)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Copy all meshes! This supports only one page for now
|
||||
// Copy ALL Vertices in one block
|
||||
size_t totalVertexBytes = g_MeshRenderer.Vertices.Count * sizeof(Vertex);
|
||||
MemCopy(map, g_MeshRenderer.Vertices.Data, totalVertexBytes);
|
||||
|
||||
// Copy ALL Indices in one block
|
||||
size_t indexOfByteOffset = (kGeometryPage + 255) & static_cast<size_t>(~255);
|
||||
uint8* ptrOneByte = static_cast<uint8*>(map);
|
||||
size_t totalIndexBytes = g_MeshRenderer.Indices.Count * sizeof(Index);
|
||||
|
||||
MemCopy(ptrOneByte + indexOfByteOffset, g_MeshRenderer.Indices.Data, totalIndexBytes);
|
||||
|
||||
// index_t index = 0;
|
||||
// for (Mesh& mesh : g_MeshRenderer.Meshes)
|
||||
// {
|
||||
// // Vertices first
|
||||
// Vertex* mapVertices = static_cast<Vertex*>(map);
|
||||
// MemCopy(mapVertices + index, vertices + mesh.VertexOffset, mesh.VertexCount * sizeOfVertex);
|
||||
//
|
||||
// // Indices next
|
||||
// uint8* ptrOneByte = static_cast<uint8*>(map);
|
||||
// uint16* dst = reinterpret_cast<uint16*>(ptrOneByte + indexOfByteOffset);
|
||||
// MemCopy(dst, indices, mesh.IndexCount * sizeOfIndex);
|
||||
//
|
||||
// ++index;
|
||||
// }
|
||||
|
||||
CopyBuffer(cmdList, g_MeshRenderer.VertexBuffer, g_MeshRenderer.LoadCopyBuffer, totalVertexBytes, 0, 0);
|
||||
CopyBuffer(cmdList, g_MeshRenderer.IndexBuffer, g_MeshRenderer.LoadCopyBuffer, totalIndexBytes, 0, indexOfByteOffset);
|
||||
|
||||
// Transition vertex buffer to SRV state (this barrier waits for copy to complete)
|
||||
TransitionBufferToReadable(cmdList, g_MeshRenderer.VertexBuffer);
|
||||
TransitionBufferToReadable(cmdList, g_MeshRenderer.IndexBuffer);
|
||||
}
|
||||
|
||||
void RenderMeshes(NonNullPtr<RenderPass> pass, NonNullPtr<CommandList> cmdList, PushData& pushData)
|
||||
{
|
||||
// First destroy any buffer that needs to be
|
||||
if (g_MeshRenderer.LoadCopyBuffer)
|
||||
{
|
||||
WaitUntilGPUIsIdle(g_MeshRenderer.Device);
|
||||
UnmapGraphicsTransferBuffer(g_MeshRenderer.Device, g_MeshRenderer.LoadCopyBuffer);
|
||||
DestroyGraphicsTransferBuffer(g_MeshRenderer.Device, g_MeshRenderer.LoadCopyBuffer);
|
||||
g_MeshRenderer.LoadCopyBuffer = nullptr;
|
||||
}
|
||||
|
||||
BindGraphicsPipeline(pass, g_MeshRenderer.Pipeline);
|
||||
|
||||
uint32 vertexDescriptorIndex = GetDescriptorIndex(g_MeshRenderer.Device, g_MeshRenderer.VertexBuffer);
|
||||
|
||||
pushData.BufferIndex = vertexDescriptorIndex;
|
||||
SetPushConstants(cmdList, ShaderStage::Vertex, 0, sizeof(pushData) / 4, &pushData);
|
||||
|
||||
for (Mesh& mesh : g_MeshRenderer.Meshes)
|
||||
{
|
||||
SetIndexBuffer(cmdList, g_MeshRenderer.IndexBuffer, IndexFormat::UInt16, mesh.IndexCount, 0);
|
||||
// DrawIndexedPrimitives(pass, static_cast<uint32>(mesh.IndexCount), 1, static_cast<uint32>(mesh.IndexOffset),
|
||||
// static_cast<uint32>(mesh.VertexOffset), 0);
|
||||
}
|
||||
}
|
||||
|
||||
MeshID AddCube()
|
||||
{
|
||||
Mesh result = {};
|
||||
|
||||
constexpr Vertex vertexData[] = {
|
||||
// Front Face (Z = -0.5f)
|
||||
{ { -0.5f, 0.5f, -0.5f }, { 0.0f, 0.0f } }, // 0: Top Left
|
||||
{ { 0.5f, 0.5f, -0.5f }, { 1.0f, 0.0f } }, // 1: Top Right
|
||||
{ { 0.5f, -0.5f, -0.5f }, { 1.0f, 1.0f } }, // 2: Bottom Right
|
||||
{ { -0.5f, -0.5f, -0.5f }, { 0.0f, 1.0f } }, // 3: Bottom Left
|
||||
|
||||
// Back Face (Z = 0.5f)
|
||||
{ { 0.5f, 0.5f, 0.5f }, { 0.0f, 0.0f } }, // 4: Top Left
|
||||
{ { -0.5f, 0.5f, 0.5f }, { 1.0f, 0.0f } }, // 5: Top Right
|
||||
{ { -0.5f, -0.5f, 0.5f }, { 1.0f, 1.0f } }, // 6: Bottom Right
|
||||
{ { 0.5f, -0.5f, 0.5f }, { 0.0f, 1.0f } }, // 7: Bottom Left
|
||||
|
||||
// Top Face (Y = 0.5f)
|
||||
{ { -0.5f, 0.5f, 0.5f }, { 0.0f, 0.0f } }, // 8: Top Left
|
||||
{ { 0.5f, 0.5f, 0.5f }, { 1.0f, 0.0f } }, // 9: Top Right
|
||||
{ { 0.5f, 0.5f, -0.5f }, { 1.0f, 1.0f } }, // 10: Bottom Right
|
||||
{ { -0.5f, 0.5f, -0.5f }, { 0.0f, 1.0f } }, // 11: Bottom Left
|
||||
|
||||
// Bottom Face (Y = -0.5f)
|
||||
{ { -0.5f, -0.5f, -0.5f }, { 0.0f, 0.0f } }, // 12: Top Left
|
||||
{ { 0.5f, -0.5f, -0.5f }, { 1.0f, 0.0f } }, // 13: Top Right
|
||||
{ { 0.5f, -0.5f, 0.5f }, { 1.0f, 1.0f } }, // 14: Bottom Right
|
||||
{ { -0.5f, -0.5f, 0.5f }, { 0.0f, 1.0f } }, // 15: Bottom Left
|
||||
|
||||
// Right Face (X = 0.5f)
|
||||
{ { 0.5f, 0.5f, -0.5f }, { 0.0f, 0.0f } }, // 16: Top Left
|
||||
{ { 0.5f, 0.5f, 0.5f }, { 1.0f, 0.0f } }, // 17: Top Right
|
||||
{ { 0.5f, -0.5f, 0.5f }, { 1.0f, 1.0f } }, // 18: Bottom Right
|
||||
{ { 0.5f, -0.5f, -0.5f }, { 0.0f, 1.0f } }, // 19: Bottom Left
|
||||
|
||||
// Left Face (X = -0.5f)
|
||||
{ { -0.5f, 0.5f, 0.5f }, { 0.0f, 0.0f } }, // 20: Top Left
|
||||
{ { -0.5f, 0.5f, -0.5f }, { 1.0f, 0.0f } }, // 21: Top Right
|
||||
{ { -0.5f, -0.5f, -0.5f }, { 1.0f, 1.0f } }, // 22: Bottom Right
|
||||
{ { -0.5f, -0.5f, 0.5f }, { 0.0f, 1.0f } } // 23: Bottom Left
|
||||
};
|
||||
constexpr size_t cubeVertexCount = ArraySize(vertexData);
|
||||
result.VertexCount = cubeVertexCount;
|
||||
result.VertexOffset = g_MeshRenderer.Vertices.Count;
|
||||
g_MeshRenderer.Vertices.PushBack(vertexData, cubeVertexCount);
|
||||
|
||||
constexpr uint16 indices[] = { 0, 1, 2, 0, 2, 3, // Front
|
||||
4, 5, 6, 4, 6, 7, // Back
|
||||
8, 9, 10, 8, 10, 11, // Top
|
||||
12, 13, 14, 12, 14, 15, // Bottom
|
||||
16, 17, 18, 16, 18, 19, // Right
|
||||
20, 21, 22, 20, 22, 23 }; // Left
|
||||
constexpr size_t indexCubeCount = ArraySize(indices);
|
||||
result.IndexCount = indexCubeCount;
|
||||
result.IndexOffset = g_MeshRenderer.Indices.Count;
|
||||
g_MeshRenderer.Indices.PushBack(indices, indexCubeCount);
|
||||
|
||||
MeshID id = g_MeshRenderer.Meshes.Count;
|
||||
g_MeshRenderer.Meshes.PushBack(result);
|
||||
return id;
|
||||
}
|
||||
|
||||
MeshID AddQuad()
|
||||
{
|
||||
// Mesh result = {};
|
||||
|
||||
// // Using the exact 6 vertices from the working triangles!
|
||||
// constexpr Vertex vertexData[] = {
|
||||
// // Triangle 1 (Clockwise)
|
||||
// { { -0.5f, -0.5f, 0.0f }, { 1.0f, 0.0f, 0.0f, 1.0f } }, // 0: Red
|
||||
// { { 0.0f, 0.5f, 0.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } }, // 1: Green
|
||||
// { { 0.5f, -0.5f, 0.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } }, // 2: Blue
|
||||
//
|
||||
// // Triangle 2 (Clockwise)
|
||||
// { { -0.5f, 0.5f, 0.0f }, { 1.0f, 1.0f, 0.0f, 1.0f } }, // 3: Yellow
|
||||
// { { 0.0f, 0.8f, 0.0f }, { 0.0f, 1.0f, 1.0f, 1.0f } }, // 4: Cyan
|
||||
// { { 0.5f, 0.5f, 0.0f }, { 1.0f, 0.0f, 1.0f, 1.0f } } // 5: Magenta
|
||||
// };
|
||||
// constexpr size_t triVertexCount = ArraySize(vertexData);
|
||||
// result.VertexCount = triVertexCount;
|
||||
// result.Vertices = ArenaPushArray<Vertex>(arena.Get(), triVertexCount);
|
||||
// MemCopy(result.Vertices, vertexData, sizeof(Vertex) * triVertexCount);
|
||||
//
|
||||
// // Just the 6 indices for the two triangles
|
||||
// constexpr uint16 indices[] = { 0, 1, 2, 3, 4, 5 };
|
||||
// constexpr size_t triIndexCount = ArraySize(indices);
|
||||
// result.IndexCount = triIndexCount;
|
||||
// result.Indices = ArenaPushArray<uint16>(arena.Get(), triIndexCount JULIET_DEBUG_PARAM("Indices"));
|
||||
// MemCopy(result.Indices, indices, sizeof(uint16) * triIndexCount);
|
||||
//
|
||||
// g_MeshRenderer.Meshes.PushBack(std::move(result));
|
||||
return g_MeshRenderer.Meshes.Count - 1;
|
||||
}
|
||||
|
||||
#if ALLOW_SHADER_HOT_RELOAD
|
||||
void ReloadMeshRendererShaders()
|
||||
{
|
||||
auto* pipeline = g_MeshRenderer.Pipeline;
|
||||
auto* device = g_MeshRenderer.Device;
|
||||
|
||||
String entryPoint = WrapString("main");
|
||||
ShaderCreateInfo shaderCI = {};
|
||||
shaderCI.EntryPoint = entryPoint;
|
||||
String shaderPath = WrapString("../../Assets/compiled/Triangle.vert.dxil");
|
||||
shaderCI.Stage = ShaderStage::Vertex;
|
||||
Shader* vertexShader = CreateShader(device, shaderPath, shaderCI);
|
||||
|
||||
shaderPath = WrapString("../../Assets/compiled/SolidColor.frag.dxil");
|
||||
shaderCI.Stage = ShaderStage::Fragment;
|
||||
Shader* fragmentShader = CreateShader(device, shaderPath, shaderCI);
|
||||
|
||||
UpdateGraphicsPipelineShaders(device, pipeline, vertexShader, fragmentShader);
|
||||
|
||||
if (vertexShader)
|
||||
{
|
||||
DestroyShader(device, vertexShader);
|
||||
}
|
||||
if (fragmentShader)
|
||||
{
|
||||
DestroyShader(device, fragmentShader);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
} // namespace Juliet
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <Graphics/GraphicsConfig.h>
|
||||
#include <Graphics/GraphicsPipeline.h>
|
||||
#include <Graphics/Mesh.h>
|
||||
#include <Graphics/MeshRenderer.h>
|
||||
#include <Graphics/RenderPass.h>
|
||||
#include <Graphics/VertexData.h>
|
||||
#include <Juliet.h>
|
||||
@@ -63,6 +64,8 @@ namespace
|
||||
} Game;
|
||||
|
||||
const char* GameFunctionTable[] = { "GameInit", "GameShutdown", "GameUpdate" };
|
||||
|
||||
Arena* PlatformArena = nullptr;
|
||||
} // namespace
|
||||
|
||||
void JulietApplication::Init()
|
||||
@@ -71,6 +74,8 @@ void JulietApplication::Init()
|
||||
|
||||
Log(LogLevel::Message, LogCategory::Tool, "%s", CStr(GetBasePath()));
|
||||
|
||||
PlatformArena = ArenaAllocate({ .AllowRealloc = true } JULIET_DEBUG_PARAM("Platform Arena"));
|
||||
|
||||
GraphicsConfig config;
|
||||
#if JULIET_DEBUG
|
||||
config.EnableDebug = true;
|
||||
@@ -85,42 +90,7 @@ void JulietApplication::Init()
|
||||
{
|
||||
AttachToWindow(GraphicsDevice, MainWindow);
|
||||
{
|
||||
// Create graphics pipeline
|
||||
String entryPoint = WrapString("main");
|
||||
ShaderCreateInfo shaderCI = {};
|
||||
shaderCI.EntryPoint = entryPoint;
|
||||
|
||||
// TODO: Assets management that handles path to assets or something.
|
||||
String shaderPath = WrapString("../../Assets/compiled/Triangle.vert.dxil");
|
||||
shaderCI.Stage = ShaderStage::Vertex;
|
||||
Shader* vertexShader = CreateShader(GraphicsDevice, shaderPath, shaderCI);
|
||||
|
||||
shaderPath = WrapString("../../Assets/compiled/SolidColor.frag.dxil");
|
||||
shaderCI.Stage = ShaderStage::Fragment;
|
||||
Shader* fragmentShader = CreateShader(GraphicsDevice, shaderPath, shaderCI);
|
||||
|
||||
ColorTargetDescription colorTargetDescription = {};
|
||||
colorTargetDescription.Format = GetSwapChainTextureFormat(GraphicsDevice, MainWindow);
|
||||
|
||||
GraphicsPipelineCreateInfo pipelineCI = {};
|
||||
pipelineCI.VertexShader = vertexShader;
|
||||
pipelineCI.FragmentShader = fragmentShader;
|
||||
pipelineCI.PrimitiveType = PrimitiveType::TriangleList;
|
||||
pipelineCI.TargetInfo = { .ColorTargetDescriptions = &colorTargetDescription,
|
||||
.NumColorTargets = 1,
|
||||
.DepthStencilFormat = TextureFormat::D32_FLOAT,
|
||||
.HasDepthStencilTarget = true };
|
||||
pipelineCI.RasterizerState.FillMode = FillMode::Solid;
|
||||
pipelineCI.DepthStencilState.EnableDepthTest = true;
|
||||
pipelineCI.DepthStencilState.EnableDepthWrite = true;
|
||||
pipelineCI.DepthStencilState.CompareOperation = CompareOperation::Less;
|
||||
|
||||
GraphicsPipeline = CreateGraphicsPipeline(GraphicsDevice, pipelineCI);
|
||||
if (GraphicsPipeline == nullptr)
|
||||
{
|
||||
LogError(LogCategory::Game, "Failed to create graphics pipeline!");
|
||||
Running = false;
|
||||
}
|
||||
Running = InitializeMeshRenderer(PlatformArena, GraphicsDevice, MainWindow);
|
||||
|
||||
// Create Depth Buffer
|
||||
TextureCreateInfo depthCI = {};
|
||||
@@ -139,50 +109,11 @@ void JulietApplication::Init()
|
||||
Running = false;
|
||||
}
|
||||
|
||||
// Create Buffers - Using StructuredBuffer for bindless SRV access in shader
|
||||
BufferCreateInfo bufferCI = {};
|
||||
bufferCI.Size = 1024;
|
||||
bufferCI.Usage = BufferUsage::StructuredBuffer; // SRV for ResourceDescriptorHeap access
|
||||
StructuredBuffer = CreateGraphicsBuffer(GraphicsDevice, bufferCI);
|
||||
|
||||
TransferBufferCreateInfo transferCI = {};
|
||||
transferCI.Size = 1024;
|
||||
transferCI.Usage = TransferBufferUsage::Upload;
|
||||
TransferBuffer = CreateGraphicsTransferBuffer(GraphicsDevice, transferCI);
|
||||
|
||||
// Upload Static Data for Test
|
||||
if (TransferBuffer && StructuredBuffer)
|
||||
{
|
||||
void* data = MapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
||||
if (data)
|
||||
{
|
||||
Matrix projection = PerspectiveFov(60.0f * (3.14159f / 180.0f), 1200.0f / 800.0f, 0.1f, 1000.0f);
|
||||
Matrix view = LookAt({ 30.0f, 0.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f });
|
||||
Matrix model = Matrix::Identity();
|
||||
Matrix mvp = projection * view * model;
|
||||
|
||||
MemCopy(data, &mvp, sizeof(Matrix));
|
||||
UnmapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
||||
|
||||
CommandList* initCmd = AcquireCommandList(GraphicsDevice);
|
||||
CopyBuffer(initCmd, StructuredBuffer, TransferBuffer, 256);
|
||||
TransitionBufferToReadable(initCmd, StructuredBuffer);
|
||||
SubmitCommandLists(initCmd);
|
||||
}
|
||||
}
|
||||
|
||||
CubeArena = ArenaAllocate({ .ReserveSize = Kilobytes(1llu), .CommitSize = Kilobytes(1llu) } JULIET_DEBUG_PARAM("CubeArena"));
|
||||
CubeMesh = CreateCubeMesh(CubeArena);
|
||||
// CubeMesh = CreateQuadMesh(CubeArena);
|
||||
|
||||
if (vertexShader)
|
||||
{
|
||||
DestroyShader(GraphicsDevice, vertexShader);
|
||||
}
|
||||
if (fragmentShader)
|
||||
{
|
||||
DestroyShader(GraphicsDevice, fragmentShader);
|
||||
}
|
||||
// std::ignore = AddCube();
|
||||
//
|
||||
// CommandList* loadCmd = AcquireCommandList(GraphicsDevice);
|
||||
// LoadMeshesOnGPU(loadCmd);
|
||||
// SubmitCommandLists(loadCmd);
|
||||
|
||||
if (Running == false)
|
||||
{
|
||||
@@ -208,8 +139,6 @@ void JulietApplication::Shutdown()
|
||||
{
|
||||
Log(LogLevel::Message, LogCategory::Tool, "Shutting down Juliet Application...");
|
||||
|
||||
ArenaRelease(CubeArena);
|
||||
|
||||
if (GameCode.IsValid)
|
||||
{
|
||||
Game.Shutdown();
|
||||
@@ -220,19 +149,14 @@ void JulietApplication::Shutdown()
|
||||
{
|
||||
DestroyGraphicsPipeline(GraphicsDevice, GraphicsPipeline);
|
||||
}
|
||||
if (StructuredBuffer)
|
||||
{
|
||||
DestroyGraphicsBuffer(GraphicsDevice, StructuredBuffer);
|
||||
}
|
||||
if (TransferBuffer)
|
||||
{
|
||||
DestroyGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
||||
}
|
||||
|
||||
if (DepthBuffer)
|
||||
{
|
||||
DestroyTexture(GraphicsDevice, DepthBuffer);
|
||||
}
|
||||
|
||||
ShutdownMeshRenderer();
|
||||
|
||||
if (MainWindow && GraphicsDevice)
|
||||
{
|
||||
DetachFromWindow(GraphicsDevice, MainWindow);
|
||||
@@ -248,6 +172,8 @@ void JulietApplication::Shutdown()
|
||||
DestroyGraphicsDevice(GraphicsDevice);
|
||||
}
|
||||
|
||||
ArenaRelease(PlatformArena);
|
||||
|
||||
Log(LogLevel::Message, LogCategory::Tool, "Juliet App shutdown Completed");
|
||||
}
|
||||
|
||||
@@ -281,7 +207,7 @@ void JulietApplication::Update()
|
||||
}
|
||||
|
||||
#ifdef JULIET_ENABLE_IMGUI
|
||||
ImGui::ShowDemoWindow();
|
||||
// ImGui::ShowDemoWindow();
|
||||
#endif
|
||||
|
||||
DebugDisplay_DrawLine({ 0.0f, 0.0f, 0.0f }, { 1.0f, 0.0f, 0.0f }, { 1.0f, 0.0f, 0.0f, 1.0f }, false);
|
||||
@@ -301,27 +227,7 @@ void JulietApplication::Update()
|
||||
WaitUntilGPUIsIdle(GraphicsDevice);
|
||||
|
||||
#if ALLOW_SHADER_HOT_RELOAD
|
||||
String entryPoint = WrapString("main");
|
||||
ShaderCreateInfo shaderCI = {};
|
||||
shaderCI.EntryPoint = entryPoint;
|
||||
String shaderPath = WrapString("../../Assets/compiled/Triangle.vert.dxil");
|
||||
shaderCI.Stage = ShaderStage::Vertex;
|
||||
Shader* vertexShader = CreateShader(GraphicsDevice, shaderPath, shaderCI);
|
||||
|
||||
shaderPath = WrapString("../../Assets/compiled/SolidColor.frag.dxil");
|
||||
shaderCI.Stage = ShaderStage::Fragment;
|
||||
Shader* fragmentShader = CreateShader(GraphicsDevice, shaderPath, shaderCI);
|
||||
|
||||
UpdateGraphicsPipelineShaders(GraphicsDevice, GraphicsPipeline, vertexShader, fragmentShader);
|
||||
|
||||
if (vertexShader)
|
||||
{
|
||||
DestroyShader(GraphicsDevice, vertexShader);
|
||||
}
|
||||
if (fragmentShader)
|
||||
{
|
||||
DestroyShader(GraphicsDevice, fragmentShader);
|
||||
}
|
||||
ReloadMeshRendererShaders();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -361,76 +267,16 @@ void JulietApplication::Update()
|
||||
ArenaClear(GameScratchArena);
|
||||
}
|
||||
|
||||
void JulietApplication::OnPreRender(CommandList* cmd)
|
||||
void JulietApplication::OnPreRender(CommandList* /*cmd*/) {}
|
||||
|
||||
void JulietApplication::OnRender(RenderPass*, CommandList*)
|
||||
{
|
||||
index_t index = 0;
|
||||
// PushData pushData = {};
|
||||
// pushData.ViewProjection = Camera_GetViewProjectionMatrix(GetDebugCamera());
|
||||
|
||||
// Buffer uploads
|
||||
if (StructuredBuffer && TransferBuffer)
|
||||
{
|
||||
void* ptr = MapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
||||
if (ptr)
|
||||
{
|
||||
Vertex* vertices = static_cast<Vertex*>(ptr);
|
||||
// RenderMeshes(pass, cmd, pushData);
|
||||
|
||||
// // Triangle 1
|
||||
// vertices[index++] = { { -0.5f, -0.5f, 0.0f }, { 1.0f, 0.0f, 0.0f, 1.0f } }; // Red
|
||||
// vertices[index++] = { { 0.0f, 0.5f, 0.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } }; // Green
|
||||
// vertices[index++] = { { 0.5f, -0.5f, 0.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } }; // Blue
|
||||
//
|
||||
// // Triangle 2
|
||||
// vertices[index++] = { { -0.5f, 0.5f, 0.0f }, { 1.0f, 1.0f, 0.0f, 1.0f } }; // Yellow
|
||||
// vertices[index++] = { { 0.0f, 0.8f, 0.0f }, { 0.0f, 1.0f, 1.0f, 1.0f } }; // Cyan
|
||||
// vertices[index++] = { { 0.5f, 0.5f, 0.0f }, { 1.0f, 0.0f, 1.0f, 1.0f } }; // Magenta
|
||||
|
||||
if (CubeMesh)
|
||||
{
|
||||
CubeMesh->VertexOffset = index;
|
||||
size_t vertexSize = CubeMesh->VertexCount * sizeof(Vertex);
|
||||
MemCopy(vertices + index, CubeMesh->Vertices, vertexSize);
|
||||
|
||||
CubeMesh->IndexByteOffset = (index + CubeMesh->VertexCount) * sizeof(Vertex);
|
||||
// Align
|
||||
CubeMesh->IndexByteOffset = (CubeMesh->IndexByteOffset + 255) & static_cast<size_t>(~255);
|
||||
|
||||
size_t indexSize = CubeMesh->IndexCount * sizeof(uint16);
|
||||
|
||||
CubeMesh->IndexOffset = 0;
|
||||
|
||||
uint8* ptrOneByte = static_cast<uint8*>(ptr);
|
||||
uint16* dst = reinterpret_cast<uint16*>(ptrOneByte + CubeMesh->IndexByteOffset);
|
||||
MemCopy(dst, CubeMesh->Indices, indexSize);
|
||||
}
|
||||
|
||||
UnmapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
||||
}
|
||||
|
||||
CopyBuffer(cmd, StructuredBuffer, TransferBuffer, CubeMesh->IndexByteOffset + (CubeMesh->IndexCount * sizeof(uint16)));
|
||||
TransitionBufferToReadable(cmd, StructuredBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
void JulietApplication::OnRender(RenderPass* pass, CommandList* cmd)
|
||||
{
|
||||
BindGraphicsPipeline(pass, GraphicsPipeline);
|
||||
|
||||
uint32 descriptorIndex = GetDescriptorIndex(GraphicsDevice, StructuredBuffer);
|
||||
|
||||
struct PushData
|
||||
{
|
||||
Matrix ViewProjection;
|
||||
uint32 BufferIndex;
|
||||
} pushData = {};
|
||||
pushData.BufferIndex = descriptorIndex;
|
||||
pushData.ViewProjection = Camera_GetViewProjectionMatrix(GetDebugCamera());
|
||||
|
||||
SetPushConstants(cmd, ShaderStage::Vertex, 0, sizeof(pushData) / 4, &pushData);
|
||||
|
||||
SetIndexBuffer(cmd, StructuredBuffer, IndexFormat::UInt16, CubeMesh->IndexCount, CubeMesh->IndexByteOffset);
|
||||
// DrawIndexedPrimitives(pass, static_cast<uint32>(CubeMesh->IndexCount), 1, 0, 0, 0);
|
||||
|
||||
DrawIndexedPrimitives(pass, static_cast<uint32>(CubeMesh->IndexCount), 1,
|
||||
static_cast<uint32>(CubeMesh->IndexOffset), static_cast<uint32>(CubeMesh->VertexOffset), 0);
|
||||
// SetPushConstants(cmd, ShaderStage::Vertex, 0, sizeof(pushData) / 4, &pushData);
|
||||
}
|
||||
|
||||
ColorTargetInfo JulietApplication::GetColorTargetInfo(Texture* swapchainTexture)
|
||||
|
||||
@@ -42,13 +42,7 @@ class JulietApplication : public Juliet::IApplication
|
||||
Juliet::GraphicsDevice* GraphicsDevice = {};
|
||||
Juliet::HotReloadCode GameCode = {};
|
||||
Juliet::GraphicsPipeline* GraphicsPipeline = {};
|
||||
Juliet::GraphicsBuffer* StructuredBuffer = {};
|
||||
Juliet::GraphicsTransferBuffer* TransferBuffer = {};
|
||||
Juliet::Texture* DepthBuffer = {};
|
||||
|
||||
Juliet::Mesh* CubeMesh = {};
|
||||
Juliet::Arena* CubeArena = nullptr;
|
||||
|
||||
Juliet::Arena* GameArena = nullptr;
|
||||
Juliet::Arena* GameScratchArena = nullptr;
|
||||
|
||||
|
||||
@@ -1,73 +1,630 @@
|
||||
[2026-02-16 16:02:02.4149977] Starting Unit Tests...
|
||||
[2026-02-21 23:07:28.6894112] Starting Unit Tests...
|
||||
Running Paged Memory Arena Tests...
|
||||
[2026-02-16 16:02:02.4153152] Allocating from W:\Classified\Juliet\Juliet\src\Core\Memory\MemoryArenaTests.cpp : 23l
|
||||
[2026-02-16 16:02:02.4154229] Allocating from W:\Classified\Juliet\Juliet\src\Core\Memory\MemoryArena.cpp : 181l
|
||||
[2026-02-16 16:02:02.4264282] Allocating from W:\Classified\Juliet\Juliet\src\Core\Memory\MemoryArenaTests.cpp : 122l
|
||||
[2026-02-16 16:02:02.4266593] Allocating from W:\Classified\Juliet\Juliet\src\Core\Memory\MemoryArenaTests.cpp : 141l
|
||||
[2026-02-21 23:07:28.6896698] Allocating from W:\Classified\Juliet\Juliet\src\Core\Memory\MemoryArenaTests.cpp : 23l
|
||||
[2026-02-21 23:07:28.6897701] Allocating from W:\Classified\Juliet\Juliet\src\Core\Memory\MemoryArena.cpp : 181l
|
||||
[2026-02-21 23:07:28.7003022] Allocating from W:\Classified\Juliet\Juliet\src\Core\Memory\MemoryArenaTests.cpp : 122l
|
||||
[2026-02-21 23:07:28.7005045] Allocating from W:\Classified\Juliet\Juliet\src\Core\Memory\MemoryArenaTests.cpp : 141l
|
||||
All Paged MemoryArena tests passed.
|
||||
[2026-02-16 16:02:02.4268147] Allocating from Juliet/include\Core/Container/Vector.h : 22l
|
||||
[2026-02-16 16:02:02.4269590] Allocating from Juliet/include\Core/Container/Vector.h : 22l
|
||||
[2026-02-16 16:02:02.4270984] Allocating from Juliet/include\Core/Container/Vector.h : 22l
|
||||
[2026-02-16 16:02:02.4272310] Allocating from Juliet/include\Core/Container/Vector.h : 22l
|
||||
[2026-02-16 16:02:02.4273792] Allocating from W:\Classified\Juliet\Juliet\src\UnitTest\Container\VectorUnitTest.cpp : 152l
|
||||
[2026-02-16 16:02:02.4275180] Allocating from W:\Classified\Juliet\Juliet\src\UnitTest\Container\VectorUnitTest.cpp : 212l
|
||||
[2026-02-16 16:02:02.4276613] Allocating from W:\Classified\Juliet\Juliet\src\UnitTest\Container\VectorUnitTest.cpp : 231l
|
||||
[2026-02-16 16:02:02.4277980] Allocating from W:\Classified\Juliet\Juliet\src\UnitTest\Container\VectorUnitTest.cpp : 258l
|
||||
[2026-02-16 16:02:02.4279316] Allocating from W:\Classified\Juliet\Juliet\src\UnitTest\Container\VectorUnitTest.cpp : 275l
|
||||
[2026-02-16 16:02:02.4280555] Unit Tests Completed Successfully.
|
||||
[2026-02-16 16:02:02.4281360] Allocating from W:\Classified\Juliet\Juliet\src\Core\HAL\Display\Display.cpp : 26l
|
||||
[2026-02-16 16:02:02.4282502] Allocating from Juliet/include\Core/Container/Vector.h : 22l
|
||||
[2026-02-16 16:02:02.4283584] Initializing Juliet Application...
|
||||
[2026-02-16 16:02:02.4284436] w:\Classified\Juliet\bin\x64Clang-Debug\
|
||||
[2026-02-16 16:02:02.6190578] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12GraphicsDevice.cpp : 709l
|
||||
[2026-02-16 16:02:02.6205209] D3D12 Driver Infos:
|
||||
[2026-02-16 16:02:02.6206266] D3D12 Adapter: AMD Radeon RX 5700 XT
|
||||
[2026-02-16 16:02:02.6206942] D3D12 Driver Version: 32.0.21041.1000
|
||||
[2026-02-16 16:02:02.7715117] DX12: D3D12Device Created: 000001AE0FCD6AC0
|
||||
[2026-02-16 16:02:02.7716961] DX12: Debug Info Logger Initialized
|
||||
[2026-02-16 16:02:02.7759926] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12Common.cpp : 52l
|
||||
[2026-02-16 16:02:02.7762940] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12Common.cpp : 52l
|
||||
[2026-02-16 16:02:02.7764796] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12Common.cpp : 52l
|
||||
[2026-02-16 16:02:02.7767423] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12Common.cpp : 52l
|
||||
[2026-02-16 16:02:02.7769776] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12DescriptorHeap.cpp : 15l
|
||||
[2026-02-16 16:02:02.7862548] Allocating from W:\Classified\Juliet\Juliet\src\Core\HAL\Display\Display.cpp : 83l
|
||||
[2026-02-16 16:02:02.8281025] CreateBuffer: Device=000001AE0FCD6AC0, Size=1024, Type=Base Use=StructuredBuffer
|
||||
[2026-02-16 16:02:02.8287554] -> SRV DescriptorIndex=1
|
||||
[2026-02-16 16:02:02.8288672] CreateBuffer: Device=000001AE0FCD6AC0, Size=1024, Type=TransferUpload Use=None
|
||||
[2026-02-16 16:02:02.8304524] Allocating from W:\Classified\Juliet\JulietApp\main.cpp : 174l
|
||||
[2026-02-16 16:02:02.8306076] Allocating from W:\Classified\Juliet\Juliet\src\Core\HotReload\HotReload.cpp : 14l
|
||||
[2026-02-16 16:02:02.8561774] Allocating from W:\Classified\Juliet\JulietApp\main.cpp : 200l
|
||||
[2026-02-16 16:02:02.8563269] Allocating from W:\Classified\Juliet\JulietApp\main.cpp : 201l
|
||||
Game Arena Allocated: 000001AE56E00080
|
||||
[2026-02-21 23:07:28.7006190] Allocating from Juliet/include\Core/Container/Vector.h : 22l
|
||||
[2026-02-21 23:07:28.7007239] Allocating from Juliet/include\Core/Container/Vector.h : 22l
|
||||
[2026-02-21 23:07:28.7008239] Allocating from Juliet/include\Core/Container/Vector.h : 22l
|
||||
[2026-02-21 23:07:28.7009231] Allocating from Juliet/include\Core/Container/Vector.h : 22l
|
||||
[2026-02-21 23:07:28.7010362] Allocating from W:\Classified\Juliet\Juliet\src\UnitTest\Container\VectorUnitTest.cpp : 152l
|
||||
[2026-02-21 23:07:28.7011542] Allocating from W:\Classified\Juliet\Juliet\src\UnitTest\Container\VectorUnitTest.cpp : 212l
|
||||
[2026-02-21 23:07:28.7013055] Allocating from W:\Classified\Juliet\Juliet\src\UnitTest\Container\VectorUnitTest.cpp : 231l
|
||||
[2026-02-21 23:07:28.7014501] Allocating from W:\Classified\Juliet\Juliet\src\UnitTest\Container\VectorUnitTest.cpp : 258l
|
||||
[2026-02-21 23:07:28.7015854] Allocating from W:\Classified\Juliet\Juliet\src\UnitTest\Container\VectorUnitTest.cpp : 275l
|
||||
[2026-02-21 23:07:28.7017277] Unit Tests Completed Successfully.
|
||||
[2026-02-21 23:07:28.7018198] Allocating from W:\Classified\Juliet\Juliet\src\Core\HAL\Display\Display.cpp : 26l
|
||||
[2026-02-21 23:07:28.7019410] Allocating from Juliet/include\Core/Container/Vector.h : 22l
|
||||
[2026-02-21 23:07:28.7020442] Initializing Juliet Application...
|
||||
[2026-02-21 23:07:28.7021156] W:\Classified\Juliet\bin\x64Clang-Debug\
|
||||
[2026-02-21 23:07:28.7021800] Allocating from W:\Classified\Juliet\JulietApp\main.cpp : 77l
|
||||
[2026-02-21 23:07:28.9129941] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12GraphicsDevice.cpp : 710l
|
||||
[2026-02-21 23:07:28.9142381] D3D12 Driver Infos:
|
||||
[2026-02-21 23:07:28.9143146] D3D12 Adapter: AMD Radeon RX 5700 XT
|
||||
[2026-02-21 23:07:28.9143699] D3D12 Driver Version: 32.0.21041.1000
|
||||
[2026-02-21 23:07:29.0218143] DX12: D3D12Device Created: 000001E74B43C060
|
||||
[2026-02-21 23:07:29.0219203] DX12: Debug Info Logger Initialized
|
||||
[2026-02-21 23:07:29.0252979] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12Common.cpp : 52l
|
||||
[2026-02-21 23:07:29.0255980] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12Common.cpp : 52l
|
||||
[2026-02-21 23:07:29.0257980] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12Common.cpp : 52l
|
||||
[2026-02-21 23:07:29.0260445] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12Common.cpp : 52l
|
||||
[2026-02-21 23:07:29.0262559] Allocating from W:\Classified\Juliet\Juliet\src\Graphics\D3D12\D3D12DescriptorHeap.cpp : 15l
|
||||
[2026-02-21 23:07:29.0329752] Allocating from W:\Classified\Juliet\Juliet\src\Core\HAL\Display\Display.cpp : 83l
|
||||
[2026-02-21 23:07:29.0726746] Allocating from W:\Classified\Juliet\Juliet\src\Core\HotReload\HotReload.cpp : 14l
|
||||
[2026-02-21 23:07:29.1009264] Allocating from W:\Classified\Juliet\JulietApp\main.cpp : 131l
|
||||
[2026-02-21 23:07:29.1010784] Allocating from W:\Classified\Juliet\JulietApp\main.cpp : 132l
|
||||
Game Arena Allocated: 000001E718000080
|
||||
Door is Opened
|
||||
Rock has 100 health points
|
||||
[2026-02-16 16:02:02.8565687] CreateBuffer: Device=000001AE0FCD6AC0, Size=458752, Type=Base Use=StructuredBuffer
|
||||
[2026-02-16 16:02:02.8575789] -> SRV DescriptorIndex=2
|
||||
[2026-02-16 16:02:02.8576717] CreateBuffer: Device=000001AE0FCD6AC0, Size=458752, Type=TransferUpload Use=None
|
||||
[2026-02-16 16:02:02.8583558] Allocating from W:\Classified\Juliet\Juliet\src\Core\ImGui\ImGuiService.cpp : 44l
|
||||
ImGuiRenderer_Initialize: device=000001AE2B1AC730, g_ImGuiState=00007FFE66A66140, Initialized=0
|
||||
[2026-02-16 16:02:02.8634723] CreateBuffer: Device=000001AE0FCD6AC0, Size=262144, Type=TransferUpload Use=None
|
||||
ImGuiService: Running Unit Tests...
|
||||
TestImGui: Context Verified.
|
||||
TestImGui: IO Verified. Backend: imgui_impl_win32
|
||||
TestImGui: Version Verified: 1.92.6 WIP
|
||||
TestImGui: Fonts Verified.
|
||||
TestImGui: Fonts Built Status: 1
|
||||
TestImGui: Font Atlas Verified.
|
||||
TestImGui: Style Verified.
|
||||
TestImGui: About to DrawList check.
|
||||
ImGui tests passed (Exhaustive).
|
||||
[2026-02-16 16:02:02.8744932] CreateBuffer: Device=000001AE0FCD6AC0, Size=101400, Type=Base Use=StructuredBuffer
|
||||
[2026-02-16 16:02:02.8754236] -> SRV DescriptorIndex=4
|
||||
[2026-02-16 16:02:02.8755349] CreateBuffer: Device=000001AE0FCD6AC0, Size=101400, Type=TransferUpload Use=None
|
||||
[2026-02-16 16:02:02.8762446] CreateBuffer: Device=000001AE0FCD6AC0, Size=20258, Type=Base Use=IndexBuffer
|
||||
[2026-02-16 16:02:02.8768422] CreateBuffer: Device=000001AE0FCD6AC0, Size=20258, Type=TransferUpload Use=None
|
||||
[2026-02-16 16:02:02.8797340] CreateBuffer: Device=000001AE0FCD6AC0, Size=101400, Type=Base Use=StructuredBuffer
|
||||
[2026-02-16 16:02:02.8805045] -> SRV DescriptorIndex=5
|
||||
[2026-02-16 16:02:02.8806249] CreateBuffer: Device=000001AE0FCD6AC0, Size=101400, Type=TransferUpload Use=None
|
||||
[2026-02-16 16:02:02.8812642] CreateBuffer: Device=000001AE0FCD6AC0, Size=20258, Type=Base Use=IndexBuffer
|
||||
[2026-02-16 16:02:02.8819564] CreateBuffer: Device=000001AE0FCD6AC0, Size=20258, Type=TransferUpload Use=None
|
||||
[2026-02-16 16:02:03.7970638] Auto-closing application as requested.
|
||||
[2026-02-16 16:02:03.8504471] Shutting down Juliet Application...
|
||||
Shutting down game...
|
||||
[2026-02-16 16:02:03.8768023] Juliet App shutdown Completed
|
||||
[2026-02-21 23:07:29.1012934] CreateBuffer: Device=000001E74B43C060, Size=458752, Type=Base Use=StructuredBuffer
|
||||
[2026-02-21 23:07:29.1021401] -> SRV DescriptorIndex=1
|
||||
[2026-02-21 23:07:29.1022149] CreateBuffer: Device=000001E74B43C060, Size=458752, Type=TransferUpload Use=None
|
||||
[2026-02-21 23:07:29.1039161] Acquire Querier SubmitCommandLists | Setting Signal to 0 NEW fence
|
||||
[2026-02-21 23:07:29.1040168] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.1049359] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.1080351] Acquire Querier SubmitCommandLists | Setting Signal to 0 NEW fence
|
||||
[2026-02-21 23:07:29.1081700] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.1086393] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.1094686] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.1095416] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.1096043] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.1096697] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.1100872] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.1101673] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.1115502] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.1116597] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.1117262] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.1117877] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.1119523] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.1120219] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.1219018] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.1220233] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.1548977] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.1550120] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.1550761] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.1552723] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.1553462] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.1556713] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.1557420] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.1883044] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.1884217] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.1884842] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.1886605] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.1887304] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.1890054] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.1890773] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.2217941] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.2219489] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.2220127] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.2221841] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.2222537] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.2225840] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.2229455] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.2383337] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.2384502] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.2385116] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.2386715] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.2387404] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.2390131] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.2390831] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.2550069] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.2551509] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.2552277] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.2554968] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.2555885] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.2559458] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.2560186] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.2716329] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.2717566] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.2718188] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.2719830] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.2720524] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.2723588] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.2724293] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.2883261] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.2884544] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.2885176] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.2886957] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.2887651] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.2890525] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.2891224] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.3049791] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.3051053] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.3051742] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.3053687] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.3054490] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.3057488] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.3058663] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.3217358] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.3221037] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.3221787] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.3223392] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.3224151] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.3226868] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.3227563] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.3384015] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.3385231] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.3385849] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.3387972] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.3388806] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.3391764] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.3392454] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.3549502] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.3550678] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.3551300] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.3553365] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.3554239] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.3557324] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.3558173] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.3718790] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.3720342] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.3720964] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.3722930] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.3723626] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.3727154] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.3727858] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.3883475] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.3884716] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.3885407] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.3887072] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.3887751] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.3890449] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.3891139] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.4050130] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.4051451] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.4052211] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.4057504] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.4058242] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.4061362] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.4062069] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.4220033] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.4221699] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.4222655] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.4224440] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.4225130] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.4228507] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.4230289] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.4383211] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.4384322] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.4384929] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.4386460] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.4387140] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.4389800] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.4390485] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.4551206] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.4552471] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.4553160] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.4555175] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.4555999] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.4559124] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.4559860] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.4716976] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.4718104] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.4718706] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.4720319] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.4720992] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.4723706] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.4724395] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.4885510] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.4886733] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.4887339] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.4889002] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.4889685] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.4897593] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.4898428] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.5050352] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.5051512] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.5052118] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.5053676] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.5054354] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.5057139] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.5057836] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.5217239] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.5218315] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.5218914] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.5220452] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.5221130] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.5223847] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.5224647] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.5386262] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.5387997] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.5388616] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.5391048] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.5391783] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.5395836] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.5396547] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.5551587] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.5552707] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.5553349] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.5554919] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.5555694] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.5558460] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.5559151] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.5718849] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.5720184] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.5720876] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.5722595] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.5723368] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.5725932] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.5726729] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.5884407] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.5888274] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.5889019] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.5890669] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.5891355] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.5894190] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.5894895] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.6050657] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.6051767] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.6052379] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.6053974] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.6054653] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.6057525] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.6058220] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.6219736] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.6221289] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.6221919] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.6223510] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.6224542] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.6228430] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.6229127] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.6384486] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.6385667] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.6386281] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.6387914] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.6388594] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.6391646] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.6392352] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.6552723] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.6554321] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.6555066] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.6556890] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.6557586] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.6561253] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.6561985] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.6718770] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.6719922] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.6723202] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.6725049] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.6725750] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.6728510] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.6729221] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.6885332] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.6886638] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.6887277] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.6888980] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.6889667] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.6892578] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.6893267] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.7051422] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.7052573] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.7053184] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.7054859] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.7055545] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.7058434] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.7059136] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.7218363] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.7219475] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.7220075] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.7221733] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.7222401] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.7225114] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.7225796] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.7385886] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.7387196] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.7388121] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.7389703] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.7390388] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.7394514] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.7395229] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.7552948] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.7554259] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.7554947] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.7557460] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.7558396] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.7564970] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.7565703] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.7721069] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.7722609] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.7723235] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.7725031] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.7725708] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.7728847] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.7729540] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.7884869] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.7886006] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.7886609] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.7888126] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.7888803] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.7891520] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.7892211] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.8051647] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.8052788] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.8053391] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.8054907] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.8055588] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.8058434] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.8059125] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.8221185] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.8222806] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.8223454] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.8225130] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.8225832] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.8228357] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.8229053] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.8385143] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.8386319] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.8387099] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.8388683] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.8389361] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.8392851] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.8393554] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.8554379] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.8556217] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.8556853] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.8558672] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.8559452] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.8562899] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.8563617] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.8718738] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.8719845] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.8720455] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.8721995] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.8722675] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.8725372] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.8726060] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.8888543] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.8890323] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.8890972] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.8892723] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.8893406] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.8896374] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.8897080] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.9053885] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.9055292] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.9056066] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.9057839] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.9058523] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.9061407] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.9062118] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.9219003] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.9220143] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.9220750] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.9222255] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.9222932] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.9225559] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.9226248] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.9385972] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.9387316] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.9391049] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.9393074] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.9393908] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.9396707] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.9397408] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.9552388] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.9553648] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.9554337] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.9556054] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.9556743] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.9559709] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.9560405] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.9720518] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:29.9722343] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.9723022] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:29.9724586] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.9725273] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:29.9728006] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.9728701] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.9886030] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:29.9887199] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.9887806] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:29.9889336] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:29.9890017] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:29.9892699] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:29.9893386] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.0053965] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.0055551] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.0056632] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.0058710] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.0059511] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.0065715] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.0066695] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.0220242] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.0221446] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.0222055] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.0223888] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.0226947] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.0229638] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.0230325] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.0385920] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.0387046] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.0387652] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.0389172] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.0389853] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.0393007] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.0393702] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.0553859] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.0555243] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.0555846] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.0557679] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.0558741] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.0561754] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.0562440] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.0719620] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.0720909] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.0721606] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.0723293] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.0724063] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.0727013] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.0727731] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.0886654] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.0887876] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.0888576] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.0890166] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.0890853] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.0893541] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.0894225] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.1053791] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.1054946] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.1055561] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.1057296] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.1057975] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.1060846] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.1064736] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.1219319] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.1220436] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.1221049] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.1222529] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.1223210] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.1225809] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.1226495] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.1387337] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.1388585] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.1389202] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.1390910] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.1391698] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.1394527] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.1395222] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.1552434] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.1553487] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.1554091] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.1555737] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.1556415] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.1559313] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.1560008] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.1721813] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.1723668] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.1724335] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.1725905] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.1726615] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.1729352] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.1730046] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.1887324] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.1888483] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.1889222] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.1890923] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.1891606] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.1894484] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.1895234] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.2053935] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.2057938] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.2058855] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.2061346] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.2062079] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.2065537] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.2066251] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.2222746] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.2224296] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.2224985] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.2226857] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.2227538] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.2230474] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.2231175] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.2387549] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.2388843] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.2389575] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.2391549] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.2392265] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.2394901] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.2395599] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.2555491] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.2557219] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.2558055] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.2560121] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.2560826] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.2563404] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.2564116] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.2721597] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.2722730] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.2723342] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.2724929] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.2725609] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.2729482] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.2730210] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.2887908] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.2889096] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.2889737] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.2895087] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.2896327] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.2899473] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.2900204] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.3054322] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.3055509] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.3056132] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.3057819] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.3058519] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.3061179] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.3062166] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.3220754] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.3221880] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.3222493] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.3224018] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.3224704] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.3226892] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.3227585] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.3389273] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.3390824] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.3391478] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.3393716] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.3394602] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.3397041] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.3397750] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.3555356] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.3556975] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.3557637] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.3559530] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.3560228] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.3563415] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.3564125] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.3721616] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.3722919] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.3723610] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.3725537] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.3726308] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.3731823] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.3732560] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.3887177] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.3888432] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.3889060] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.3890684] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.3891373] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.3894137] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.3894829] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.4055045] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.4056302] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.4057001] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.4058699] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.4059384] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.4062185] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.4062876] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.4221815] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.4223273] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.4224015] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.4225832] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.4226683] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.4229462] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.4230153] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.4387783] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.4388909] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.4389524] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.4391155] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.4391837] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.4394582] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.4395415] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.4556329] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.4557807] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.4558415] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.4560476] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.4561199] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.4564434] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.4565142] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.4722121] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.4725697] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.4726403] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.4728061] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.4728767] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.4731873] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.4732570] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.4889794] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.4891407] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.4892059] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.4893632] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.4894306] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.4897096] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.4897784] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.5055772] ReleaseFence Querier CleanCommandList | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
[2026-02-21 23:07:30.5056931] ReleaseFence Querier AcquireSwapChainTexture | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.5057674] ReleaseFenceToPool 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 0
|
||||
[2026-02-21 23:07:30.5059404] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.5060086] Acquire Querier SubmitCommandLists | 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 1
|
||||
[2026-02-21 23:07:30.5062940] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.5063641] Waiting for 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.5222066] ReleaseFence Querier CleanCommandList | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 2
|
||||
[2026-02-21 23:07:30.5223329] ReleaseFence Querier AcquireSwapChainTexture | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.5224054] ReleaseFenceToPool 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 0
|
||||
[2026-02-21 23:07:30.5225742] Acquire Querier SubmitCommandLists | Setting Signal to 0, RECYCLING
|
||||
[2026-02-21 23:07:30.5226521] Acquire Querier SubmitCommandLists | 71da7ca0 fence. Handle 7de99b70 | Event 464 | Refcount 1
|
||||
[2026-02-21 23:07:30.5229129] Waiting for 1 fences. Querier AcquireSwapChainTexture
|
||||
[2026-02-21 23:07:30.5229827] Waiting for 71da7640 fence. Handle 71e5a8b0 | Event 4a4 | Refcount 2
|
||||
|
||||
Reference in New Issue
Block a user