Add GPUQueryType::BinaryOcclusion for simpler visibility checks

This commit is contained in:
2026-08-23 00:01:11 +02:00
parent dfb0db0b70
commit 1ce4c0f16e
12 changed files with 49 additions and 16 deletions
@@ -28,6 +28,11 @@ bool QueryHeapDX12::Init(GPUDeviceDX12* device, GPUQueryType type, uint32 size)
QueryType = D3D12_QUERY_TYPE_OCCLUSION;
heapDesc.Type = D3D12_QUERY_HEAP_TYPE_OCCLUSION;
break;
case GPUQueryType::BinaryOcclusion:
_resultSize = sizeof(uint64);
QueryType = D3D12_QUERY_TYPE_BINARY_OCCLUSION;
heapDesc.Type = D3D12_QUERY_HEAP_TYPE_OCCLUSION;
break;
case GPUQueryType::MAX:
return true;
}
@@ -100,11 +105,6 @@ void QueryHeapDX12::EndQueryBatchAndResolveQueryData(GPUContextDX12* context)
StartQueryBatch();
}
bool QueryHeapDX12::CanAlloc(int32 count) const
{
return _currentBatch.Open && _currentIndex + count <= GetQueryHeapCount();
}
void QueryHeapDX12::Alloc(ElementHandle& handle)
{
ASSERT(_currentBatch.Open);