In "DirectX Specs", it is introduced that "D3D12_QUERY-TYPE-TIMESTAMP" only supports endQuery types, but in the validation layer, it is necessary to check that BeginXXX/EndQuery appears in pairs. Using only the TIMESTAMP type of EndQuery will cause errors in the validation layer. I am a novice and this is a confusing problem for me. I would like to know more about this. Thank you
When using only endQuery in excuteCMDList, the validation layer will pop up the following error:
D3D12 ERROR: ID3D12CommandQueue::ExecuteCommandLists: Cannot Resolve query that has never been performed for Index [2] in QueryHeap (0x000001F22C1DCF50:'GpuTimeStamp QueryHeap') in command list (0x000001F22B46A850:'CommandList'). [ EXECUTION ERROR #1319: RESOLVE_QUERY_INVALID_QUERY_STATE]
Introduction to Queries in DirectX Specs:
https://microsoft.github.io/DirectX-Specs/d3d/CountersAndQueries.html