1bf215546Sopenharmony_ci<?xml version="1.0" ?> 2bf215546Sopenharmony_ci 3bf215546Sopenharmony_ci<!-- 4bf215546Sopenharmony_ciCopyright © 2022 Imagination Technologies Ltd. 5bf215546Sopenharmony_ci 6bf215546Sopenharmony_ciPermission is hereby granted, free of charge, to any person obtaining a copy 7bf215546Sopenharmony_ciof this software and associated documentation files (the "Software"), to deal 8bf215546Sopenharmony_ciin the Software without restriction, including without limitation the rights 9bf215546Sopenharmony_cito use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10bf215546Sopenharmony_cicopies of the Software, and to permit persons to whom the Software is 11bf215546Sopenharmony_cifurnished to do so, subject to the following conditions: 12bf215546Sopenharmony_ci 13bf215546Sopenharmony_ciThe above copyright notice and this permission notice (including the next 14bf215546Sopenharmony_ciparagraph) shall be included in all copies or substantial portions of the 15bf215546Sopenharmony_ciSoftware. 16bf215546Sopenharmony_ci 17bf215546Sopenharmony_ciTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18bf215546Sopenharmony_ciIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19bf215546Sopenharmony_ciFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20bf215546Sopenharmony_ciAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21bf215546Sopenharmony_ciLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22bf215546Sopenharmony_ciOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23bf215546Sopenharmony_ciSOFTWARE. 24bf215546Sopenharmony_ci--> 25bf215546Sopenharmony_ci 26bf215546Sopenharmony_ci<csbgen name="ROGUE" prefix="PBESTATE"> 27bf215546Sopenharmony_ci 28bf215546Sopenharmony_ci <enum name="COMP_IADDR_TYPE"> 29bf215546Sopenharmony_ci <value name="INDIRECT_1TILE" value="0"/> 30bf215546Sopenharmony_ci <value name="INDIRECT_4TILE" value="1"/> 31bf215546Sopenharmony_ci </enum> 32bf215546Sopenharmony_ci 33bf215546Sopenharmony_ci <enum name="COMPRESS_SIZE"> 34bf215546Sopenharmony_ci <value name="BLOCK_8X8" value="0"/> 35bf215546Sopenharmony_ci <value name="BLOCK_16X4" value="1"/> 36bf215546Sopenharmony_ci </enum> 37bf215546Sopenharmony_ci 38bf215546Sopenharmony_ci <enum name="COMPRESS_SIZE_EXT"> 39bf215546Sopenharmony_ci <value name="BLOCK_8X8_16X4" value="0"/> 40bf215546Sopenharmony_ci <value name="BLOCK_32X2_RSRVD" value="1"/> 41bf215546Sopenharmony_ci </enum> 42bf215546Sopenharmony_ci 43bf215546Sopenharmony_ci <enum name="COMPRESSION"> 44bf215546Sopenharmony_ci <value name="DISABLED" value="0"/> 45bf215546Sopenharmony_ci <value name="ENABLED" value="1"/> 46bf215546Sopenharmony_ci </enum> 47bf215546Sopenharmony_ci 48bf215546Sopenharmony_ci <enum name="LOSSY"> 49bf215546Sopenharmony_ci <value name="DISABLED" value="0"/> 50bf215546Sopenharmony_ci <value name="ENABLED" value="1"/> 51bf215546Sopenharmony_ci </enum> 52bf215546Sopenharmony_ci 53bf215546Sopenharmony_ci <enum name="MEMLAYOUT"> 54bf215546Sopenharmony_ci <value name="LINEAR" value="0"/> 55bf215546Sopenharmony_ci <value name="TWIDDLE_2D" value="1"/> 56bf215546Sopenharmony_ci <value name="TWIDDLE_3D" value="2"/> 57bf215546Sopenharmony_ci <value name="TILED" value="3"/> 58bf215546Sopenharmony_ci </enum> 59bf215546Sopenharmony_ci 60bf215546Sopenharmony_ci <enum name="PACKMODE"> 61bf215546Sopenharmony_ci <value name="U8U8U8U8" value="0x0"/> 62bf215546Sopenharmony_ci <value name="S8S8S8S8" value="0x1"/> 63bf215546Sopenharmony_ci <value name="X8U8S8S8" value="0x2"/> 64bf215546Sopenharmony_ci <value name="X8S8S8U8" value="0x3"/> 65bf215546Sopenharmony_ci <value name="A1R5G5B5" value="0x4"/> 66bf215546Sopenharmony_ci <value name="R5G5B5A1" value="0x5"/> 67bf215546Sopenharmony_ci <value name="A4R4G4B4" value="0x6"/> 68bf215546Sopenharmony_ci <value name="A8R3G3B2" value="0x7"/> 69bf215546Sopenharmony_ci <value name="U16U16U16U16" value="0x8"/> 70bf215546Sopenharmony_ci <value name="S16S16S16S16" value="0x9"/> 71bf215546Sopenharmony_ci <value name="F16F16F16F16" value="0xa"/> 72bf215546Sopenharmony_ci <value name="U32U32U32U32" value="0xb"/> 73bf215546Sopenharmony_ci <value name="S32S32S32S32" value="0xc"/> 74bf215546Sopenharmony_ci <value name="F32F32F32F32" value="0xd"/> 75bf215546Sopenharmony_ci <value name="A2R10B10G10" value="0xe"/> 76bf215546Sopenharmony_ci <value name="R10B10G10A2" value="0xf"/> 77bf215546Sopenharmony_ci <value name="A2F10F10F10" value="0x10"/> 78bf215546Sopenharmony_ci <value name="F10F10F10A2" value="0x11"/> 79bf215546Sopenharmony_ci <value name="U8U8U8" value="0x12"/> 80bf215546Sopenharmony_ci <value name="S8S8S8" value="0x13"/> 81bf215546Sopenharmony_ci <value name="R5G6B5" value="0x14"/> 82bf215546Sopenharmony_ci <value name="R5SG5SB6" value="0x15"/> 83bf215546Sopenharmony_ci <value name="B6G5SR5S" value="0x16"/> 84bf215546Sopenharmony_ci <value name="U16U16U16" value="0x17"/> 85bf215546Sopenharmony_ci <value name="S16S16S16" value="0x18"/> 86bf215546Sopenharmony_ci <value name="F16F16F16" value="0x19"/> 87bf215546Sopenharmony_ci <value name="U32U32U32" value="0x1a"/> 88bf215546Sopenharmony_ci <value name="S32S32S32" value="0x1b"/> 89bf215546Sopenharmony_ci <value name="F11F11F10" value="0x1c"/> 90bf215546Sopenharmony_ci <value name="F10F11F11" value="0x1d"/> 91bf215546Sopenharmony_ci <value name="SE9995" value="0x1e"/> 92bf215546Sopenharmony_ci <value name="F32F32F32" value="0x1f"/> 93bf215546Sopenharmony_ci <value name="X24U8F32" value="0x20"/> 94bf215546Sopenharmony_ci <value name="X24X8F32" value="0x21"/> 95bf215546Sopenharmony_ci <value name="X24G8X32" value="0x22"/> 96bf215546Sopenharmony_ci <value name="U8U8" value="0x23"/> 97bf215546Sopenharmony_ci <value name="S8S8" value="0x24"/> 98bf215546Sopenharmony_ci <value name="U16U16" value="0x25"/> 99bf215546Sopenharmony_ci <value name="S16S16" value="0x26"/> 100bf215546Sopenharmony_ci <value name="F16F16" value="0x27"/> 101bf215546Sopenharmony_ci <value name="U32U32" value="0x28"/> 102bf215546Sopenharmony_ci <value name="S32S32" value="0x29"/> 103bf215546Sopenharmony_ci <value name="F32F32" value="0x2a"/> 104bf215546Sopenharmony_ci <value name="U24ST8" value="0x2b"/> 105bf215546Sopenharmony_ci <value name="ST8U24" value="0x2c"/> 106bf215546Sopenharmony_ci <value name="X8U24" value="0x2d"/> 107bf215546Sopenharmony_ci <value name="U8X24" value="0x2e"/> 108bf215546Sopenharmony_ci <value name="U8" value="0x2f"/> 109bf215546Sopenharmony_ci <value name="S8" value="0x30"/> 110bf215546Sopenharmony_ci <value name="U16" value="0x31"/> 111bf215546Sopenharmony_ci <value name="S16" value="0x32"/> 112bf215546Sopenharmony_ci <value name="F16" value="0x33"/> 113bf215546Sopenharmony_ci <value name="U32" value="0x34"/> 114bf215546Sopenharmony_ci <value name="S32" value="0x35"/> 115bf215546Sopenharmony_ci <value name="F32" value="0x36"/> 116bf215546Sopenharmony_ci <value name="PBYTE" value="0x37"/> 117bf215546Sopenharmony_ci <value name="PWORD" value="0x38"/> 118bf215546Sopenharmony_ci <value name="ARGBV16_XR10" value="0x39"/> 119bf215546Sopenharmony_ci <value name="A2_XRBIAS_U10U10U10" value="0x3a"/> 120bf215546Sopenharmony_ci <value name="YUV" value="0x3b"/> 121bf215546Sopenharmony_ci <value name="U10U10U10_XRBIAS_A2" value="0x3c"/> 122bf215546Sopenharmony_ci <value name="INVALID" value="0xFFFFFFFF"/> 123bf215546Sopenharmony_ci </enum> 124bf215546Sopenharmony_ci 125bf215546Sopenharmony_ci <enum name="PAIR_TILES"> 126bf215546Sopenharmony_ci <value name="DISABLED" value="0"/> 127bf215546Sopenharmony_ci <value name="ENABLED" value="1"/> 128bf215546Sopenharmony_ci </enum> 129bf215546Sopenharmony_ci 130bf215546Sopenharmony_ci <enum name="ROTATION_TYPE"> 131bf215546Sopenharmony_ci <value name="0_DEG" value="0"/> 132bf215546Sopenharmony_ci <value name="90_DEG" value="1"/> 133bf215546Sopenharmony_ci <value name="180_DEG" value="2"/> 134bf215546Sopenharmony_ci <value name="270_DEG" value="3"/> 135bf215546Sopenharmony_ci </enum> 136bf215546Sopenharmony_ci 137bf215546Sopenharmony_ci <enum name="SIZE"> 138bf215546Sopenharmony_ci <value name="1_PIXEL" value="0"/> 139bf215546Sopenharmony_ci <value name="2_PIXEL" value="1"/> 140bf215546Sopenharmony_ci <value name="4_PIXEL" value="2"/> 141bf215546Sopenharmony_ci <value name="8_PIXEL" value="3"/> 142bf215546Sopenharmony_ci <value name="16_PIXEL" value="4"/> 143bf215546Sopenharmony_ci <value name="32_PIXEL" value="5"/> 144bf215546Sopenharmony_ci <value name="64_PIXEL" value="6"/> 145bf215546Sopenharmony_ci <value name="128_PIXEL" value="7"/> 146bf215546Sopenharmony_ci <value name="256_PIXEL" value="8"/> 147bf215546Sopenharmony_ci <value name="512_PIXEL" value="9"/> 148bf215546Sopenharmony_ci <value name="1K_PIXEL" value="10"/> 149bf215546Sopenharmony_ci <value name="2K_PIXEL" value="11"/> 150bf215546Sopenharmony_ci <value name="4K_PIXEL" value="12"/> 151bf215546Sopenharmony_ci <value name="8K_PIXEL" value="13"/> 152bf215546Sopenharmony_ci <value name="16K_PIXEL" value="14"/> 153bf215546Sopenharmony_ci </enum> 154bf215546Sopenharmony_ci 155bf215546Sopenharmony_ci <enum name="SOURCE_FORMAT"> 156bf215546Sopenharmony_ci <value name="F16_PER_CHANNEL" value="0"/> 157bf215546Sopenharmony_ci <value name="8_PER_CHANNEL" value="1"/> 158bf215546Sopenharmony_ci </enum> 159bf215546Sopenharmony_ci 160bf215546Sopenharmony_ci <enum name="SOURCE_POS"> 161bf215546Sopenharmony_ci <value name="START_BIT0" value="0"/> 162bf215546Sopenharmony_ci <value name="START_BIT32" value="1"/> 163bf215546Sopenharmony_ci <value name="START_BIT64" value="2"/> 164bf215546Sopenharmony_ci <value name="START_BIT96" value="3"/> 165bf215546Sopenharmony_ci </enum> 166bf215546Sopenharmony_ci 167bf215546Sopenharmony_ci <enum name="SWIZ"> 168bf215546Sopenharmony_ci <value name="SOURCE_CHAN0" value="0"/> 169bf215546Sopenharmony_ci <value name="SOURCE_CHAN1" value="1"/> 170bf215546Sopenharmony_ci <value name="SOURCE_CHAN2" value="2"/> 171bf215546Sopenharmony_ci <value name="SOURCE_CHAN3" value="3"/> 172bf215546Sopenharmony_ci <value name="ONE" value="4"/> 173bf215546Sopenharmony_ci <value name="ZERO" value="5"/> 174bf215546Sopenharmony_ci </enum> 175bf215546Sopenharmony_ci 176bf215546Sopenharmony_ci <enum name="TFBC_LOSSY"> 177bf215546Sopenharmony_ci <value name="LOSSLESS" value="0"/> 178bf215546Sopenharmony_ci <value name="LOSSY75" value="1"/> 179bf215546Sopenharmony_ci <value name="LOSSY50" value="2"/> 180bf215546Sopenharmony_ci <value name="LOSSY25" value="3"/> 181bf215546Sopenharmony_ci </enum> 182bf215546Sopenharmony_ci 183bf215546Sopenharmony_ci <enum name="TWOCOMP_GAMMA"> 184bf215546Sopenharmony_ci <value name="GAMMA_BOTTOM_CHANNEL" value="0"/> 185bf215546Sopenharmony_ci <value name="GAMMA_BOTH_CHANNELS" value="1"/> 186bf215546Sopenharmony_ci </enum> 187bf215546Sopenharmony_ci 188bf215546Sopenharmony_ci <enum name="Y_FLIP"> 189bf215546Sopenharmony_ci <value name="DISABLED" value="0"/> 190bf215546Sopenharmony_ci <value name="ENABLED" value="1"/> 191bf215546Sopenharmony_ci </enum> 192bf215546Sopenharmony_ci 193bf215546Sopenharmony_ci <enum name="YUV_DOWNSCALE"> 194bf215546Sopenharmony_ci <value name="NO_DOWNSCALING" value="0"/> 195bf215546Sopenharmony_ci <value name="ONE_SAMPLE_LEFT" value="1"/> 196bf215546Sopenharmony_ci <value name="EMPTY" value="2"/> 197bf215546Sopenharmony_ci <value name="TWO_SAMPLES" value="3"/> 198bf215546Sopenharmony_ci <value name="FOUR_SAMPLES" value="4"/> 199bf215546Sopenharmony_ci <value name="ONE_SAMPLE_RIGHT" value="5"/> 200bf215546Sopenharmony_ci </enum> 201bf215546Sopenharmony_ci 202bf215546Sopenharmony_ci <enum name="YUV_PMODE"> 203bf215546Sopenharmony_ci <value name="UV8_420_2PLANE" value="0"/> 204bf215546Sopenharmony_ci <value name="U8_420_3PLANE" value="1"/> 205bf215546Sopenharmony_ci <value name="V8_420_3PLANE" value="2"/> 206bf215546Sopenharmony_ci <value name="YUV8_422_1PLANE" value="3"/> 207bf215546Sopenharmony_ci <value name="UV8_422_2PLANE" value="4"/> 208bf215546Sopenharmony_ci <value name="UV8_444_2PLANE" value="5"/> 209bf215546Sopenharmony_ci <value name="Y8_23PLANE" value="6"/> 210bf215546Sopenharmony_ci <value name="U8_444_3PLANE" value="7"/> 211bf215546Sopenharmony_ci <value name="V8_444_3PLANE" value="8"/> 212bf215546Sopenharmony_ci <value name="YUV10_444_1PLANE" value="9"/> 213bf215546Sopenharmony_ci <value name="RESERVED_YUV1" value="10"/> 214bf215546Sopenharmony_ci <value name="RESERVED_YUV2" value="11"/> 215bf215546Sopenharmony_ci <value name="YUV10_422_1PLANE" value="12"/> 216bf215546Sopenharmony_ci <value name="UV10_420_2PLANE" value="13"/> 217bf215546Sopenharmony_ci <value name="Y10_23PLANE" value="14"/> 218bf215546Sopenharmony_ci <value name="UV16_420_2PLANE" value="15"/> 219bf215546Sopenharmony_ci <value name="UV16_422_2PLANE" value="16"/> 220bf215546Sopenharmony_ci <value name="UV16_444_2PLANE" value="17"/> 221bf215546Sopenharmony_ci <value name="Y16_23PLANE" value="18"/> 222bf215546Sopenharmony_ci <value name="U16_444_3PLANE" value="19"/> 223bf215546Sopenharmony_ci <value name="V16_444_3PLANE" value="20"/> 224bf215546Sopenharmony_ci </enum> 225bf215546Sopenharmony_ci 226bf215546Sopenharmony_ci <struct name="STATE_WORD0" length="1"> 227bf215546Sopenharmony_ci <field name="address_low" start="0" end="31" shift="2" type="address"/> 228bf215546Sopenharmony_ci </struct> 229bf215546Sopenharmony_ci 230bf215546Sopenharmony_ci <struct name="STATE_WORD1" length="1"> 231bf215546Sopenharmony_ci <condition type="if" check="8_OUTPUT_REGISTERS"/> 232bf215546Sopenharmony_ci <field name="source_pos_offset_128" start="28" end="28" type="bool"/> 233bf215546Sopenharmony_ci <condition type="endif" check="8_OUTPUT_REGISTERS"/> 234bf215546Sopenharmony_ci <field name="yuv_pmode" start="23" end="27" type="YUV_PMODE"/> 235bf215546Sopenharmony_ci <field name="yuv_downscale" start="20" end="22" type="YUV_DOWNSCALE"/> 236bf215546Sopenharmony_ci <field name="source_format" start="19" end="19" type="SOURCE_FORMAT"/> 237bf215546Sopenharmony_ci <field name="mrt_index" start="16" end="18" type="uint"/> 238bf215546Sopenharmony_ci <field name="source_pos" start="14" end="15" type="SOURCE_POS"/> 239bf215546Sopenharmony_ci <field name="norm" start="13" end="13" type="bool"/> 240bf215546Sopenharmony_ci <field name="packmode" start="7" end="12" type="PACKMODE"/> 241bf215546Sopenharmony_ci <field name="emptytile" start="6" end="6" type="bool"/> 242bf215546Sopenharmony_ci <field name="address_high" start="0" end="5" shift="34" type="address"/> 243bf215546Sopenharmony_ci </struct> 244bf215546Sopenharmony_ci 245bf215546Sopenharmony_ci <struct name="REG_WORD0" length="2"> 246bf215546Sopenharmony_ci <field name="tfbc_lossy" start="62" end="63" type="TFBC_LOSSY"> 247bf215546Sopenharmony_ci <define name="LOSSY37_75_TFBC_LOSSY_37_PERCENT_ENABLED" value="1"/> 248bf215546Sopenharmony_ci </field> 249bf215546Sopenharmony_ci <field name="lossy" start="62" end="62" type="LOSSY"/> 250bf215546Sopenharmony_ci <field name="compress_size_ext" start="61" end="61" type="COMPRESS_SIZE_EXT"/> 251bf215546Sopenharmony_ci <field name="comp_iaddr_mode" start="60" end="60" type="COMP_IADDR_TYPE"/> 252bf215546Sopenharmony_ci <field name="comp_cor_enable" start="59" end="59" type="bool"/> 253bf215546Sopenharmony_ci <field name="dither" start="58" end="58" type="bool"/> 254bf215546Sopenharmony_ci <field name="tilerelative" start="57" end="57" type="bool"/> 255bf215546Sopenharmony_ci <field name="downscale" start="56" end="56" type="bool"/> 256bf215546Sopenharmony_ci <field name="size_z" start="52" end="55" type="SIZE"/> 257bf215546Sopenharmony_ci <field name="rotation" start="50" end="51" type="ROTATION_TYPE"/> 258bf215546Sopenharmony_ci <field name="linestride" start="34" end="49" type="uint"> 259bf215546Sopenharmony_ci <!-- FIXME: When pbe_stride_align_1pixel is present, this should be 1. --> 260bf215546Sopenharmony_ci <define name="UNIT_SIZE" value="2"/> 261bf215546Sopenharmony_ci </field> 262bf215546Sopenharmony_ci <field name="memlayout" start="32" end="33" type="MEMLAYOUT"/> 263bf215546Sopenharmony_ci <field name="swiz_chan3" start="29" end="31" type="SWIZ"/> 264bf215546Sopenharmony_ci <field name="swiz_chan2" start="26" end="28" type="SWIZ"/> 265bf215546Sopenharmony_ci <field name="swiz_chan1" start="23" end="25" type="SWIZ"/> 266bf215546Sopenharmony_ci <field name="swiz_chan0" start="20" end="22" type="SWIZ"/> 267bf215546Sopenharmony_ci <field name="minclip_x" start="6" end="19" type="uint"/> 268bf215546Sopenharmony_ci <field name="twocomp_gamma" start="5" end="5" type="TWOCOMP_GAMMA"/> 269bf215546Sopenharmony_ci <field name="gamma" start="4" end="4" type="bool"/> 270bf215546Sopenharmony_ci <field name="compression" start="3" end="3" type="COMPRESSION"/> 271bf215546Sopenharmony_ci <field name="compress_size" start="2" end="2" type="COMPRESS_SIZE"/> 272bf215546Sopenharmony_ci <field name="comp_indirect_table" start="1" end="1" type="bool"/> 273bf215546Sopenharmony_ci <field name="y_flip" start="0" end="0" type="Y_FLIP"/> 274bf215546Sopenharmony_ci </struct> 275bf215546Sopenharmony_ci 276bf215546Sopenharmony_ci <struct name="REG_WORD1" length="2"> 277bf215546Sopenharmony_ci <field name="size_x" start="60" end="63" type="SIZE"/> 278bf215546Sopenharmony_ci <field name="minclip_y" start="46" end="59" type="uint"/> 279bf215546Sopenharmony_ci <field name="maxclip_x" start="32" end="45" type="uint"/> 280bf215546Sopenharmony_ci <field name="size_y" start="28" end="31" type="SIZE"/> 281bf215546Sopenharmony_ci <field name="zslice" start="14" end="27" type="uint"/> 282bf215546Sopenharmony_ci <field name="maxclip_y" start="0" end="13" type="uint"/> 283bf215546Sopenharmony_ci </struct> 284bf215546Sopenharmony_ci 285bf215546Sopenharmony_ci <struct name="REG_WORD2" length="2"> 286bf215546Sopenharmony_ci <field name="pair_tiles" start="46" end="46" type="PAIR_TILES"> 287bf215546Sopenharmony_ci <!-- TODO: Do we need this? --> 288bf215546Sopenharmony_ci <define name="SHIFT" value="46"/> 289bf215546Sopenharmony_ci </field> 290bf215546Sopenharmony_ci <field name="surface_y_size" start="32" end="45" type="uint"/> 291bf215546Sopenharmony_ci <field name="sw_bytemask" start="0" end="31" type="uint"/> 292bf215546Sopenharmony_ci </struct> 293bf215546Sopenharmony_ci 294bf215546Sopenharmony_ci</csbgen> 295