mirror of https://gitlab.freedesktop.org/mesa/mesa
330 lines
14 KiB
XML
330 lines
14 KiB
XML
|
<?xml version="1.0" ?>
|
||
|
|
||
|
<!--
|
||
|
Copyright © 2022 Imagination Technologies Ltd.
|
||
|
|
||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||
|
of this software and associated documentation files (the "Software"), to deal
|
||
|
in the Software without restriction, including without limitation the rights
|
||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||
|
copies of the Software, and to permit persons to whom the Software is
|
||
|
furnished to do so, subject to the following conditions:
|
||
|
|
||
|
The above copyright notice and this permission notice (including the next
|
||
|
paragraph) shall be included in all copies or substantial portions of the
|
||
|
Software.
|
||
|
|
||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||
|
SOFTWARE.
|
||
|
-->
|
||
|
|
||
|
<csbgen name="ROGUE" prefix="TA">
|
||
|
|
||
|
<enum name="CLIP_MODE">
|
||
|
<value name="NO_FRONT_OR_REAR" value="0"/>
|
||
|
<value name="FRONT_REAR" value="1"/>
|
||
|
<value name="FRONT_REAR_DEPTH" value="2"/>
|
||
|
</enum>
|
||
|
|
||
|
<enum name="CMPMODE">
|
||
|
<value name="NEVER" value="0"/>
|
||
|
<value name="LESS" value="1"/>
|
||
|
<value name="EQUAL" value="2"/>
|
||
|
<value name="LESS_OR_EQUAL" value="3"/>
|
||
|
<value name="GREATER" value="4"/>
|
||
|
<value name="NOT_EQUAL" value="5"/>
|
||
|
<value name="GREATER_OR_EQUAL" value="6"/>
|
||
|
<value name="ALWAYS" value="7"/>
|
||
|
</enum>
|
||
|
|
||
|
<enum name="CULLMODE">
|
||
|
<value name="NO_CULLING" value="0"/>
|
||
|
<value name="CULL_CW" value="1"/>
|
||
|
<value name="CULL_CCW" value="2"/>
|
||
|
</enum>
|
||
|
|
||
|
<enum name="FLATSHADE">
|
||
|
<value name="VTX_VERTEX_0" value="1"/>
|
||
|
<value name="VTX_VERTEX_1" value="2"/>
|
||
|
<value name="VTX_VERTEX_2" value="3"/>
|
||
|
</enum>
|
||
|
|
||
|
<enum name="GS_OUTPUT_TOPOLOGY">
|
||
|
<value name="POINT_LIST" value="0"/>
|
||
|
<value name="LINE_STRIP" value="1"/>
|
||
|
<value name="TRI_STRIP" value="2"/>
|
||
|
</enum>
|
||
|
|
||
|
<enum name="ISPB_STENCILOP">
|
||
|
<value name="KEEP" value="0"/>
|
||
|
<value name="ZERO" value="1"/>
|
||
|
<value name="REPLACE" value="2"/>
|
||
|
<value name="INCREMENT_SATURATE" value="3"/>
|
||
|
<value name="DECREMENT_SATURATE" value="4"/>
|
||
|
<value name="INVERT" value="5"/>
|
||
|
<value name="INCREMENT" value="6"/>
|
||
|
<value name="DECREMENT" value="7"/>
|
||
|
</enum>
|
||
|
|
||
|
<enum name="OBJTYPE">
|
||
|
<value name="TRIANGLE" value="0"/>
|
||
|
<value name="LINE" value="1"/>
|
||
|
<value name="SPRITE_10UV" value="2"/>
|
||
|
<value name="SPRITE_UV" value="3"/>
|
||
|
<value name="SPRITE_01UV" value="4"/>
|
||
|
<value name="LINE_FILLED_TRIANGLE" value="5"/>
|
||
|
<value name="POINT_FILLED_TRIANGLE" value="6"/>
|
||
|
<value name="TESSELLATED_OBJECT_NO_GS" value="7"/>
|
||
|
<value name="TESSELLATED_OBJECT_WITH_GS" value="8"/>
|
||
|
</enum>
|
||
|
|
||
|
<!--
|
||
|
TODO: Add support for "ifs" in csbgen root element.
|
||
|
-->
|
||
|
<enum name="PASSTYPE">
|
||
|
<value name="OPAQUE" value="0"/>
|
||
|
<value name="TRANSLUCENT" value="1"/>
|
||
|
<value name="PUNCH_THROUGH" value="2"/>
|
||
|
<value name="VIEWPORT_OBJECT" value="3"/>
|
||
|
<value name="FAST_PUNCH_THROUGH" value="4"/>
|
||
|
<value name="DEPTH_FEEDBACK" value="5"/>
|
||
|
<value name="ANTI_ALIASED" value="6"/>
|
||
|
</enum>
|
||
|
|
||
|
<enum name="REGION_CLIP_MODE">
|
||
|
<value name="NONE" value="0"/>
|
||
|
<value name="OUTSIDE" value="1"/>
|
||
|
</enum>
|
||
|
|
||
|
<struct name="STATE_HEADER" length="1">
|
||
|
<field name="not_final_term" start="26" end="26" type="bool"/>
|
||
|
<field name="pres_terminate" start="25" end="25" type="bool"/>
|
||
|
<field name="context_switch" start="24" end="24" type="bool"/>
|
||
|
<field name="pres_stream_out_program" start="23" end="23" type="bool"/>
|
||
|
<field name="pres_stream_out_size" start="22" end="22" type="bool"/>
|
||
|
<field name="pres_ppp_ctrl" start="21" end="21" type="bool"/>
|
||
|
<field name="pres_varying_word2" start="20" end="20" type="bool"/>
|
||
|
<field name="pres_varying_word1" start="19" end="19" type="bool"/>
|
||
|
<field name="pres_varying_word0" start="18" end="18" type="bool"/>
|
||
|
<field name="pres_outselects" start="17" end="17" type="bool"/>
|
||
|
<field name="pres_wclamp" start="16" end="16" type="bool"/>
|
||
|
<field name="view_port_count" start="12" end="15" type="uint"/>
|
||
|
<field name="pres_viewport" start="11" end="11" type="bool"/>
|
||
|
<field name="pres_region_clip" start="10" end="10" type="bool"/>
|
||
|
<field name="pres_pds_state_ptr3" start="9" end="9" type="bool"/>
|
||
|
<field name="pres_pds_state_ptr2" start="8" end="8" type="bool"/>
|
||
|
<field name="pres_pds_state_ptr1" start="7" end="7" type="bool"/>
|
||
|
<field name="pres_pds_state_ptr0" start="6" end="6" type="bool"/>
|
||
|
<field name="pres_ispctl_dbsc" start="5" end="5" type="bool"/>
|
||
|
<field name="pres_ispctl_bb" start="4" end="4" type="bool"/>
|
||
|
<field name="pres_ispctl_ba" start="3" end="3" type="bool"/>
|
||
|
<field name="pres_ispctl_fb" start="2" end="2" type="bool"/>
|
||
|
<field name="pres_ispctl_fa" start="1" end="1" type="bool"/>
|
||
|
<field name="pres_ispctl" start="0" end="0" type="bool"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_ISPCTL" length="1">
|
||
|
<field name="validid" start="26" end="31" type="uint"/>
|
||
|
<field name="upass" start="22" end="25" type="uint"/>
|
||
|
<field name="tagwritedisable" start="21" end="21" type="bool"/>
|
||
|
<field name="ovgmtestdisable" start="20" end="20" type="bool"/>
|
||
|
<field name="two_sided" start="19" end="19" type="bool"/>
|
||
|
<field name="bpres" start="18" end="18" type="bool"/>
|
||
|
<field name="dbenable" start="17" end="17" type="bool"/>
|
||
|
<field name="scenable" start="16" end="16" type="bool"/>
|
||
|
<field name="vistest" start="15" end="15" type="bool"/>
|
||
|
<field name="visbool" start="14" end="14" type="bool"/>
|
||
|
<field name="visreg" start="0" end="13" type="uint"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_ISPA" length="1">
|
||
|
<field name="objtype" start="28" end="31" type="OBJTYPE"/>
|
||
|
<field name="passtype" start="24" end="26" type="PASSTYPE"/>
|
||
|
<field name="ovgvispassmaskop" start="23" end="23" type="bool"/>
|
||
|
<field name="maskval" start="22" end="22" type="bool"/>
|
||
|
<field name="dwritedisable" start="21" end="21" type="bool"/>
|
||
|
<field name="dfbztestenable" start="20" end="20" type="bool"/>
|
||
|
<field name="dcmpmode" start="17" end="19" type="CMPMODE"/>
|
||
|
<field name="linefilllastpixel" start="16" end="16" type="bool"/>
|
||
|
<field name="pointlinewidth" start="8" end="15" type="uint">
|
||
|
<define name="SIZE_MAX" value="255"/>
|
||
|
</field>
|
||
|
<field name="sref" start="0" end="7" type="uint"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_ISPB" length="1">
|
||
|
<field name="scmpmode" start="25" end="27" type="CMPMODE"/>
|
||
|
<field name="sop1" start="22" end="24" type="ISPB_STENCILOP"/>
|
||
|
<field name="sop2" start="19" end="21" type="ISPB_STENCILOP"/>
|
||
|
<field name="sop3" start="16" end="18" type="ISPB_STENCILOP"/>
|
||
|
<field name="scmpmask" start="8" end="15" type="uint"/>
|
||
|
<field name="swmask" start="0" end="7" type="uint"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="REGION_CLIP0" length="1">
|
||
|
<field name="mode" start="31" end="31" type="REGION_CLIP_MODE"/>
|
||
|
<field name="left" start="16" end="24" type="uint"/>
|
||
|
<field name="right" start="0" end="8" type="uint"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="REGION_CLIP1" length="1">
|
||
|
<field name="top" start="16" end="24" type="uint"/>
|
||
|
<field name="bottom" start="0" end="8" type="uint"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_ISPDBSC" length="1">
|
||
|
<field name="dbindex" start="16" end="31" type="uint"/>
|
||
|
<field name="scindex" start="0" end="15" type="uint"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="OUTPUT_SEL" length="1">
|
||
|
<field name="vtxsize" start="24" end="31" type="uint"/>
|
||
|
<field name="tsp_unclamped_z_pres" start="21" end="21" type="bool"/>
|
||
|
<field name="render_tgt_pres" start="20" end="20" type="bool"/>
|
||
|
<field name="vpt_tgt_pres" start="19" end="19" type="bool"/>
|
||
|
<field name="psprite_size_pres" start="18" end="18" type="bool"/>
|
||
|
<field name="isp_position_depth_clamp_z" start="17" end="17" type="bool"/>
|
||
|
<field name="rhw_pres" start="16" end="16" type="bool"/>
|
||
|
<field name="cullplane7" start="15" end="15" type="bool"/>
|
||
|
<field name="cullplane6" start="14" end="14" type="bool"/>
|
||
|
<field name="cullplane5" start="13" end="13" type="bool"/>
|
||
|
<field name="cullplane4" start="12" end="12" type="bool"/>
|
||
|
<field name="cullplane3" start="11" end="11" type="bool"/>
|
||
|
<field name="cullplane2" start="10" end="10" type="bool"/>
|
||
|
<field name="cullplane1" start="9" end="9" type="bool"/>
|
||
|
<field name="cullplane0" start="8" end="8" type="bool"/>
|
||
|
<field name="plane7" start="7" end="7" type="bool"/>
|
||
|
<field name="plane6" start="6" end="6" type="bool"/>
|
||
|
<field name="plane5" start="5" end="5" type="bool"/>
|
||
|
<field name="plane4" start="4" end="4" type="bool"/>
|
||
|
<field name="plane3" start="3" end="3" type="bool"/>
|
||
|
<field name="plane2" start="2" end="2" type="bool"/>
|
||
|
<field name="plane1" start="1" end="1" type="bool"/>
|
||
|
<field name="plane0" start="0" end="0" type="bool"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_VARYING0" length="1">
|
||
|
<condition type="if" check="TEXTURE_WRAP_VARYING"/>
|
||
|
<field name="f32_linear_wrap" start="24" end="31" type="uint"/>
|
||
|
<condition type="endif" check="TEXTURE_WRAP_VARYING"/>
|
||
|
<field name="f32_npc" start="16" end="23" type="uint"/>
|
||
|
<field name="f32_flat" start="8" end="15" type="uint"/>
|
||
|
<field name="f32_linear" start="0" end="7" type="uint"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_VARYING1" length="1">
|
||
|
<field name="f16_npc" start="24" end="31" type="uint"/>
|
||
|
<field name="f16_flat" start="16" end="23" type="uint"/>
|
||
|
<field name="f16_linear" start="8" end="15" type="uint"/>
|
||
|
<condition type="if" check="TEXTURE_WRAP_VARYING"/>
|
||
|
<field name="f32_npc_wrap" start="0" end=" 7" type="uint"/>
|
||
|
<condition type="endif" check="TEXTURE_WRAP_VARYING"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_TERMINATE0" length="1">
|
||
|
<field name="clip_right" start="18" end="26" type="uint">
|
||
|
<define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
|
||
|
</field>
|
||
|
<field name="clip_top" start="9" end="17" type="uint">
|
||
|
<define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
|
||
|
</field>
|
||
|
<field name="clip_bottom" start="0" end="8" type="uint">
|
||
|
<define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
|
||
|
</field>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_TERMINATE1" length="1">
|
||
|
<field name="clip_left" start="23" end="31" type="uint">
|
||
|
<define name="BLOCK_SIZE_IN_PIXELS" value="32"/>
|
||
|
</field>
|
||
|
<field name="render_target" start="0" end="10" type="uint"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_STREAM_OUT1" length="1">
|
||
|
<field name="sync" start="10" end="10" type="bool"/>
|
||
|
<field name="pds_data_size" start="4" end="9" type="uint">
|
||
|
<define name="UNIT_SIZE" value="16"/>
|
||
|
</field>
|
||
|
<field name="pds_temp_size" start="0" end="3" type="uint">
|
||
|
<define name="UNIT_SIZE" value="16"/>
|
||
|
</field>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_STREAM_OUT2" length="1">
|
||
|
<!-- This is an offset actually. Note for when we auto-generate the xmls. -->
|
||
|
<field name="pds_data_addr" start="4" end="31" shift="4" type="address"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_PDS_SHADERBASE" length="1">
|
||
|
<!-- This is an offset actually. Note for when we auto-generate the xmls. -->
|
||
|
<field name="addr" start="4" end="31" shift="4" type="address"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_PDS_TEXUNICODEBASE" length="1">
|
||
|
<field name="addr" start="4" end="31" shift="4" type="address"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_PDS_VARYINGBASE" length="1">
|
||
|
<!-- This is an offset actually. Note for when we auto-generate the xmls. -->
|
||
|
<field name="addr" start="4" end="31" shift="4" type="address"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_PDS_TEXTUREDATABASE" length="1">
|
||
|
<field name="addr" start="4" end="31" shift="4" type="address"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_PDS_UNIFORMDATABASE" length="1">
|
||
|
<!-- This is an offset actually. Note for when we auto-generate the xmls. -->
|
||
|
<field name="addr" start="4" end="31" shift="4" type="address"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_PDS_SIZEINFO1" length="1">
|
||
|
<field name="pds_uniformsize" start="23" end="31" type="uint">
|
||
|
<define name="UNIT_SIZE" value="4"/>
|
||
|
</field>
|
||
|
<field name="pds_texturestatesize" start="16" end="22" type="uint">
|
||
|
<define name="UNIT_SIZE" value="4"/>
|
||
|
</field>
|
||
|
<field name="pds_varyingsize" start="10" end="15" type="uint">
|
||
|
<define name="UNIT_SIZE" value="4"/>
|
||
|
</field>
|
||
|
<field name="usc_varyingsize" start="4" end="9" type="uint">
|
||
|
<define name="UNIT_SIZE" value="16"/>
|
||
|
<define name="MAX_SIZE" value="63"/>
|
||
|
</field>
|
||
|
<field name="pds_tempsize" start="0" end="3" type="uint">
|
||
|
<define name="UNIT_SIZE" value="4"/>
|
||
|
</field>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_PDS_SIZEINFO2" length="1">
|
||
|
<field name="usc_sharedsize" start="23" end="31" type="uint">
|
||
|
<define name="UNIT_SIZE" value="16"/>
|
||
|
</field>
|
||
|
<field name="pds_tri_merge_disable" start="14" end="14" type="bool"/>
|
||
|
<field name="pds_batchnum" start="0" end="13" type="uint"/>
|
||
|
</struct>
|
||
|
|
||
|
<struct name="STATE_PPP_CTRL" length="1">
|
||
|
<field name="trp" start="16" end="16" type="bool"/>
|
||
|
<field name="prim_msaa" start="15" end="15" type="bool"/>
|
||
|
<field name="gs_output_topology" start="13" end="14" type="GS_OUTPUT_TOPOLOGY"/>
|
||
|
<field name="pres_prim_id" start="12" end="12" type="bool"/>
|
||
|
<field name="clip_mode" start="10" end="11" type="CLIP_MODE"/>
|
||
|
<field name="drawclippededges" start="9" end="9" type="bool"/>
|
||
|
<field name="flatshade_vtx" start="7" end="8" type="FLATSHADE"/>
|
||
|
<field name="pretransform" start="6" end="6" type="bool"/>
|
||
|
<field name="wclampen" start="5" end="5" type="bool"/>
|
||
|
<field name="wbuffen" start="4" end="4" type="bool"/>
|
||
|
<field name="resetbbox" start="3" end="3" type="bool"/>
|
||
|
<field name="updatebbox" start="2" end="2" type="bool"/>
|
||
|
<field name="cullmode" start="0" end="1" type="CULLMODE"/>
|
||
|
</struct>
|
||
|
|
||
|
</csbgen>
|