pvr: Add command stream and static context state layout to rogue_kmd_stream.xml

Co-authored-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15507>
This commit is contained in:
Sarah Walker 2023-04-06 17:01:25 +01:00 committed by Marge Bot
parent 90916c955b
commit be82fe7ab9

View file

@ -36,6 +36,7 @@ This file is structured as follows:
- defines
- enums
- structs
- streams
Elements in each section are ordered alphabetically.
-->
@ -45,6 +46,11 @@ TODO: Currently the sizes for fields are in bits. Those should be changed to
bytes. Might want to do this in conjunction with csbgen being changed from
dword to bytes granular.
-->
<!--
TODO: Allow embedding of struct definitions withing stream elements. And for
structs that might be shared between multiple streams, allow for the field
type to be set to a struct.
-->
<csbgen name="ROGUE" prefix="KMD_STREAM">
<define name="EXTHDR_DATA_MASK" value="0xFFFFFFF"/>
@ -60,6 +66,10 @@ dword to bytes granular.
total length of the whole group instead of the driver calculating it by
multiplying this with the size of the usc reg.
-->
<!--
TODO: This should only be defined for `CMD_FRAG`. Allow the definition of
`define` elements within structs and streams.
-->
<define name="USC_CLEAR_REGISTER_COUNT" value="8"/>
<enum name="EXTHDR_TYPE_COMPUTE">
@ -115,4 +125,162 @@ dword to bytes granular.
<field name="idx" start="0" end="7" type="uint"/>
</struct>
<stream name="CMD_COMPUTE" length="18">
<field name="tpu_border_colour_table" size="64" type="uint"/>
<!-- Only present if PVR_FEATURE_CDM_USER_MODE_QUEUE supported on the current device -->
<field name="cdm_cb_queue" size="64" type="uint" feature="PVR_FEATURE_CDM_USER_MODE_QUEUE"/>
<!-- Only present if PVR_FEATURE_CDM_USER_MODE_QUEUE supported on the current device -->
<field name="cbm_cb_base" size="64" type="address" shift="0" feature="PVR_FEATURE_CDM_USER_MODE_QUEUE"/>
<!-- Only present if PVR_FEATURE_CDM_USER_MODE_QUEUE supported on the current device -->
<field name="cdm_cb" size="64" type="uint" feature="PVR_FEATURE_CDM_USER_MODE_QUEUE"/>
<!-- Only present if PVR_FEATURE_CDM_USER_MODE_QUEUE supported on the current device -->
<field name="cdm_ctrl_stream_base" size="64" type="address" shift="0" feature="PVR_FEATURE_CDM_USER_MODE_QUEUE"/>
<field name="cdm_context_state_base_addr" size="64" type="address" shift="0"/>
<field name="cdm_resume_pds1" size="32" type="uint"/>
<!-- Only present if PVR_FEATURE_COMPUTE_MORTON_CAPABLE supported on the current device -->
<field name="cdm_item" size="32" type="uint" feature="PVR_FEATURE_COMPUTE_MORTON_CAPABLE"/>
<!-- Only present if PVR_FEATURE_CLUSTER_GROUPING supported on the current device -->
<field name="compute_cluster" size="32" type="uint" feature="PVR_FEATURE_CLUSTER_GROUPING"/>
<!-- Only present if PVR_FEATURE_TPU_DM_GLOBAL_REGISTERS supported on the current device -->
<field name="tpu_tag_cdm_ctrl" size="32" type="uint" feature="PVR_FEATURE_TPU_DM_GLOBAL_REGISTERS"/>
<!-- Only present if PVR_FEATURE_CDM_USER_MODE_QUEUE supported on the current device -->
<field name="stream_start_offset" size="32" type="uint" feature="PVR_FEATURE_CDM_USER_MODE_QUEUE"/>
<!-- Only present if PVR_FEATURE_GPU_MULTICORE_SUPPORT supported on the current device -->
<field name="execute_count" size="32" type="uint" feature="PVR_FEATURE_GPU_MULTICORE_SUPPORT"/>
</stream>
<stream name="CMD_COMPUTE_EXT_BRN49927" length="1">
<field name="tpu" size="32" type="uint"/>
</stream>
<stream name="CMD_FRAG" length="100">
<field name="isp_scissor_base" size="64" type="address" shift="0"/>
<field name="isp_dbias_base" size="64" type="address" shift="0"/>
<field name="isp_oclqry_base" size="64" type="address" shift="0"/>
<field name="isp_zlsctl" size="64" type="address" shift="0"/>
<field name="isp_zload_store_base" size="64" type="address" shift="0"/>
<field name="isp_stencil_load_store_base" size="64" type="address" shift="0"/>
<!-- Only present if PVR_FEATURE_REQUIRES_FB_CDC_ZLS_SETUP supported on the current device -->
<field name="fb_cdc_zls" size="64" type="uint" feature="PVR_FEATURE_REQUIRES_FB_CDC_ZLS_SETUP"/>
<field name="pbe_word" size="1536" type="uint_array"/>
<field name="tpu_border_colour_table" size="64" type="uint"/>
<field name="pds_bgnd" size="192" type="uint_array"/>
<field name="pds_pr_bgnd" size="192" type="uint_array"/>
<field name="usc_clear_register" size="256" type="uint_array"/>
<field name="usc_pixel_output_ctrl" size="32" type="uint"/>
<field name="isp_bgobjdepth" size="32" type="uint"/>
<field name="isp_bgobjvals" size="32" type="uint"/>
<field name="isp_aa" size="32" type="uint"/>
<!-- Only present if PVR_FEATURE_S7_TOP_INFRASTRUCTURE supported on the current device -->
<field name="isp_xtp_pipe_enable" size="32" type="uint" feature="PVR_FEATURE_S7_TOP_INFRASTRUCTURE"/>
<field name="isp_ctl" size="32" type="uint"/>
<field name="event_pixel_pds_info" size="32" type="uint"/>
<!-- Only present if PVR_FEATURE_CLUSTER_GROUPING supported on the current device -->
<field name="pixel_phantom" size="32" type="uint" feature="PVR_FEATURE_CLUSTER_GROUPING"/>
<field name="view_idx" size="32" type="uint"/>
<field name="event_pixel_pds_data" size="32" type="uint"/>
<!-- Only present if PVR_FEATURE_GPU_MULTICORE_SUPPORT supported on the current device -->
<field name="isp_oclqry_stride" size="32" type="uint" feature="PVR_FEATURE_GPU_MULTICORE_SUPPORT"/>
<!-- Only present if PVR_FEATURE_ZLS_SUBTILE supported on the current device -->
<field name="isp_zls_pixels" size="32" type="uint" feature="PVR_FEATURE_ZLS_SUBTILE"/>
<!-- Only present if PVR_FEATURE_ISP_ZLS_D24_S8_PACKING_OGL_MODE supported on the current device -->
<field name="rgx_cr_blackpearl_fix" size="32" type="uint" feature="PVR_FEATURE_ISP_ZLS_D24_S8_PACKING_OGL_MODE"/>
<field name="zls_stride" size="32" type="uint"/>
<field name="sls_stride" size="32" type="uint"/>
<!-- Only present if PVR_FEATURE_GPU_MULTICORE_SUPPORT supported on the current device -->
<field name="execute_count" size="32" type="uint" feature="PVR_FEATURE_GPU_MULTICORE_SUPPORT"/>
</stream>
<stream name="CMD_FRAG_EXT_BRN47217" length="1">
<field name="isp_oclqry_stride" size="32" type="uint"/>
</stream>
<stream name="CMD_FRAG_EXT_BRN49927" length="1">
<field name="tpu" size="32" type="uint"/>
</stream>
<stream name="CMD_GEOM" length="13">
<field name="vdm_ctrl_stream_base" size="64" type="address" shift="0"/>
<field name="tpu_border_colour_table" size="64" type="uint"/>
<!-- Only present if PVR_FEATURE_VDM_DRAWINDIRECT supported on the current device -->
<field name="vdm_draw_indirect0" size="64" type="uint" feature="PVR_FEATURE_VDM_DRAWINDIRECT"/>
<!-- Only present if PVR_FEATURE_VDM_DRAWINDIRECT supported on the current device -->
<field name="vdm_draw_indirect1" size="32" type="uint" feature="PVR_FEATURE_VDM_DRAWINDIRECT"/>
<field name="ppp_ctrl" size="32" type="uint"/>
<field name="te_psg" size="32" type="uint"/>
<field name="vdm_context_resume_task0_size" size="32" type="uint"/>
<!-- Only present if PVR_FEATURE_VDM_OBJECT_LEVEL_LLS supported on the current device -->
<field name="vdm_context_resume_task3_size" size="32" type="uint" feature="PVR_FEATURE_VDM_OBJECT_LEVEL_LLS"/>
<field name="view_idx" size="32" type="uint"/>
<!-- Only present if PVR_FEATURE_TESSELLATION supported on the current device -->
<field name="pds_coeff_free_prog" size="32" type="uint" feature="PVR_FEATURE_TESSELLATION"/>
</stream>
<stream name="CMD_GEOM_EXT_BRN49927" length="1">
<field name="tpu" size="32" type="uint"/>
</stream>
<stream name="CMD_TRANSFER" length="43">
<field name="pds_bgnd0_base" size="64" type="address" shift="0"/>
<field name="pds_bgnd1_base" size="64" type="address" shift="0"/>
<field name="pds_bgnd3_sizeinfo" size="64" type="uint"/>
<field name="isp_mtile_base" size="64" type="address" shift="0"/>
<field name="pbr_wordx_mrty" size="576" type="uint_array"/>
<field name="isp_bgobjvals" size="32" type="uint"/>
<field name="usc_pixel_output_ctrl" size="32" type="uint"/>
<field name="usc_clear_register0" size="32" type="uint"/>
<field name="usc_clear_register1" size="32" type="uint"/>
<field name="usc_clear_register2" size="32" type="uint"/>
<field name="usc_clear_register3" size="32" type="uint"/>
<field name="isp_mtile_size" size="32" type="uint"/>
<field name="isp_render_origin" size="32" type="uint"/>
<field name="isp_ctl" size="32" type="uint"/>
<field name="isp_aa" size="32" type="uint"/>
<field name="event_pixel_pds_info" size="32" type="uint"/>
<field name="event_pixel_pds_code" size="32" type="uint"/>
<field name="event_pixel_pds_data" size="32" type="uint"/>
<field name="isp_render" size="32" type="uint"/>
<field name="isp_rgn" size="32" type="uint"/>
<!-- Only present if PVR_FEATURE_S7_TOP_INFRASTRUCTURE supported on the current device -->
<field name="isp_xtp_pipe_enable" size="32" type="uint" feature="PVR_FEATURE_S7_TOP_INFRASTRUCTURE"/>
<!-- Only present if PVR_FEATURE_GPU_MULTICORE_SUPPORT supported on the current device -->
<field name="frag_screen" size="32" type="uint" feature="PVR_FEATURE_GPU_MULTICORE_SUPPORT"/>
</stream>
<stream name="STATIC_COMPUTE_CONTEXT_STATE" length="14">
<field name="cdm_reg_context_pds0" size="64" type="uint"/>
<field name="cdm_reg_context_pds1" size="64" type="uint"/>
<field name="cdm_reg_terminate_pds0" size="64" type="uint"/>
<field name="cdm_reg_terminate_pds1" size="64" type="uint"/>
<field name="cdm_reg_resume_pds0" size="64" type="uint"/>
<field name="cdm_reg_context_pds0_b" size="64" type="uint"/>
<field name="cdm_reg_resume_pds0_b" size="64" type="uint"/>
</stream>
<stream name="STATIC_RENDER_CONTEXT_STATE" length="46">
<field name="geom_reg_vdm_context_state_base_addr" size="64" type="address" shift="0"/>
<field name="geom_reg_vdm_context_state_resume_addr" size="64" type="address" shift="0"/>
<field name="geom_reg_ta_context_state_base_addr" size="64" type="address" shift="0"/>
<field name="geom_state0_geom_reg_vdm_context_store_task0" size="64" type="uint"/>
<field name="geom_state0_geom_reg_vdm_context_store_task1" size="64" type="uint"/>
<field name="geom_state0_geom_reg_vdm_context_store_task2" size="64" type="uint"/>
<field name="geom_state0_geom_reg_vdm_context_store_task3" size="64" type="uint"/>
<field name="geom_state0_geom_reg_vdm_context_store_task4" size="64" type="uint"/>
<field name="geom_state0_geom_reg_vdm_context_resume_task0" size="64" type="uint"/>
<field name="geom_state0_geom_reg_vdm_context_resume_task1" size="64" type="uint"/>
<field name="geom_state0_geom_reg_vdm_context_resume_task2" size="64" type="uint"/>
<field name="geom_state0_geom_reg_vdm_context_resume_task3" size="64" type="uint"/>
<field name="geom_state0_geom_reg_vdm_context_resume_task4" size="64" type="uint"/>
<field name="geom_state1_geom_reg_vdm_context_store_task0" size="64" type="uint"/>
<field name="geom_state1_geom_reg_vdm_context_store_task1" size="64" type="uint"/>
<field name="geom_state1_geom_reg_vdm_context_store_task2" size="64" type="uint"/>
<field name="geom_state1_geom_reg_vdm_context_store_task3" size="64" type="uint"/>
<field name="geom_state1_geom_reg_vdm_context_store_task4" size="64" type="uint"/>
<field name="geom_state1_geom_reg_vdm_context_resume_task0" size="64" type="uint"/>
<field name="geom_state1_geom_reg_vdm_context_resume_task1" size="64" type="uint"/>
<field name="geom_state1_geom_reg_vdm_context_resume_task2" size="64" type="uint"/>
<field name="geom_state1_geom_reg_vdm_context_resume_task3" size="64" type="uint"/>
<field name="geom_state1_geom_reg_vdm_context_resume_task4" size="64" type="uint"/>
</stream>
</csbgen>