mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-23 14:54:34 +00:00
111 lines
4.8 KiB
XML
111 lines
4.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
|
|
<Type Name="tracy::Vector<*>">
|
|
<DisplayString>{{ size={m_size} }}</DisplayString>
|
|
<Expand>
|
|
<Item Name="[capacity]" ExcludeView="simple">m_capacity == 255 ? m_size : m_ptr == nullptr ? 0 : 1 << m_capacity</Item>
|
|
<ArrayItems>
|
|
<Size>m_size</Size>
|
|
<ValuePointer>m_ptr</ValuePointer>
|
|
</ArrayItems>
|
|
</Expand>
|
|
</Type>
|
|
<Type Name="tracy::VarArray<*>">
|
|
<DisplayString>{{ size={m_size} hash={m_hash} }}</DisplayString>
|
|
<Expand>
|
|
<ArrayItems>
|
|
<Size>m_size</Size>
|
|
<ValuePointer>m_ptr</ValuePointer>
|
|
</ArrayItems>
|
|
</Expand>
|
|
</Type>
|
|
<Type Name="tracy::FastVector<*>">
|
|
<DisplayString>{{ size={m_write - m_ptr} }}</DisplayString>
|
|
<Expand>
|
|
<Item Name="[capacity]" ExcludeView="simple">m_end - m_ptr</Item>
|
|
<ArrayItems>
|
|
<Size>m_write - m_ptr</Size>
|
|
<ValuePointer>m_ptr</ValuePointer>
|
|
</ArrayItems>
|
|
</Expand>
|
|
</Type>
|
|
<Type Name="tracy::ContextSwitchData">
|
|
<DisplayString>{{ start={int64_t( _start_cpu ) >> 16} end={int64_t( _end_reason_state ) >> 16} cpu={uint8_t( _start_cpu & 0xFF )} reason={int8_t( (_end_reason_state >> 8) & 0xFF )} state={int8_t( _end_reason_state & 0xFF )} }}</DisplayString>
|
|
</Type>
|
|
<Type Name="tracy::ContextSwitchCpu">
|
|
<DisplayString>{{ start={int64_t( _start_thread ) >> 16} end={_end} thread={uint16_t( _start_thread )} }}</DisplayString>
|
|
</Type>
|
|
<Type Name="tracy::ContextSwitchUsage">
|
|
<DisplayString>{{ time={int64_t( _time_other_own ) >> 16} own={uint8_t( _time_other_own >> 8 )} other={uint8_t( _time_other_own )} }}</DisplayString>
|
|
</Type>
|
|
<Type Name="tracy::Int24">
|
|
<DisplayString>{{ value={m_val[0] | (m_val[1]<<8) | (m_val[2]<<16)} }}</DisplayString>
|
|
</Type>
|
|
<Type Name="tracy::Int48">
|
|
<DisplayString>{{ value={int64_t( uint64_t(m_val[0]) | (uint64_t(m_val[1])<<8) | (uint64_t(m_val[2])<<16) | (uint64_t(m_val[3])<<24) | (uint64_t(m_val[4])<<32) | (uint64_t(m_val[5])<<40) )} }}</DisplayString>
|
|
</Type>
|
|
<Type Name="tracy::detail::Table<*,*,*,*,*,*>">
|
|
<!--
|
|
$T1 = bool IsFlat
|
|
$T2 = size_t MaxLoadFactor100
|
|
$T3 = typename Key
|
|
$T4 = typename T
|
|
$T5 = typename Hash
|
|
$T6 = typename KeyEqual
|
|
-->
|
|
<!-- <DisplayString>{map}</DisplayString> -->
|
|
<Expand>
|
|
<Synthetic Name="[elements]">
|
|
<DisplayString>{{size={mNumElements}}}</DisplayString>
|
|
<Expand>
|
|
<CustomListItems MaxItemsPerView="5000" >
|
|
<Variable Name="itKeyVals" InitialValue="mKeyVals " />
|
|
<Variable Name="itInfo" InitialValue="mInfo " />
|
|
<Variable Name="itEndKeyVals" InitialValue="(void *)mInfo " />
|
|
<Variable Name="n" InitialValue="0ULL " />
|
|
<Variable Name="inc" InitialValue="(unsigned long)0" />
|
|
|
|
<Size>mNumElements</Size>
|
|
<Loop>
|
|
<!-- Fast forward -->
|
|
<Exec>n = *((size_t*)itInfo)</Exec>
|
|
<Loop>
|
|
<Break Condition="n != 0" />
|
|
<Exec>itInfo += sizeof(size_t)</Exec>
|
|
<Exec>itKeyVals += sizeof(size_t)</Exec>
|
|
</Loop>
|
|
<!-- Count Trailing Zeros -->
|
|
<Exec>
|
|
inc = n == 0
|
|
? 64
|
|
: (
|
|
63
|
|
- (((n & (~n + 1)) & 0x00000000FFFFFFFF) ? 32 : 0)
|
|
- (((n & (~n + 1)) & 0x0000FFFF0000FFFF) ? 16 : 0)
|
|
- (((n & (~n + 1)) & 0x00FF00FF00FF00FF) ? 8 : 0)
|
|
- (((n & (~n + 1)) & 0x0F0F0F0F0F0F0F0F) ? 4 : 0)
|
|
- (((n & (~n + 1)) & 0x3333333333333333) ? 2 : 0)
|
|
- (((n & (~n + 1)) & 0x5555555555555555) ? 1 : 0)
|
|
)
|
|
</Exec>
|
|
<Exec>itInfo += inc / 8</Exec>
|
|
<Exec>itKeyVals += inc / 8</Exec>
|
|
<!-- Fast forward -->
|
|
<Break Condition="(void*)itKeyVals == itEndKeyVals" />
|
|
<Item Name="[{itKeyVals->mData.first}]">itKeyVals->mData.second</Item>
|
|
<!-- <Item>itKeyVals->mData</Item> -->
|
|
<Exec>itInfo++ </Exec>
|
|
<Exec>itKeyVals++</Exec>
|
|
</Loop>
|
|
</CustomListItems>
|
|
</Expand>
|
|
</Synthetic>
|
|
<Item Name="[load_factor]" >float(mNumElements) / float(mMask + 1)</Item>
|
|
<Item Name="[max_load_factor]">$T2</Item>
|
|
<Item Name="[IsFlat]" >$T1</Item>
|
|
<Item Name="[hash_function]" >*(WrapHash<$T5>*)this,nd</Item>
|
|
<Item Name="[key_eq]" >*(WrapKeyEqual<$T6>*)this,nd</Item>
|
|
</Expand>
|
|
</Type>
|
|
</AutoVisualizer>
|