mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-22 00:08:09 +02:00
Signed-off-by: Sarah Walker <sarah.walker@imgtec.com> Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>
510 lines
29 KiB
XML
510 lines
29 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="IPF">
|
|
|
|
<define name="TILE_SIZE_PIXELS" value="32"/>
|
|
<define name="CONTROL_STREAM_SIZE_DWORDS" value="32"/>
|
|
<define name="ISP_VERTEX_XY_BIAS_VALUE" value="4096"/>
|
|
<!-- FIXME: This is the SIMPLE_INTERNAL_PARAMETER_FORMAT variant.
|
|
Should we use the "condition" tag for this?
|
|
-->
|
|
<define name="ISP_VERTEX_XY_BIAS_VALUE_SIPF" value="2048"/>
|
|
|
|
<enum name="COMPRESSION_FORMAT">
|
|
<value name="UNIQUE_1" value="0"/>
|
|
<value name="ORIGIN_1_DELTA_1" value="1"/>
|
|
<value name="ORIGIN_1_DELTA_2" value="2"/>
|
|
<value name="ORIGIN_1_DELTA_3" value="3"/>
|
|
<value name="ORIGIN_1_DELTA_4" value="4"/>
|
|
<value name="ORIGIN_1_DELTA_5" value="5"/>
|
|
<value name="ORIGIN_1_DELTA_6" value="6"/>
|
|
<value name="ORIGIN_1_DELTA_7" value="7"/>
|
|
<value name="RAW_BYTE" value="8"/>
|
|
<value name="UNIQUE_2" value="9"/>
|
|
<value name="ORIGIN_2_DELTA_1" value="10"/>
|
|
<value name="ORIGIN_2_DELTA_2" value="11"/>
|
|
<value name="ORIGIN_2_DELTA_3" value="12"/>
|
|
<value name="ORIGIN_2_DELTA_4" value="13"/>
|
|
<value name="ORIGIN_2_DELTA_5" value="14"/>
|
|
<value name="ORIGIN_2_DELTA_6" value="15"/>
|
|
</enum>
|
|
|
|
<enum name="CS_MASK_FMT">
|
|
<value name="INDEX" value="0"/>
|
|
<value name="BYTE" value="1"/>
|
|
<value name="BIT" value="2"/>
|
|
<value name="FULL" value="3"/>
|
|
</enum>
|
|
|
|
<enum name="CS_TYPE">
|
|
<value name="PRIM" value="0"/>
|
|
<value name="LINK" value="2"/>
|
|
<value name="TERM" value="3"/>
|
|
</enum>
|
|
|
|
<!-- FIXME: This is only available with SIMPLE_INTERNAL_PARAMETER_FORMAT_V2. -->
|
|
<enum name="CS_CTRL_TYPE_SIPF2">
|
|
<value name="PRIM" value="0"/>
|
|
<value name="LINK" value="1"/>
|
|
<value name="TERM" value="3"/>
|
|
</enum>
|
|
|
|
<!-- FIXME: This is only available with SIMPLE_INTERNAL_PARAMETER_FORMAT. -->
|
|
<struct name="INDEX_DATA_WORDS_SIPF" length="2">
|
|
<field name="ix_triangle3_bf_flag" start="63" end="63" type="bool"/>
|
|
<field name="ix_triangle3_edge_flag_ca" start="62" end="62" type="bool"/>
|
|
<field name="ix_triangle3_index_2" start="58" end="61" type="uint"/>
|
|
<field name="ix_triangle3_edge_flag_bc" start="57" end="57" type="bool"/>
|
|
<field name="ix_triangle3_index_1" start="53" end="56" type="uint"/>
|
|
<field name="ix_triangle3_edge_flag_ab" start="52" end="52" type="bool"/>
|
|
<field name="ix_triangle3_index_0" start="48" end="51" type="uint"/>
|
|
<field name="ix_triangle2_bf_flag" start="47" end="47" type="bool"/>
|
|
<field name="ix_triangle2_edge_flag_ca" start="46" end="46" type="bool"/>
|
|
<field name="ix_triangle2_index_2" start="42" end="45" type="uint"/>
|
|
<field name="ix_triangle2_edge_flag_bc" start="41" end="41" type="bool"/>
|
|
<field name="ix_triangle2_index_1" start="37" end="40" type="uint"/>
|
|
<field name="ix_triangle2_edge_flag_ab" start="36" end="36" type="bool"/>
|
|
<field name="ix_triangle2_index_0" start="32" end="35" type="uint"/>
|
|
<field name="ix_triangle1_bf_flag" start="31" end="31" type="bool"/>
|
|
<field name="ix_triangle1_edge_flag_ca" start="30" end="30" type="bool"/>
|
|
<field name="ix_triangle1_index_2" start="26" end="29" type="uint"/>
|
|
<field name="ix_triangle1_edge_flag_bc" start="25" end="25" type="bool"/>
|
|
<field name="ix_triangle1_index_1" start="21" end="24" type="uint"/>
|
|
<field name="ix_triangle1_edge_flag_ab" start="20" end="20" type="bool"/>
|
|
<field name="ix_triangle1_index_0" start="16" end="19" type="uint"/>
|
|
<field name="ix_triangle0_bf_flag" start="15" end="15" type="bool"/>
|
|
<field name="ix_triangle0_edge_flag_ca" start="14" end="14" type="bool"/>
|
|
<field name="ix_triangle0_index_2" start="10" end="13" type="uint"/>
|
|
<field name="ix_triangle0_edge_flag_bc" start="9" end="9" type="bool"/>
|
|
<field name="ix_triangle0_index_1" start="5" end="8" type="uint"/>
|
|
<field name="ix_triangle0_edge_flag_ab" start="4" end="4" type="bool"/>
|
|
<field name="ix_triangle0_index_0" start="0" end="3" type="uint"/>
|
|
</struct>
|
|
|
|
<!-- FIXME: This is only available with SIMPLE_INTERNAL_PARAMETER_FORMAT_V2. -->
|
|
<struct name="VERTEX_FORMAT_WORD_SIPF2" length="2">
|
|
<field name="vf_isp_format_word" start="42" end="63" type="uint"/>
|
|
<field name="vf_isp_state_size" start="39" end="41" type="uint"/>
|
|
<field name="vf_tsp_vtx_raw" start="38" end="38" type="bool"/>
|
|
<field name="vf_isp_vtx_raw" start="37" end="37" type="bool"/>
|
|
<field name="vf_varying_total_16" start="30" end="36" type="uint"/>
|
|
<field name="vf_varying_total_32" start="23" end="29" type="uint"/>
|
|
<field name="vf_varying_vertex_bits" start="11" end="22" type="uint"/>
|
|
<field name="vf_primitive_total" start="6" end="10" type="uint"/>
|
|
<field name="vf_vertex_total" start="2" end="5" type="uint"/>
|
|
<field name="vf_prim_msaa_disable" start="1" end="1" type="bool"/>
|
|
<field name="vf_vertex_clipped" start="0" end="0" type="bool"/>
|
|
</struct>
|
|
|
|
<struct name="SCISSOR_WORD_0" length="1">
|
|
<field name="scw0_xmin" start="16" end="31" type="uint"/>
|
|
<field name="scw0_xmax" start="0" end="15" type="uint"/>
|
|
</struct>
|
|
|
|
<struct name="SCISSOR_WORD_1" length="1">
|
|
<field name="scw1_ymin" start="16" end="31" type="uint"/>
|
|
<field name="scw1_ymax" start="0" end="15" type="uint"/>
|
|
</struct>
|
|
|
|
<struct name="CONTROL_STREAM" length="1">
|
|
<field name="cs_type" start="30" end="31" type="CS_TYPE"/>
|
|
<field name="cs_link" start="3" end="29" shift="7" type="address">
|
|
<define name="UNIT_SIZE" value="128"/>
|
|
</field>
|
|
</struct>
|
|
|
|
<!-- FIXME: This is only available with SIMPLE_INTERNAL_PARAMETER_FORMAT_V2. -->
|
|
<struct name="CONTROL_STREAM_LINK_SIPF2" length="1">
|
|
<field name="cs_link" start="2" end="31" shift="6" type="address">
|
|
<define name="UNIT_SIZE" value="64"/>
|
|
</field>
|
|
<field name="cs_ctrl_type" start="0" end="1" type="CS_CTRL_TYPE_SIPF2" default="LINK"/>
|
|
</struct>
|
|
|
|
<!-- FIXME: This is only available with SIMPLE_INTERNAL_PARAMETER_FORMAT_V2. -->
|
|
<struct name="CONTROL_STREAM_TERMINATE_SIPF2" length="1">
|
|
<field name="rsvd" start="2" end="7" type="uint"/>
|
|
<field name="cs_ctrl_type" start="0" end="1" type="CS_CTRL_TYPE_SIPF2" default="TERM"/>
|
|
</struct>
|
|
|
|
<!-- FIXME: This is only available with SIMPLE_INTERNAL_PARAMETER_FORMAT_V2. -->
|
|
<struct name="PRIMITIVE_HEADER_SIPF2" length="1">
|
|
<field name="cs_valid_tile3" start="7" end="7" type="bool"/>
|
|
<field name="cs_valid_tile2" start="6" end="6" type="bool"/>
|
|
<field name="cs_valid_tile1" start="5" end="5" type="bool"/>
|
|
<field name="cs_valid_tile0" start="4" end="4" type="bool"/>
|
|
<field name="cs_mask_num_bytes" start="2" end="3" type="uint"/>
|
|
<field name="cs_prim_base_size" start="1" end="1" type="bool"/>
|
|
<field name="cs_ctrl_type" start="0" end="0" type="CS_CTRL_TYPE_SIPF2" default="PRIM"/>
|
|
</struct>
|
|
|
|
<struct name="PRIMITIVE_FORMAT" length="1">
|
|
<field name="cs_type" start="30" end="31" type="CS_TYPE"/>
|
|
<field name="cs_isp_state_read" start="29" end="29" type="bool"/>
|
|
<field name="cs_isp_state_size" start="26" end="28" type="uint"/>
|
|
<field name="cs_prim_total" start="19" end="25" type="uint"/>
|
|
<field name="cs_mask_fmt" start="17" end="18" type="CS_MASK_FMT"/>
|
|
<field name="cs_prim_base_pres" start="16" end="16" type="bool"/>
|
|
<field name="cs_prim_base_offset" start="0" end="15" type="uint"/>
|
|
</struct>
|
|
|
|
<struct name="PRIMITIVE_BASE" length="1">
|
|
<field name="cs_prim_base" start="0" end="31" shift="2" type="address"/>
|
|
</struct>
|
|
|
|
<!-- FIXME: This is the SIMPLE_INTERNAL_PARAMETER_FORMAT_V2 variant.
|
|
Should we use the "condition" tag for this?
|
|
-->
|
|
<struct name="PRIMITIVE_BASE_SIPF2" length="1">
|
|
<field name="cs_prim_base" start="0" end="31" shift="3" type="address"/>
|
|
</struct>
|
|
|
|
<!-- Labeling of fields within Byte Based Mask One-Byte Word 0.
|
|
See ROGUE_IPF_PRIMITIVE_HEADER_SIPF2.cs_mask_num_bytes.
|
|
-->
|
|
<struct name="BYTE_BASED_MASK_ONE_BYTE_WORD_0_SIPF2" length="1">
|
|
<field name="cs_mask_one_byte_tile3_7" start="31" end="31" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile3_6" start="30" end="30" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile3_5" start="29" end="29" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile3_4" start="28" end="28" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile3_3" start="27" end="27" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile3_2" start="26" end="26" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile3_1" start="25" end="25" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile3_0" start="24" end="24" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile2_7" start="23" end="23" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile2_6" start="22" end="22" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile2_5" start="21" end="21" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile2_4" start="20" end="20" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile2_3" start="19" end="19" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile2_2" start="18" end="18" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile2_1" start="17" end="17" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile2_0" start="16" end="16" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile1_7" start="15" end="15" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile1_6" start="14" end="14" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile1_5" start="13" end="13" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile1_4" start="12" end="12" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile1_3" start="11" end="11" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile1_2" start="10" end="10" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile1_1" start="9" end="9" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile1_0" start="8" end="8" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile0_7" start="7" end="7" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile0_6" start="6" end="6" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile0_5" start="5" end="5" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile0_4" start="4" end="4" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile0_3" start="3" end="3" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile0_2" start="2" end="2" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile0_1" start="1" end="1" type="bool"/>
|
|
<field name="cs_mask_one_byte_tile0_0" start="0" end="0" type="bool"/>
|
|
</struct>
|
|
|
|
<!-- Labeling of fields within Byte Based Mask Two-Byte Word 0.
|
|
See ROGUE_IPF_PRIMITIVE_HEADER_SIPF2.cs_mask_num_bytes.
|
|
-->
|
|
<struct name="BYTE_BASED_MASK_TWO_BYTE_WORD_0_SIPF2" length="1">
|
|
<field name="cs_mask_two_byte_tile1_15" start="31" end="31" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_14" start="30" end="30" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_13" start="29" end="29" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_12" start="28" end="28" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_11" start="27" end="27" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_10" start="26" end="26" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_9" start="25" end="25" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_8" start="24" end="24" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_7" start="23" end="23" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_6" start="22" end="22" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_5" start="21" end="21" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_4" start="20" end="20" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_3" start="19" end="19" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_2" start="18" end="18" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_1" start="17" end="17" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile1_0" start="16" end="16" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_15" start="15" end="15" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_14" start="14" end="14" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_13" start="13" end="13" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_12" start="12" end="12" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_11" start="11" end="11" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_10" start="10" end="10" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_9" start="9" end="9" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_8" start="8" end="8" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_7" start="7" end="7" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_6" start="6" end="6" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_5" start="5" end="5" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_4" start="4" end="4" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_3" start="3" end="3" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_2" start="2" end="2" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_1" start="1" end="1" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile0_0" start="0" end="0" type="bool"/>
|
|
</struct>
|
|
|
|
<!-- Labeling of fields within Byte Based Mask Two-Byte Word 1.
|
|
See ROGUE_IPF_PRIMITIVE_HEADER_SIPF2.cs_mask_num_bytes.
|
|
-->
|
|
<struct name="BYTE_BASED_MASK_TWO_BYTE_WORD_1_SIPF2" length="1">
|
|
<field name="cs_mask_two_byte_tile3_15" start="31" end="31" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_14" start="30" end="30" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_13" start="29" end="29" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_12" start="28" end="28" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_11" start="27" end="27" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_10" start="26" end="26" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_9" start="25" end="25" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_8" start="24" end="24" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_7" start="23" end="23" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_6" start="22" end="22" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_5" start="21" end="21" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_4" start="20" end="20" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_3" start="19" end="19" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_2" start="18" end="18" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_1" start="17" end="17" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile3_0" start="16" end="16" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_15" start="15" end="15" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_14" start="14" end="14" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_13" start="13" end="13" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_12" start="12" end="12" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_11" start="11" end="11" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_10" start="10" end="10" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_9" start="9" end="9" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_8" start="8" end="8" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_7" start="7" end="7" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_6" start="6" end="6" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_5" start="5" end="5" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_4" start="4" end="4" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_3" start="3" end="3" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_2" start="2" end="2" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_1" start="1" end="1" type="bool"/>
|
|
<field name="cs_mask_two_byte_tile2_0" start="0" end="0" type="bool"/>
|
|
</struct>
|
|
|
|
<!-- Labeling of fields within Byte Based Mask Three-Byte Word 0.
|
|
See ROGUE_IPF_PRIMITIVE_HEADER_SIPF2.cs_mask_num_bytes.
|
|
-->
|
|
<struct name="BYTE_BASED_MASK_THREE_BYTE_WORD_0_SIPF2" length="1">
|
|
<field name="cs_mask_three_byte_tile1_7" start="31" end="31" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_6" start="30" end="30" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_5" start="29" end="29" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_4" start="28" end="28" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_3" start="27" end="27" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_2" start="26" end="26" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_1" start="25" end="25" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_0" start="24" end="24" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_23" start="23" end="23" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_22" start="22" end="22" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_21" start="21" end="21" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_20" start="20" end="20" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_19" start="19" end="19" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_18" start="18" end="18" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_17" start="17" end="17" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_16" start="16" end="16" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_15" start="15" end="15" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_14" start="14" end="14" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_13" start="13" end="13" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_12" start="12" end="12" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_11" start="11" end="11" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_10" start="10" end="10" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_9" start="9" end="9" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_8" start="8" end="8" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_7" start="7" end="7" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_6" start="6" end="6" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_5" start="5" end="5" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_4" start="4" end="4" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_3" start="3" end="3" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_2" start="2" end="2" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_1" start="1" end="1" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile0_0" start="0" end="0" type="bool"/>
|
|
</struct>
|
|
|
|
<!-- Labeling of fields within Byte Based Mask Three-Byte Word 1.
|
|
See ROGUE_IPF_PRIMITIVE_HEADER_SIPF2.cs_mask_num_bytes.
|
|
-->
|
|
<struct name="BYTE_BASED_MASK_THREE_BYTE_WORD_1_SIPF2" length="1">
|
|
<field name="cs_mask_three_byte_tile2_15" start="31" end="31" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_14" start="30" end="30" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_13" start="29" end="29" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_12" start="28" end="28" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_11" start="27" end="27" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_10" start="26" end="26" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_9" start="25" end="25" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_8" start="24" end="24" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_7" start="23" end="23" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_6" start="22" end="22" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_5" start="21" end="21" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_4" start="20" end="20" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_3" start="19" end="19" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_2" start="18" end="18" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_1" start="17" end="17" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_0" start="16" end="16" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_23" start="15" end="15" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_22" start="14" end="14" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_21" start="13" end="13" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_20" start="12" end="12" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_19" start="11" end="11" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_18" start="10" end="10" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_17" start="9" end="9" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_16" start="8" end="8" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_15" start="7" end="7" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_14" start="6" end="6" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_13" start="5" end="5" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_12" start="4" end="4" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_11" start="3" end="3" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_10" start="2" end="2" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_9" start="1" end="1" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile1_8" start="0" end="0" type="bool"/>
|
|
</struct>
|
|
|
|
<!-- Labeling of fields within Byte Based Mask Three-Byte Word 2.
|
|
See ROGUE_IPF_PRIMITIVE_HEADER_SIPF2.cs_mask_num_bytes.
|
|
-->
|
|
<struct name="BYTE_BASED_MASK_THREE_BYTE_WORD_2_SIPF2" length="1">
|
|
<field name="cs_mask_three_byte_tile3_23" start="31" end="31" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_22" start="30" end="30" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_21" start="29" end="29" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_20" start="28" end="28" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_19" start="27" end="27" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_18" start="26" end="26" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_17" start="25" end="25" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_16" start="24" end="24" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_15" start="23" end="23" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_14" start="22" end="22" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_13" start="21" end="21" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_12" start="20" end="20" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_11" start="19" end="19" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_10" start="18" end="18" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_9" start="17" end="17" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_8" start="16" end="16" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_7" start="15" end="15" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_6" start="14" end="14" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_5" start="13" end="13" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_4" start="12" end="12" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_3" start="11" end="11" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_2" start="10" end="10" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_1" start="9" end="9" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile3_0" start="8" end="8" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_23" start="7" end="7" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_22" start="6" end="6" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_21" start="5" end="5" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_20" start="4" end="4" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_19" start="3" end="3" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_18" start="2" end="2" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_17" start="1" end="1" type="bool"/>
|
|
<field name="cs_mask_three_byte_tile2_16" start="0" end="0" type="bool"/>
|
|
</struct>
|
|
|
|
<struct name="COMPRESSION_SIZE_WORD" length="1">
|
|
<field name="cs_isp_comp_table_size" start="27" end="31" type="uint"/>
|
|
<field name="cs_tsp_comp_format_size" start="21" end="26" type="uint"/>
|
|
<field name="cs_tsp_comp_table_size" start="9" end="18" type="uint"/>
|
|
<field name="cs_tsp_comp_vertex_size" start="0" end="8" type="uint"/>
|
|
</struct>
|
|
|
|
<struct name="ISP_COMPRESSION_WORD_0" length="1">
|
|
<field name="cf_isp_comp_fmt_z1" start="28" end="31" type="COMPRESSION_FORMAT"/>
|
|
<field name="cf_isp_comp_fmt_z0" start="24" end="27" type="COMPRESSION_FORMAT"/>
|
|
<field name="cf_isp_comp_fmt_y2" start="20" end="23" type="COMPRESSION_FORMAT"/>
|
|
<field name="cf_isp_comp_fmt_y1" start="16" end="19" type="COMPRESSION_FORMAT"/>
|
|
<field name="cf_isp_comp_fmt_y0" start="12" end="15" type="COMPRESSION_FORMAT"/>
|
|
<field name="cf_isp_comp_fmt_x2" start="8" end="11" type="COMPRESSION_FORMAT"/>
|
|
<field name="cf_isp_comp_fmt_x1" start="4" end="7" type="COMPRESSION_FORMAT"/>
|
|
<field name="cf_isp_comp_fmt_x0" start="0" end="3" type="COMPRESSION_FORMAT"/>
|
|
</struct>
|
|
|
|
<struct name="ISP_COMPRESSION_WORD_1" length="1">
|
|
<field name="vf_prim_msaa" start="16" end="16" type="bool"/>
|
|
<field name="vf_prim_id_pres" start="15" end="15" type="bool"/>
|
|
<field name="vf_vertex_clipped" start="14" end="14" type="bool"/>
|
|
<field name="vf_vertex_total" start="8" end="13" type="uint"/>
|
|
<field name="cf_isp_comp_fmt_z3" start="4" end="7" type="COMPRESSION_FORMAT"/>
|
|
<field name="cf_isp_comp_fmt_z2" start="0" end="3" type="COMPRESSION_FORMAT"/>
|
|
</struct>
|
|
|
|
<struct name="INDEX_DATA" length="1">
|
|
<field name="ix_edge_flag1_ab" start="30" end="30" type="bool"/>
|
|
<field name="ix_index1_0" start="24" end="29" type="uint"/>
|
|
<field name="ix_bf_flag0" start="23" end="23" type="bool"/>
|
|
<field name="ix_edge_flag0_ca" start="22" end="22" type="bool"/>
|
|
<field name="ix_index0_2" start="16" end="21" type="uint"/>
|
|
<field name="ix_edge_flag0_bc" start="14" end="14" type="bool"/>
|
|
<field name="ix_index0_1" start="8" end="13" type="uint"/>
|
|
<field name="ix_edge_flag0_ab" start="6" end="6" type="bool"/>
|
|
<field name="ix_index0_0" start="0" end="5" type="uint"/>
|
|
</struct>
|
|
|
|
<!-- FIXME: This should be of 24 bit length. Should we change the length to
|
|
be in terms of uint8_t instead of uint32_t.
|
|
-->
|
|
<struct name="ISP_VERTEX_XY" length="1">
|
|
<field name="sign" start="23" end="23" type="bool"/>
|
|
<field name="integer" start="8" end="22" type="uint"/>
|
|
<field name="frac" start="0" end="7" type="uint"/>
|
|
</struct>
|
|
|
|
<!-- FIXME: This is the SIMPLE_INTERNAL_PARAMETER_FORMAT variant.
|
|
Should we use the "condition" tag for this?
|
|
-->
|
|
<struct name="ISP_VERTEX_XY_SIPF" length="1">
|
|
<field name="integer" start="4" end="16" type="uint">
|
|
<define name="MAX_VAL" value="0x1FFF"/>
|
|
</field>
|
|
<field name="frac" start="0" end="3" type="uint">
|
|
<define name="MAX_VAL" value="0xF"/>
|
|
</field>
|
|
</struct>
|
|
|
|
<!-- FIXME: This is only available with SIMPLE_INTERNAL_PARAMETER_FORMAT. -->
|
|
<struct name="ISP_VERTEX_WORD_SIPF" length="2">
|
|
<field name="z" start="34" end="63" type="uint"/>
|
|
<field name="y" start="17" end="33" type="uint"/>
|
|
<field name="x" start="0" end="16" type="uint"/>
|
|
</struct>
|
|
|
|
<struct name="ISP_VERTEX_WORD_0" length="1">
|
|
<field name="y0" start="24" end="31" type="uint"/>
|
|
<field name="x0" start="0" end="23" type="uint"/>
|
|
</struct>
|
|
|
|
<struct name="ISP_VERTEX_WORD_1" length="1">
|
|
<field name="z0" start="16" end="31" type="uint"/>
|
|
<field name="y0" start="0" end="15" type="uint">
|
|
<define name="SHIFT" value="8"/>
|
|
</field>
|
|
</struct>
|
|
|
|
<struct name="ISP_VERTEX_WORD_2" length="1">
|
|
<field name="x1" start="16" end="31" type="uint"/>
|
|
<field name="z0" start="0" end="15" type="uint">
|
|
<define name="SHIFT" value="16"/>
|
|
</field>
|
|
</struct>
|
|
|
|
<struct name="ISP_VERTEX_WORD_3" length="1">
|
|
<field name="y1" start="8" end="31" type="uint"/>
|
|
<field name="x1" start="0" end="7" type="uint">
|
|
<define name="SHIFT" value="16"/>
|
|
</field>
|
|
</struct>
|
|
|
|
<struct name="ISP_VERTEX_WORD_4" length="1">
|
|
<field name="z1" start="0" end="31" type="uint"/>
|
|
</struct>
|
|
|
|
</csbgen>
|