I get unexpected results when I call GetCPUDescriptorHandleForHeapStart() on certain descriptor heaps. The returned handle’s ptr value is always 3 for the first heap that I create, 4 for the second heap, 5 for the next one, and so on. The size of a descriptor heap is obviously not just 1 byte, so this means that there’s a lot of overlap debuglogs output when I use CopyDescriptors(), although it work correctly.
This only happens with CBV_SRV_UAV and SAMPLER descriptor heaps, regardless of their shader visibility. Other types of descriptor heaps start at much larger addresses (e.g., 2029815602608) and their ranges don’t overlap, which is what I would expect.
My system has a GTX 2060 with driver version 419.67 installed. I tried in other computer which has a GTX 1060 with driver version 398.82,but the ptr value start at larger addressrs and don’t overlap.
I don’t experience this problem when I use WARP and/or enable the debug layer.
Is this a driver bug or am I missing something here?