https://github.com/shader-slang/slang
Raw File
Tip revision: 5da16a6360e40b9fd4d2275a5ef5b1af740c4abb authored by Tim Foley on 04 January 2018, 00:22:37 UTC
Fix bug around arrays of structs of resources (#352)
Tip revision: 5da16a6
slang.natvis
<?xml version="1.0" encoding="utf-8"?> 
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">

  <Type Name="Slang::BCPtr&lt;*&gt;">
    <SmartPointer Usage="Minimal">rawVal ? ($T1*)((char*)this + rawVal) : ($T1*)0</SmartPointer>
    <DisplayString Condition="rawVal == 0">BCPtr nullptr</DisplayString>
    <DisplayString Condition="rawVal != 0">BCPtr {*($T1*)((char*)this + rawVal)}</DisplayString>
    <Expand>
      <ExpandedItem>rawVal ? ($T1*)((char*)this + rawVal) : ($T1*)0</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="Slang::DeclRef&lt;*&gt;">
    <SmartPointer Usage="Minimal">decl ? ($T1*)(decl) : ($T1*)0</SmartPointer>
    <DisplayString Condition="decl == 0">DeclRef nullptr</DisplayString>
    <DisplayString Condition="decl != 0">DeclRef {(*(*(Slang::DeclRefBase*)this).decl).nameAndLoc}</DisplayString>
    <Expand>
      <ExpandedItem>decl ? ($T1*)(decl) : ($T1*)0</ExpandedItem>
      <Item Name="[Substitutions]:">"========================="</Item>
      <LinkedListItems>
        <HeadPointer>substitutions.pointer</HeadPointer>
        <NextPointer>outer.pointer</NextPointer>
        <ValueNode>this</ValueNode>
      </LinkedListItems>
    </Expand>
  </Type>
  <Type Name="Slang::DeclRefType">
    <DisplayString>DeclRefType {declRef}</DisplayString>
    <Expand>
      <ExpandedItem>declRef</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="Slang::Name">
    <DisplayString>{{name={(char*)(text.buffer.pointer+1), s}}}</DisplayString>
  </Type>
  <Type Name="Slang::NameLoc">
    <DisplayString>{{name={(char*)((*name).text.buffer.pointer+1), s} loc={loc.raw}}}</DisplayString>
  </Type>
  <Type Name="Slang::IRWitnessTableEntry">
    <Expand>
      <Item Name="[Key]">requirementKey</Item>
      <Item Name="[Val]">satisfyingVal</Item>
    </Expand>
  </Type>
  <Type Name="Slang::IRValue">
    <DisplayString>{{{op}}}</DisplayString>
    <Expand>
      <Item Name="[OpCode]">op</Item>
      <Item Name="[Type]">type</Item>
      <Item Name="[IRInst]">(Slang::IRInst*)this</Item>
      <ExpandedItem Condition="op==kIROp_decl_ref">(Slang::IRDeclRef*)this</ExpandedItem>
      <ExpandedItem Condition="op==kIROp_Func">(Slang::IRFunc*)this</ExpandedItem>
      <ExpandedItem Condition="op==kIROp_Block">(Slang::IRBlock*)this</ExpandedItem>
      <ExpandedItem Condition="op==kIROp_witness_table">(Slang::IRWitnessTable*)this</ExpandedItem>
      <ExpandedItem Condition="op==kIROp_witness_table_entry">(Slang::IRWitnessTableEntry*)this</ExpandedItem>
      <Item Name="====Uses====">"-------"</Item>
      <LinkedListItems>
        <HeadPointer>firstUse</HeadPointer>
        <NextPointer>nextUse</NextPointer>
        <ValueNode>user</ValueNode>
      </LinkedListItems> 
    
  </Expand>
  </Type>
  <Type Name="Slang::IRUser">
    <DisplayString>{{{op}}}</DisplayString>
    <Expand>
      <Item Name="[OpCode]">op</Item>
      <Item Name="[ArgCount]">argCount</Item>
      <ArrayItems>
        <Size>argCount</Size>
        <ValuePointer>(IRUse*)(this + 1)</ValuePointer>
      </ArrayItems>
    </Expand>
  </Type>
  <Type Name="Slang::IRBlock">
    <Expand>
      <LinkedListItems>
        <HeadPointer>firstInst</HeadPointer>
        <NextPointer>(Slang::IRInst*)next</NextPointer>
        <ValueNode>this</ValueNode>
      </LinkedListItems>
    </Expand>
  </Type>
  <Type Name="Slang::IRFunc">
    <DisplayString>{{{mangledName}}}</DisplayString>
    <Expand>
      <Item Name="[Name]">mangledName</Item>
      <Item Name="[ResultType]">(*(IRFuncType*)(type.pointer)).resultType</Item>
      <Item Name="[ParameterTypes]">(*(IRFuncType*)(type.pointer)).paramTypes</Item>
      <Item Name="[FirstBlock]">firstBlock</Item>
    </Expand>
  </Type>
  
  <Type Name="Slang::IRDeclRef">
    <DisplayString>{{IRDeclRef {declRef}}}</DisplayString>
    <Expand>
      <Item Name="[OpCode]">op</Item>
      <ExpandedItem>declRef</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="Slang::IRUse">
    <DisplayString>{{IRUse {usedValue}}}</DisplayString>
    <Expand>
      <Item Name="[NextUse]">nextUse</Item>
      <ExpandedItem>usedValue</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="Slang::IRModule">
    <Expand>
      <Item Name="session">session</Item>
      <LinkedListItems>
        <HeadPointer>firstGlobalValue</HeadPointer>
        <NextPointer>nextGlobalValue</NextPointer>
        <ValueNode>this</ValueNode>
      </LinkedListItems>
    </Expand>
  </Type>
  <Type Name="Slang::IRGlobalValue">
    <DisplayString>{{IRGlobalValue {op} {mangledName}}}</DisplayString>
  </Type>
</AutoVisualizer>
back to top