| <?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="CR"> |
| |
| <define name="PM_VHEAP_TABLE_SIZE" value="0x180" /> |
| |
| <enum name="COMP_IADDR_TYPE"> |
| <value name="INDIRECT_1TILE" value="0"/> |
| <value name="INDIRECT_4TILE" value="1"/> |
| </enum> |
| |
| <enum name="COMPRESS_SIZE"> |
| <value name="BLOCK_8X8" value="0"/> |
| <value name="BLOCK_16X4" value="1"/> |
| </enum> |
| |
| <enum name="DIR_TYPE"> |
| <value name="TL2BR" value="0"/> |
| <value name="TR2BL" value="1"/> |
| <value name="BL2TR" value="2"/> |
| <value name="BR2TL" value="3"/> |
| </enum> |
| |
| <enum name="ISP_AA_MODE_TYPE"> |
| <value name="AA_NONE" value="0"/> |
| <value name="AA_2X" value="1"/> |
| <value name="AA_4X" value="2"/> |
| <value name="AA_8X" value="3"/> |
| </enum> |
| |
| <enum name="ISP_RENDER_MODE_TYPE"> |
| <value name="NORM" value="0"/> |
| <value name="FAST_2D" value="2"/> |
| <value name="FAST_SCALE" value="3"/> |
| </enum> |
| |
| <enum name="MEMLAYOUT"> |
| <value name="LINEAR" value="0"/> |
| <value name="TWIDDLE_2D" value="1"/> |
| <value name="TWIDDLE_3D" value="2"/> |
| <value name="TILED" value="3"/> |
| </enum> |
| |
| <enum name="MODE_TYPE"> |
| <value name="DX9" value="0"/> |
| <value name="DX10" value="1"/> |
| <value name="OGL" value="2"/> |
| </enum> |
| |
| <enum name="PIPE_NUM"> |
| <value name="PIPE_ONE" value="0"/> |
| <value name="PIPE_TWO" value="1"/> |
| <value name="PIPE_THREE" value="2"/> |
| <value name="PIPE_FOUR" value="3"/> |
| <value name="PIPE_FIVE" value="4"/> |
| <value name="PIPE_SIX" value="5"/> |
| <value name="PIPE_SEVEN" value="6"/> |
| <value name="PIPE_EIGHT" value="7"/> |
| <value name="PIPE_NINE" value="8"/> |
| <value name="PIPE_TEN" value="9"/> |
| <value name="PIPE_ELEVEN" value="10"/> |
| <value name="PIPE_TWELVE" value="11"/> |
| <value name="PIPE_THIRTEEN" value="12"/> |
| <value name="PIPE_FOURTEEN" value="13"/> |
| <value name="PIPE_FIFTEEN" value="14"/> |
| <value name="PIPE_SIXTEEN" value="15"/> |
| </enum> |
| |
| <enum name="PIXEL_WIDTH"> |
| <value name="2REGISTERS" value="0"/> |
| <value name="4REGISTERS" value="1"/> |
| <value name="8REGISTERS" value="2"/> |
| <value name="1REGISTER" value="3"/> |
| </enum> |
| |
| <enum name="ROTATION_TYPE"> |
| <value name="0_DEG" value="0"/> |
| <value name="90_DEG" value="1"/> |
| <value name="180_DEG" value="2"/> |
| <value name="270_DEG" value="3"/> |
| </enum> |
| |
| <enum name="SIZE"> |
| <value name="1_PIXEL" value="0"/> |
| <value name="2_PIXEL" value="1"/> |
| <value name="4_PIXEL" value="2"/> |
| <value name="8_PIXEL" value="3"/> |
| <value name="16_PIXEL" value="4"/> |
| <value name="32_PIXEL" value="5"/> |
| <value name="64_PIXEL" value="6"/> |
| <value name="128_PIXEL" value="7"/> |
| <value name="256_PIXEL" value="8"/> |
| <value name="512_PIXEL" value="9"/> |
| <value name="1K_PIXEL" value="10"/> |
| <value name="2K_PIXEL" value="11"/> |
| <value name="4K_PIXEL" value="12"/> |
| <value name="8K_PIXEL" value="13"/> |
| <value name="16K_PIXEL" value="14"/> |
| </enum> |
| |
| <enum name="SWIZ"> |
| <value name="SOURCE_CHAN0" value="0"/> |
| <value name="SOURCE_CHAN1" value="1"/> |
| <value name="SOURCE_CHAN2" value="2"/> |
| <value name="SOURCE_CHAN3" value="3"/> |
| <value name="ONE" value="4"/> |
| <value name="ZERO" value="5"/> |
| </enum> |
| |
| <enum name="TFBC_LOSSY"> |
| <value name="LOSSLESS" value="0"/> |
| <value name="LOSSY_75" value="1"/> |
| <value name="LOSSY_50" value="2"/> |
| <value name="LOSSY_25" value="3"/> |
| </enum> |
| |
| <enum name="TWOCOMP_GAMMA"> |
| <value name="GAMMA_BOTTOM_CHANNEL" value="0"/> |
| <value name="GAMMA_BOTH_CHANNELS" value="1"/> |
| </enum> |
| |
| <enum name="ZLOADFORMAT_TYPE"> |
| <value name="F32Z" value="0"/> |
| <value name="24BITINT" value="1"/> |
| <value name="16BITINT" value="2"/> |
| <value name="F64Z" value="3"/> |
| </enum> |
| |
| <enum name="ZSTOREFORMAT_TYPE"> |
| <value name="F32Z" value="0"/> |
| <value name="24BITINT" value="1"/> |
| <value name="16BITINT" value="2"/> |
| <value name="F64Z" value="3"/> |
| </enum> |
| |
| <struct name="PM_MTILE_ARRAY" length="2"> |
| <field name="base_addr" start="4" end="39" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="PM_VHEAP_TABLE" length="2"> |
| <field name="base_addr" start="4" end="39" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="PM_MLIST0_BASE" length="2"> |
| <field name="addr" start="4" end="39" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="VDM_CTRL_STREAM_BASE" length="2"> |
| <field name="addr" start="2" end="39" shift="2" type="address"/> |
| </struct> |
| |
| <struct name="VDM_CALL_STACK_POINTER" length="2"> |
| <field name="addr" start="3" end="39" shift="3" type="address"/> |
| </struct> |
| |
| <struct name="VDM_CONTEXT_STATE_BASE" length="2"> |
| <field name="addr" start="4" end="39" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="VDM_CONTEXT_STORE_TASK0" length="2"> |
| <field name="pds_state1" start="32" end="63" type="uint"/> |
| <field name="pds_state0" start="0" end="31" type="uint"/> |
| </struct> |
| |
| <struct name="VDM_CONTEXT_STORE_TASK1" length="1"> |
| <field name="pds_state2" start="0" end="31" type="uint"/> |
| </struct> |
| |
| <struct name="VDM_CONTEXT_STORE_TASK2" length="2"> |
| <field name="stream_out2" start="32" end="63" type="uint"/> |
| <field name="stream_out1" start="0" end="31" type="uint"/> |
| </struct> |
| |
| <struct name="VDM_CONTEXT_RESUME_TASK0" length="2"> |
| <field name="pds_state1" start="32" end="63" type="uint"/> |
| <field name="pds_state0" start="0" end="31" type="uint"/> |
| </struct> |
| |
| <struct name="VDM_CONTEXT_RESUME_TASK1" length="1"> |
| <field name="pds_state2" start="0" end="31" type="uint"/> |
| </struct> |
| |
| <struct name="VDM_CONTEXT_RESUME_TASK2" length="2"> |
| <field name="stream_out2" start="32" end="63" type="uint"/> |
| <field name="stream_out1" start="0" end="31" type="uint"/> |
| </struct> |
| |
| <struct name="CDM_CONTEXT_STATE_BASE" length="2"> |
| <field name="addr" start="4" end="39" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="CDM_CONTEXT_PDS0" length="2"> |
| <field name="data_addr" start="36" end="63" shift="4" type="address"/> |
| <field name="code_addr" start="4" end="31" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="CDM_CTRL_STREAM_BASE" length="2"> |
| <field name="addr" start="2" end="39" shift="2" type="address"/> |
| </struct> |
| |
| <struct name="CDM_CONTEXT_PDS1" length="1"> |
| <field name="pds_seq_dep" start="29" end="29" type="bool"/> |
| <field name="usc_seq_dep" start="28" end="28" type="bool"/> |
| <!-- false=All, true=Any --> |
| <field name="target" start="27" end="27" type="bool"/> |
| <field name="unified_size" start="21" end="26" type="uint"/> |
| <field name="common_shared" start="20" end="20" type="bool"/> |
| <field name="common_size" start="11" end="19" type="uint"> |
| <define name="UNIT_SIZE" value="64"/> |
| </field> |
| <field name="temp_size" start="7" end="10" type="uint"/> |
| <field name="data_size" start="1" end="6" type="uint"> |
| <define name="UNIT_SIZE" value="16"/> |
| </field> |
| <field name="fence" start="0" end="0" type="bool"/> |
| </struct> |
| |
| <struct name="CDM_TERMINATE_PDS" length="2"> |
| <field name="data_addr" start="36" end="63" shift="4" type="address"/> |
| <field name="code_addr" start="4" end="31" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="CDM_TERMINATE_PDS1" length="1"> |
| <field name="pds_seq_dep" start="29" end="29" type="bool"/> |
| <field name="usc_seq_dep" start="28" end="28" type="bool"/> |
| <field name="target" start="27" end="27" type="bool"/> |
| <field name="unified_size" start="21" end="26" type="uint"/> |
| <field name="common_shared" start="20" end="20" type="bool"/> |
| <field name="common_size" start="11" end="19" type="uint"/> |
| <field name="temp_size" start="7" end="10" type="uint"/> |
| <field name="data_size" start="1" end="6" type="uint"/> |
| <field name="fence" start="0" end="0" type="bool"/> |
| </struct> |
| |
| <struct name="CDM_CONTEXT_LOAD_PDS0" length="2"> |
| <field name="data_addr" start="36" end="63" shift="4" type="address"/> |
| <field name="code_addr" start="4" end="31" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="COMPUTE_CLUSTER" length="1"> |
| <field name="mask" start="0" end="31" type="uint"/> |
| </struct> |
| |
| <struct name="PDS_CTRL" length="2"> |
| <field name="sm_overlap_enable" start="55" end="55" type="bool"/> |
| <condition type="if" check="ROGUEXE"/> |
| <condition type="if" check="COMPUTE"/> |
| <field name="roguexe_max_num_cdm_tasks" start="24" end="31" type="uint"/> |
| <condition type="endif" check="COMPUTE"/> |
| <condition type="if" check="NUM_RASTER_PIPES > 0"/> |
| <field name="roguexe_max_num_pdm_tasks" start="16" end="23" type="uint"/> |
| <condition type="endif" check="NUM_RASTER_PIPES > 0"/> |
| <condition type="if" check="NUM_TA > 0"/> |
| <field name="roguexe_max_num_vdm_tasks" start="8" end="15" type="uint"/> |
| <condition type="endif" check="NUM_TA > 0"/> |
| <condition type="else" check="ROGUEXE"/> |
| <condition type="if" check="COMPUTE"/> |
| <field name="max_num_cdm_tasks" start="24" end="30" type="uint"/> |
| <condition type="endif" check="COMPUTE"/> |
| <field name="max_num_pdm_tasks" start="16" end="22" type="uint"/> |
| <field name="max_num_vdm_tasks" start="8" end="14" type="uint"/> |
| <condition type="endif" check="ROGUEXE"/> |
| </struct> |
| |
| <struct name="EVENT_PIXEL_PDS_CODE" length="1"> |
| <field name="addr" start="4" end="31" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="EVENT_PIXEL_PDS_DATA" 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="EVENT_PIXEL_PDS_INFO" length="1"> |
| <field name="usc_sr_size" start="9" end="14" type="uint"> |
| <define name="UNIT_SIZE" value="16"/> |
| </field> |
| <field name="temp_stride" start="5" end="8" type="uint"> |
| <define name="UNIT_SIZE" value="4"/> |
| </field> |
| <field name="const_size" start="0" end="4" type="uint"> |
| <define name="UNIT_SIZE" value="4"/> |
| </field> |
| </struct> |
| |
| <struct name="PDS_BGRND0_BASE" length="2"> |
| <!-- This is an offset actually. Note for when we auto-generate the xmls. --> |
| <field name="texunicode_addr" start="36" end="63" shift="4" type="address"/> |
| <!-- This is an offset actually. Note for when we auto-generate the xmls. --> |
| <field name="shader_addr" start="4" end="31" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="PDS_BGRND1_BASE" length="2"> |
| <!-- This is an offset actually. Note for when we auto-generate the xmls. --> |
| <field name="texturedata_addr" start="36" end="63" shift="4" type="address"/> |
| <!-- Unused in the Vulkan driver. --> |
| <field name="varying_addr" start="4" end="31" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="PDS_BGRND2_BASE" length="2"> |
| <!-- This is an offset actually. Note for when we auto-generate the xmls. --> |
| <field name="uniformdata_addr" start="4" end="31" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="PDS_BGRND3_SIZEINFO" length="2"> |
| <field name="usc_sharedsize" start="55" end="63" type="uint"> |
| <define name="UNIT_SIZE" value="16"/> |
| </field> |
| <field name="pds_batchnum" start="32" end="45" type="uint"/> |
| <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"/> |
| </field> |
| <field name="pds_tempsize" start="0" end="3" type="uint"> |
| <define name="UNIT_SIZE" value="4"/> |
| </field> |
| </struct> |
| |
| <struct name="TE_AA" length="1"> |
| <condition type="if" check="SIMPLE_INTERNAL_PARAMETER_FORMAT && ISP_SAMPLES_PER_PIXEL > 2"/> |
| <field name="y2" start="3" end="3" type="bool"/> |
| <condition type="endif" check="SIMPLE_INTERNAL_PARAMETER_FORMAT && ISP_SAMPLES_PER_PIXEL > 2"/> |
| <field name="y" start="2" end="2" type="bool"/> |
| <field name="x" start="1" end="1" type="bool"/> |
| <field name="x2" start="0" end="0" type="bool"/> |
| </struct> |
| |
| <struct name="TE_MTILE1" length="1"> |
| <field name="x1" start="18" end="26" type="uint"/> |
| <field name="x2" start="9" end="17" type="uint"/> |
| <field name="x3" start="0" end="8" type="uint"/> |
| </struct> |
| |
| <struct name="TE_MTILE2" length="1"> |
| <field name="y1" start="18" end="26" type="uint"/> |
| <field name="y2" start="9" end="17" type="uint"/> |
| <field name="y3" start="0" end="8" type="uint"/> |
| </struct> |
| |
| <struct name="TE_SCREEN" length="1"> |
| <field name="ymax" start="12" end="20" type="uint"/> |
| <field name="xmax" start="0" end="8" type="uint"/> |
| </struct> |
| |
| <struct name="TE_PSG" length="1"> |
| <condition type="if" check="ROGUEXE"/> |
| <condition type="if" check="TILE_REGION_PROTECTION"/> |
| <field name="force_protect" start="22" end="22" type="uint"/> |
| <condition type="endif" check="TILE_REGION_PROTECTION"/> |
| <field name="cs_size" start="21" end="21" type="uint"/> |
| <field name="enable_pwr_gate_state" start="20" end="20" type="bool"/> |
| <condition type="endif" check="ROGUEXE"/> |
| <field name="enable_context_state_restore" start="19" end="19" type="bool"/> |
| <field name="zonlyrender" start="18" end="18" type="bool"/> |
| <field name="completeonterminate" start="17" end="17" type="bool"/> |
| <field name="cache_bypass" start="14" end="14" type="bool"/> |
| <field name="forcenewstate" start="13" end="13" type="bool"/> |
| <field name="region_stride" start="0" end="10" type="uint"> |
| <define name="UNIT_SIZE" value="4096"/> |
| </field> |
| </struct> |
| |
| <!-- FIXME: This is only a partial definition as (at the time of writing) |
| csbgen doesn't support multiple address fields within structure. |
| --> |
| <!-- FIXME: When csbgen supports conditional structs, make this |
| conditional on NUM_TA > 0. |
| --> |
| <struct name="TE_PSGREGION_ADDR" length="2"> |
| <field name="base" start="6" end="33" shift="6" type="address"/> |
| </struct> |
| |
| <!-- FIXME: This is only a partial definition as (at the time of writing) |
| csbgen doesn't support multiple address fields within structure. |
| --> |
| <struct name="TE_TPC_ADDR" length="2"> |
| <field name="base" start="6" end="33" shift="6" type="address"/> |
| </struct> |
| |
| <struct name="PPP_MULTISAMPLECTL" length="2"> |
| <condition type="if" check="MAX_MULTISAMPLE == 8"/> |
| <field name="msaa_y7" start="60" end="63" type="uint"/> |
| <field name="msaa_x7" start="56" end="59" type="uint"/> |
| <field name="msaa_y6" start="52" end="55" type="uint"/> |
| <field name="msaa_x6" start="48" end="51" type="uint"/> |
| <field name="msaa_y5" start="44" end="47" type="uint"/> |
| <field name="msaa_x5" start="40" end="43" type="uint"/> |
| <field name="msaa_y4" start="36" end="39" type="uint"/> |
| <field name="msaa_x4" start="32" end="35" type="uint"/> |
| <condition type="endif" check="MAX_MULTISAMPLE == 8"/> |
| <field name="msaa_y3" start="28" end="31" type="uint"/> |
| <field name="msaa_x3" start="24" end="27" type="uint"/> |
| <field name="msaa_y2" start="20" end="23" type="uint"/> |
| <field name="msaa_x2" start="16" end="19" type="uint"/> |
| <field name="msaa_y1" start="12" end="15" type="uint"/> |
| <field name="msaa_x1" start="8" end="11" type="uint"/> |
| <field name="msaa_y0" start="4" end="7" type="uint"/> |
| <field name="msaa_x0" start="0" end="3" type="uint"/> |
| </struct> |
| |
| <struct name="PPP_CTRL" length="1"> |
| <field name="vpt_scissor" start="12" end="12" type="bool"/> |
| <field name="flush_mode" start="11" end="11" type="uint"/> |
| <field name="bfcull_restrict_clip" start="10" end="10" type="bool"/> |
| <field name="fixed_point_format" start="9" end="9" type="uint"/> |
| <field name="default_point_size" start="8" end="8" type="bool"/> |
| <field name="bfcull1_disable" start="7" end="7" type="bool"/> |
| <field name="bfcull2_disable" start="6" end="6" type="bool"/> |
| <field name="fccull_disable" start="5" end="5" type="bool"/> |
| <field name="oscull_disable" start="4" end="4" type="bool"/> |
| <field name="socull_disable" start="2" end="2" type="bool"/> |
| <field name="wclampen" start="1" end="1" type="bool"/> |
| <field name="opengl" start="0" end="0" type="bool"/> |
| </struct> |
| |
| <struct name="PPP_SCREEN" length="1"> |
| <field name="pixymax" start="16" end="30" type="uint"/> |
| <field name="pixxmax" start="0" end="14" type="uint"/> |
| </struct> |
| |
| <!-- FIXME: This is only a partial definition as (at the time of writing) |
| csbgen doesn't support multiple address fields within structure. |
| --> |
| <struct name="TA_RTC_ADDR" length="2"> |
| <field name="base" start="6" end="33" shift="6" type="address"/> |
| </struct> |
| |
| <struct name="TA_CONTEXT_STATE_BASE" length="2"> |
| <field name="addr" start="4" end="39" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="ISP_RENDER" length="1"> |
| <field name="disable_eomt" start="5" end="5" type="bool"/> |
| <field name="resume" start="4" end="4" type="bool"/> |
| <field name="dir_type" start="2" end="3" type="DIR_TYPE"/> |
| <field name="mode_type" start="0" end="1" type="ISP_RENDER_MODE_TYPE"/> |
| </struct> |
| |
| <struct name="ISP_RENDER_ORIGIN" length="1"> |
| <field name="x" start="16" end="25" type="uint"/> |
| <field name="y" start="0" end="9" type="uint"/> |
| </struct> |
| |
| <struct name="ISP_MTILE_SIZE" length="1"> |
| <field name="x" start="16" end="25" type="uint"/> |
| <field name="y" start="0" end="9" type="uint"/> |
| </struct> |
| |
| <struct name="ISP_BGOBJDEPTH" length="1"> |
| <field name="value" start="0" end="31" type="uint"/> |
| </struct> |
| |
| <struct name="ISP_BGOBJVALS" length="1"> |
| <field name="enablebgtag" start="9" end="9" type="bool"/> |
| <field name="mask" start="8" end="8" type="bool"/> |
| <field name="stencil" start="0" end="7" type="uint"/> |
| </struct> |
| |
| <struct name="ISP_AA" length="1"> |
| <field name="mode" start="0" end="1" type="ISP_AA_MODE_TYPE"/> |
| </struct> |
| |
| <struct name="ISP_CTL" length="1"> |
| <field name="skip_init_hdrs" start="31" end="31" type="bool"/> |
| <field name="line_style" start="30" end="30" type="bool"/> |
| <field name="line_style_pix" start="29" end="29" type="bool"/> |
| <field name="pair_tiles_vert" start="28" end="28" type="bool"/> |
| <field name="pair_tiles" start="27" end="27" type="bool"/> |
| <field name="creq_buf_en" start="26" end="26" type="bool"/> |
| <field name="tile_age_en" start="25" end="25" type="bool"/> |
| <field name="isp_sample_pos_mode" start="23" end="24" type="MODE_TYPE"/> |
| <field name="num_tiles_per_usc" start="21" end="22" type="uint"/> |
| <field name="dbias_is_int" start="20" end="20" type="bool"/> |
| <field name="overlap_check_mode" start="19" end="19" type="bool"/> |
| <field name="pt_upfront_depth_disable" start="18" end="18" type="bool"/> |
| <field name="process_empty_tiles" start="17" end="17" type="bool"/> |
| <field name="sample_pos" start="16" end="16" type="bool"/> |
| <field name="pipe_enable" start="12" end="15" type="PIPE_NUM"/> |
| <field name="valid_id" start="4" end="9" type="uint"/> |
| <field name="upass_start" start="0" end="3" type="uint"> |
| <define name="SIZE_MAX" value="15"/> |
| </field> |
| </struct> |
| |
| <struct name="ISP_ZLSCTL" length="2"> |
| <field name="zlsextent_y_s" start="48" end="57" type="uint"/> |
| <field name="zlsextent_x_s" start="38" end="47" type="uint"/> |
| <field name="stencil_extent_enable" start="37" end="37" type="bool"/> |
| <field name="zlsextent_y_z" start="27" end="36" type="uint"/> |
| <field name="zstoreformat" start="25" end="26" type="ZSTOREFORMAT_TYPE"/> |
| <field name="zloadformat" start="23" end="24" type="ZLOADFORMAT_TYPE"/> |
| <field name="fb_storeen" start="22" end="22" type="bool"/> |
| <field name="fb_loaden" start="21" end="21" type="bool"/> |
| <field name="mstoreen" start="20" end="20" type="bool"/> |
| <field name="zstoreen" start="19" end="19" type="bool"/> |
| <field name="sstoreen" start="18" end="18" type="bool"/> |
| <field name="storetwiddled" start="17" end="17" type="bool"/> |
| <field name="mloaden" start="16" end="16" type="bool"/> |
| <field name="zloaden" start="15" end="15" type="bool"/> |
| <field name="sloaden" start="14" end="14" type="bool"/> |
| <field name="loadtwiddled" start="13" end="13" type="bool"/> |
| <field name="zlsextent_x_z" start="3" end="12" type="uint"/> |
| <field name="forcezstore" start="2" end="2" type="bool"/> |
| <field name="forcezload" start="1" end="1" type="bool"/> |
| <field name="zonlyrender" start="0" end="0" type="bool"/> |
| </struct> |
| |
| <struct name="ISP_ZLOAD_BASE" length="2"> |
| <field name="addr" start="4" end="39" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="ISP_STENCIL_LOAD_BASE" length="2"> |
| <field name="addr" start="4" end="39" shift="4" type="address"/> |
| <field name="enable" start="0" end="0" type="bool"/> |
| </struct> |
| |
| <struct name="ISP_SCISSOR_BASE" length="2"> |
| <field name="addr" start="2" end="39" shift="2" type="address"/> |
| </struct> |
| |
| <struct name="ISP_DBIAS_BASE" length="2"> |
| <field name="addr" start="2" end="39" shift="2" type="address"/> |
| </struct> |
| |
| <struct name="ISP_OCLQRY_BASE" length="2"> |
| <field name="addr" start="4" end="39" shift="4" type="address"/> |
| </struct> |
| |
| <struct name="ISP_ZLS_PIXELS" length="1"> |
| <field name="y" start="15" end="29" type="uint"/> |
| <field name="x" start="0" end="14" type="uint"/> |
| </struct> |
| |
| <struct name="PBE_WORD0_MRT0" length="2"> |
| <condition type="if" check="TFBC"/> |
| <field name="tfbc_lossy" start="62" end="63" type="TFBC_LOSSY"/> |
| <condition type="endif" check="TFBC"/> |
| <field name="x_rsrvd" start="63" end="63" type="bool"/> |
| <field name="pair_tiles" start="60" end="60" type="uint"/> |
| <field name="comp_iaddr_mode" start="60" end="60" type="COMP_IADDR_TYPE"/> |
| <field name="x_rsrvd2" start="59" end="59" type="bool"/> |
| <field name="comp_cor_enable" start="59" end="59" type="bool"/> |
| <field name="dither" start="58" end="58" type="bool"/> |
| <field name="tilerelative" start="57" end="57" type="bool"/> |
| <field name="downscale" start="56" end="56" type="bool"/> |
| <field name="size_z" start="52" end="55" type="SIZE"/> |
| <field name="rotation" start="50" end="51" type="ROTATION_TYPE"/> |
| <field name="linestride" start="34" end="49" type="uint"/> |
| <field name="memlayout" start="32" end="33" type="MEMLAYOUT"/> |
| <field name="swiz_chan3" start="29" end="31" type="SWIZ"/> |
| <field name="swiz_chan2" start="26" end="28" type="SWIZ"/> |
| <field name="swiz_chan1" start="23" end="25" type="SWIZ"/> |
| <field name="swiz_chan0" start="20" end="22" type="SWIZ"/> |
| <field name="minclip_x" start="6" end="19" type="uint"/> |
| <field name="twocomp_gamma" start="5" end="5" type="TWOCOMP_GAMMA"/> |
| <field name="gamma" start="4" end="4" type="bool"/> |
| <field name="compression" start="3" end="3" type="bool"/> |
| <field name="compress_size" start="2" end="2" type="COMPRESS_SIZE"/> |
| <field name="comp_indirect_table" start="1" end="1" type="bool"/> |
| <condition type="if" check="PBE_YFLIP"/> |
| <field name="y_flip" start="0" end="0" type="bool"/> |
| <condition type="endif" check="PBE_YFLIP"/> |
| </struct> |
| |
| <struct name="FRAG_SCREEN" length="1"> |
| <field name="ymax" start="16" end="30" type="uint"/> |
| <field name="xmax" start="0" end="14" type="uint"/> |
| </struct> |
| |
| <struct name="TPU" length="1"> |
| <condition type="if" check="PDSL0SIZE > 0"/> |
| <field name="mcu_pds_l0_off" start="8" end="8" type="bool"/> |
| <condition type="endif" check="PDSL0SIZE > 0"/> |
| <condition type="if" check="TPU_CEM_DATAMASTER_GLOBAL_REGISTERS"/> |
| <field name="tag_cem_64_face_packing" start="7" end="7" type="bool"/> |
| <condition type="endif" check="TPU_CEM_DATAMASTER_GLOBAL_REGISTERS"/> |
| <field name="tag_enable_mmu_prefetch" start="6" end="6" type="bool"/> |
| <field name="tag_cem_4k_face_packing" start="5" end="5" type="bool"/> |
| <field name="madd_config_l0off" start="4" end="4" type="bool"/> |
| <field name="tag_cem_face_packing" start="3" end="3" type="bool"/> |
| <field name="tag_cemedge_dontfilter" start="2" end="2" type="bool"/> |
| <condition type="if" check="TPU_CEM_USG_NORMALISATION"/> |
| <field name="tag_cemgrad_dontnegate" start="1" end="1" type="bool"/> |
| <condition type="endif" check="TPU_CEM_USG_NORMALISATION"/> |
| <field name="madd_config_dxt35_transovr" start="0" end="0" type="bool"/> |
| </struct> |
| |
| <struct name="TPU_BORDER_COLOUR_TABLE_PDM" length="2"> |
| <field name="border_colour_table_address" start="0" end="37" shift="2" type="address"/> |
| </struct> |
| |
| <struct name="TPU_BORDER_COLOUR_TABLE_VDM" length="2"> |
| <field name="border_colour_table_address" start="0" end="37" shift="2" type="address"/> |
| </struct> |
| |
| <struct name="TPU_BORDER_COLOUR_TABLE_CDM" length="2"> |
| <field name="border_colour_table_address" start="0" end="37" shift="2" type="address"/> |
| </struct> |
| |
| <struct name="USC_PIXEL_OUTPUT_CTRL" length="1"> |
| <field name="partition_mask" start="3" end="20" type="uint"/> |
| <field name="enable_4th_partition" start="2" end="2" type="bool"/> |
| <field name="width" start="0" end="1" type="PIXEL_WIDTH"/> |
| </struct> |
| |
| </csbgen> |