Module: Mesa
Branch: main
Commit: be82fe7ab99670bdd246909e308781bf37068872
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=be82fe7ab99670bdd246909e308781bf37068872

Author: Sarah Walker <sarah.wal...@imgtec.com>
Date:   Thu Apr  6 17:01:25 2023 +0100

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

Co-authored-by: Karmjit Mahil <karmjit.ma...@imgtec.com>
Signed-off-by: Sarah Walker <sarah.wal...@imgtec.com>
Signed-off-by: Karmjit Mahil <karmjit.ma...@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15507>

---

 src/imagination/csbgen/rogue_kmd_stream.xml | 168 ++++++++++++++++++++++++++++
 1 file changed, 168 insertions(+)

diff --git a/src/imagination/csbgen/rogue_kmd_stream.xml 
b/src/imagination/csbgen/rogue_kmd_stream.xml
index 882ac5c90cb..8d3c24e0733 100644
--- a/src/imagination/csbgen/rogue_kmd_stream.xml
+++ b/src/imagination/csbgen/rogue_kmd_stream.xml
@@ -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>

Reply via email to