Path: blob/21.2-virgl/src/intel/genxml/gen_rt.xml
7102 views
<?xml version="1.0" ?>1<genxml name="RT" gen="">2<struct name="BINDLESS_SHADER_RECORD" length="2">3<field name="Offset To Local Arguments" start="0" end="2" type="uint"/>4<field name="Bindless Shader Dispatch Mode" start="4" end="4" type="uint">5<value name="SIMD8" value="0"/>6<value name="SIMD16" value="1"/>7</field>8<field name="Kernel Start Pointer" start="6" end="31" type="offset"/>9</struct>1011<struct name="RT_GENERAL_SBT_HANDLE" length="8">12<field name="General" start="0" end="63" type="BINDLESS_SHADER_RECORD"/>13</struct>1415<struct name="RT_TRIANGLES_SBT_HANDLE" length="8">16<field name="Closest Hit" start="0" end="63" type="BINDLESS_SHADER_RECORD"/>17<field name="Any Hit" start="64" end="127" type="BINDLESS_SHADER_RECORD"/>18</struct>1920<struct name="RT_PROCEDURAL_SBT_HANDLE" length="8">21<field name="Closest Hit" start="0" end="63" type="BINDLESS_SHADER_RECORD"/>22<field name="Intersection" start="64" end="127" type="BINDLESS_SHADER_RECORD"/>23</struct>2425<struct name="RT_SHADER_TABLE" length="2">26<field name="Base Address" start="0" end="47" type="address"/>27<field name="Stride" start="48" end="63" type="uint"/>28</struct>2930<struct name="RT_DISPATCH_GLOBALS" length="20">31<!-- These are dictated by hardware -->32<field name="Mem Base Address" start="0" end="63" type="address"/>33<field name="Call Stack Handler" start="64" end="127" type="BINDLESS_SHADER_RECORD"/>34<field name="Async RT Stack Size" start="128" end="159" type="uint"/>35<field name="Num DSS RT Stacks" start="160" end="175" type="uint"/>36<field name="Max BVH Levels" start="192" end="194" type="uint"/>37<field name="Flags" start="224" end="224" type="uint">38<value name="RT_DEPTH_TEST_LESS_EQUAL" value="1"/>39</field>4041<!-- These are simply a software interface -->42<field name="Hit Group Table" start="256" end="319" type="RT_SHADER_TABLE"/>43<field name="Miss Group Table" start="320" end="383" type="RT_SHADER_TABLE"/>44<field name="SW Stack Size" start="384" end="415" type="uint"/>45<field name="Launch Width" start="416" end="447" type="uint"/>46<field name="Launch Height" start="448" end="479" type="uint"/>47<field name="Launch Depth" start="480" end="511" type="uint"/>48<field name="Callable Group Table" start="512" end="575" type="RT_SHADER_TABLE"/>49<field name="Resume Shader Table" start="576" end="639" type="address"/>50</struct>5152<struct name="RT_BVH_VEC3" length="3">53<field name="X" start="0" end="31" type="float"/>54<field name="Y" start="32" end="63" type="float"/>55<field name="Z" start="64" end="95" type="float"/>56</struct>5758<struct name="RT_BVH" length="16">59<field name="Root Node Offset" start="0" end="63" type="offset"/>60<field name="Bounds Min" start="64" end="159" type="RT_BVH_VEC3"/>61<field name="Bounds Max" start="160" end="255" type="RT_BVH_VEC3"/>62</struct>6364<struct name="RT_BVH_INTERNAL_NODE" length="16">65<field name="Origin" start="0" end="95" type="RT_BVH_VEC3"/>66<field name="Child Offset" start="96" end="127" type="int"/>67<field name="Node Type" start="128" end="135" type="uint" prefix="NODE_TYPE">68<value name="INTERNAL" value="0"/>69<value name="INSTANCE" value="1"/>70<value name="PROCEDURAL" value="3"/>71<value name="QUAD" value="4"/>72<value name="INVALID" value="7"/>73</field>74<field name="Child Bounds Exponent X" start="144" end="151" type="int"/>75<field name="Child Bounds Exponent Y" start="152" end="159" type="int"/>76<field name="Child Bounds Exponent Z" start="160" end="168" type="int"/>77<field name="Node Ray Mask" start="168" end="175" type="uint"/>78<group count="6" start="176" size="8">79<field name="Child Size" start="0" end="1" type="uint"/>80<field name="Child Type" start="2" end="5" type="uint"/>81<field name="Start Primitive" start="2" end="5" type="uint"/>82</group>83<group count="6" start="224" size="8">84<field name="Child Lower X Bound" start="0" end="7" type="uint"/>85</group>86<group count="6" start="272" size="8">87<field name="Child Upper X Bound" start="0" end="7" type="uint"/>88</group>89<group count="6" start="320" size="8">90<field name="Child Lower Y Bound" start="0" end="7" type="uint"/>91</group>92<group count="6" start="368" size="8">93<field name="Child Upper Y Bound" start="0" end="7" type="uint"/>94</group>95<group count="6" start="416" size="8">96<field name="Child Lower Z Bound" start="0" end="7" type="uint"/>97</group>98<group count="6" start="464" size="8">99<field name="Child Upper Z Bound" start="0" end="7" type="uint"/>100</group>101</struct>102103<struct name="RT_BVH_PRIMITIVE_LEAF_DESCRIPTOR" length="2">104<field name="Shader Index" start="0" end="23" type="uint"/>105<field name="Geometry Ray Mask" start="24" end="31" type="uint"/>106<field name="Geometry Index" start="32" end="60" type="uint"/>107<field name="Leaf Type" start="61" end="61" type="uint">108<value name="TYPE_QUAD" value="0"/>109<value name="TYPE_OPAQUE_CULLING_ENABLED" value="0"/>110<value name="TYPE_OPAQUE_CULLING_DISABLED" value="1"/>111</field>112<field name="Geometry Flags" start="62" end="63" type="uint">113<value name="GEOMETRY_OPAQUE" value="1"/>114</field>115</struct>116117<struct name="RT_BVH_QUAD_LEAF" length="16">118<field name="Leaf Descriptor" start="0" end="63" type="RT_BVH_PRIMITIVE_LEAF_DESCRIPTOR"/>119<field name="Primitive Index 0" start="64" end="95" type="uint"/>120<field name="Primitive Index 1 Delta" start="96" end="112" type="uint"/>121<field name="j0" start="112" end="113" type="uint"/>122<field name="j1" start="114" end="115" type="uint"/>123<field name="j2" start="116" end="117" type="uint"/>124<field name="Last Quad" start="118" end="118" type="bool"/>125<group count="4" start="128" size="96">126<field name="Quad Vertex" start="0" end="95" type="RT_BVH_VEC3"/>127</group>128</struct>129130<struct name="RT_BVH_INSTANCE_LEAF" length="32">131<field name="Shader Index" start="0" end="23" type="uint"/>132<field name="Geometry Ray Mask" start="24" end="31" type="uint"/>133<field name="Instance Contribution To Hit Group Index" start="32" end="55" type="uint"/>134<field name="Leaf Type" start="61" end="61" type="uint">135<value name="TYPE_OPAQUE_CULLING_ENABLED" value="0"/>136<value name="TYPE_OPAQUE_CULLING_DISABLED" value="1"/>137</field>138<field name="Geometry Flags" start="62" end="63" type="uint">139<value name="GEOMETRY_OPAQUE" value="1"/>140</field>141<field name="Start Node Address" start="64" end="111" type="address"/>142<field name="Instance Flags" start="112" end="119" type="uint">143<value name="TRIANGLE_CULL_DISABLE" value="1"/>144<value name="TRIANGLE_FRONT_COUNTERCLOCKWISE" value="2"/>145<value name="FORCE_OPAQUE" value="4"/>146<value name="FORCE_NON_OPAQUE" value="8"/>147</field>148<field name="World To Object m00" start="128" end="159" type="float"/>149<field name="World To Object m01" start="160" end="191" type="float"/>150<field name="World To Object m02" start="192" end="223" type="float"/>151<field name="World To Object m10" start="224" end="255" type="float"/>152<field name="World To Object m11" start="256" end="287" type="float"/>153<field name="World To Object m12" start="288" end="319" type="float"/>154<field name="World To Object m20" start="320" end="351" type="float"/>155<field name="World To Object m21" start="352" end="383" type="float"/>156<field name="World To Object m22" start="384" end="415" type="float"/>157<field name="Object To World m30" start="416" end="447" type="float"/>158<field name="Object To World m31" start="448" end="479" type="float"/>159<field name="Object To World m32" start="480" end="511" type="float"/>160<field name="BVH Address" start="512" end="559" type="address"/>161<field name="Instance ID" start="576" end="607" type="uint"/>162<field name="Instance Index" start="608" end="639" type="uint"/>163<field name="Object To World m00" start="640" end="671" type="float"/>164<field name="Object To World m01" start="672" end="703" type="float"/>165<field name="Object To World m02" start="704" end="735" type="float"/>166<field name="Object To World m10" start="736" end="767" type="float"/>167<field name="Object To World m11" start="768" end="799" type="float"/>168<field name="Object To World m12" start="800" end="831" type="float"/>169<field name="Object To World m20" start="832" end="863" type="float"/>170<field name="Object To World m21" start="864" end="895" type="float"/>171<field name="Object To World m22" start="896" end="927" type="float"/>172<field name="World To Object m30" start="928" end="959" type="float"/>173<field name="World To Object m31" start="960" end="991" type="float"/>174<field name="World To Object m32" start="992" end="1023" type="float"/>175</struct>176177<struct name="RT_BVH_PROCEDURAL_LEAF" length="16">178<field name="Leaf Descriptor" start="0" end="63" type="RT_BVH_PRIMITIVE_LEAF_DESCRIPTOR"/>179180<!-- Software defined -->181<field name="Num Primitives" start="64" end="67" type="uint"/>182<field name="Last Primitive" start="83" end="95" type="uint"/>183<group count="13" start="96" size="32">184<field name="Primitive Index" start="0" end="31" type="uint"/>185</group>186</struct>187</genxml>188189190