| <?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"> |
| <define name="SIZE_MAX" value="255"/> |
| </field> |
| </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="WCLAMP" length="1"> |
| <field name="val" start="0" end="31" 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_VARYING2" length="1"> |
| <field name="output_clip_planes" start="16" end="19" type="uint"/> |
| <condition type="if" check="TEXTURE_WRAP_VARYING"/> |
| <field name="f16_npc_wrap" start="8" end="15" type="uint"/> |
| <field name="f16_linear_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_OUT0" length="1"> |
| <field name="stream3_size" start="24" end="31" type="uint"/> |
| <field name="stream2_size" start="16" end="23" type="uint"/> |
| <field name="stream1_size" start="8" end="15" type="uint"/> |
| <field name="stream0_mem_output" start="1" end="1" type="bool"/> |
| <field name="stream0_ta_output" start="0" end="0" type="bool"/> |
| </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> |