message: Skip adding usage for huge descriptor table ranges (Over 1000 slots)
diff: @@ -1115,6 +1115,8 @@ void D3D12CommandData::AddUsage(D3D12DrawcallTreeNode &drawNode)
  if(!(d.flags & DrawMask))
  return;
  + static bool hugeRangeWarned = false;
  +
  const D3D12RenderState::RootSignature *rootdata = NULL;
  if((d.flags & DrawFlags::Dispatch) && state.compute.rootsig != ResourceId())
  @@ -1243,6 +1245,14 @@ void D3D12CommandData::AddUsage(D3D12DrawcallTreeNode &drawNode)
  {
  EventUsage usage(e, cb);
  + if(num > 1000)
  + {
  + if(!hugeRangeWarned)
  + RDCWARN("Skipping large, most likely 'bindless', descriptor range");
  + hugeRangeWarned = true;
  + }
  + else
  + {
  for(UINT i = 0; i < num; i++)
  {
  ResourceId id =
  @@ -1253,11 +1263,20 @@ void D3D12CommandData::AddUsage(D3D12DrawcallTreeNode &drawNode)
  desc++;
  }
  }
  + }
  else if(range.RangeType == D3D12_DESCRIPTOR_RANGE_TYPE_SRV ||
  range.RangeType == D3D12_DESCRIPTOR_RANGE_TYPE_UAV)
  {
  ResourceUsage usage = range.RangeType == D3D12_DESCRIPTOR_RANGE_TYPE_SRV ? ro : rw;
  + if(num > 1000)
  + {
  + if(!hugeRangeWarned)
  + RDCWARN("Skipping large, most likely 'bindless', descriptor range");
  + hugeRangeWarned = true;
  + }
  + else
  + {
  for(UINT i = 0; i < num; i++)
  {
  AddUsage(drawNode, GetResID(desc->nonsamp.resource), e, usage);
  @@ -1270,6 +1289,7 @@ void D3D12CommandData::AddUsage(D3D12DrawcallTreeNode &drawNode)
  }
  }
  }
  +}
  void D3D12CommandData::AddDrawcall(const DrawcallDescription &d, bool hasEvents, bool addUsage)
  {
  