fix(D3D12): 修复 D3D12Fence::IsSignaled() 实现错误
- 原来实现假设 GetCompletedValue() > 0 即为 signaled,这是错误的 - 添加 m_signalValue 成员变量跟踪最后一次 signal 的值 - IsSignaled() 现在正确检查 GetCompletedValue() >= m_signalValue
This commit is contained in:
@@ -22,7 +22,7 @@ public:
|
||||
void Signal(uint64_t value) override;
|
||||
void Wait(uint64_t value) override;
|
||||
uint64_t GetCompletedValue() const override;
|
||||
bool IsSignaled() const override { return GetCompletedValue() > 0; }
|
||||
bool IsSignaled() const override { return m_fence->GetCompletedValue() >= m_signalValue; }
|
||||
void* GetEventHandle() { return m_eventHandle; }
|
||||
|
||||
void* GetNativeHandle() override { return m_fence.Get(); }
|
||||
@@ -31,6 +31,7 @@ public:
|
||||
private:
|
||||
ComPtr<ID3D12Fence> m_fence;
|
||||
void* m_eventHandle;
|
||||
uint64_t m_signalValue = 0;
|
||||
};
|
||||
|
||||
} // namespace RHI
|
||||
|
||||
Reference in New Issue
Block a user