mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-27 12:40:09 +01:00
intel/genxml: Define 3DSTATE_SUBSLICE_HASH_TABLE command for Gen12 and Gen12.5.
This command allows programming custom pixel hashing tables controlling the balancing of load across pixel pipes. Rather confusingly 3DSTATE_SLICE_TABLE_STATE_POINTERS was serving the same purpose on Gen11: A pixel is mapped to the pixel pipe with index specified by the entry in the table corresponding to the LSBs of the pixel coordinates [Yes you read right the entries are neither subslice nor slice indices!]. Either a 2-way or a 3-way table can be programmed based on whether the platform has two or three pixel pipes per slice. In addition the 16x8 tables defined below can hold two separate 8x8 tables when in DUAL_TABLE mode (which AFAIA is only useful for platforms with multiple asymmetric slices -- I.e. no production platforms as of today to my knowledge). Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8749>
This commit is contained in:
parent
a2a17bf25e
commit
ab076e19ed
2 changed files with 60 additions and 0 deletions
|
|
@ -2566,6 +2566,36 @@
|
|||
<field name="Last Pixel Enable" start="127" end="127" type="bool"/>
|
||||
</instruction>
|
||||
|
||||
<instruction name="3DSTATE_SUBSLICE_HASH_TABLE" bias="2" length="14">
|
||||
<field name="DWord Length" start="0" end="7" type="uint" default="12"/>
|
||||
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="31"/>
|
||||
<field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
|
||||
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
|
||||
<field name="Command Type" start="29" end="31" type="uint" default="3"/>
|
||||
<group count="8" start="32" size="2">
|
||||
<field name="Slice Hash Control" start="0" end="1" type="uint">
|
||||
<value name="COMPUTED" value="0"/>
|
||||
<value name="UNBALANCED_TABLE_0" value="1"/>
|
||||
<value name="TABLE_0" value="2"/>
|
||||
<value name="TABLE_1" value="3"/>
|
||||
</field>
|
||||
</group>
|
||||
<field name="Slice Table Mode" start="62" end="63" type="uint">
|
||||
<value name="SINGLE_TABLE" value="0"/>
|
||||
<value name="DUAL_TABLE" value="1"/>
|
||||
</field>
|
||||
<group count="8" start="64" size="16">
|
||||
<group count="16" start="0" size="1">
|
||||
<field name="Two Way Table Entry" start="0" end="0" type="uint"/>
|
||||
</group>
|
||||
</group>
|
||||
<group count="8" start="192" size="32">
|
||||
<group count="16" start="0" size="2">
|
||||
<field name="Three Way Table Entry" start="0" end="1" type="uint"/>
|
||||
</group>
|
||||
</group>
|
||||
</instruction>
|
||||
|
||||
<instruction name="3DSTATE_SLICE_TABLE_STATE_POINTERS" bias="2" length="2">
|
||||
<field name="DWord Length" start="0" end="7" type="uint" default="0"/>
|
||||
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="32"/>
|
||||
|
|
|
|||
|
|
@ -2574,6 +2574,36 @@
|
|||
<field name="Last Pixel Enable" start="127" end="127" type="bool"/>
|
||||
</instruction>
|
||||
|
||||
<instruction name="3DSTATE_SUBSLICE_HASH_TABLE" bias="2" length="14">
|
||||
<field name="DWord Length" start="0" end="7" type="uint" default="12"/>
|
||||
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="31"/>
|
||||
<field name="3D Command Opcode" start="24" end="26" type="uint" default="1"/>
|
||||
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
|
||||
<field name="Command Type" start="29" end="31" type="uint" default="3"/>
|
||||
<group count="8" start="32" size="2">
|
||||
<field name="Slice Hash Control" start="0" end="1" type="uint">
|
||||
<value name="COMPUTED" value="0"/>
|
||||
<value name="UNBALANCED_TABLE_0" value="1"/>
|
||||
<value name="TABLE_0" value="2"/>
|
||||
<value name="TABLE_1" value="3"/>
|
||||
</field>
|
||||
</group>
|
||||
<field name="Slice Table Mode" start="62" end="63" type="uint">
|
||||
<value name="SINGLE_TABLE" value="0"/>
|
||||
<value name="DUAL_TABLE" value="1"/>
|
||||
</field>
|
||||
<group count="8" start="64" size="16">
|
||||
<group count="16" start="0" size="1">
|
||||
<field name="Two Way Table Entry" start="0" end="0" type="uint"/>
|
||||
</group>
|
||||
</group>
|
||||
<group count="8" start="192" size="32">
|
||||
<group count="16" start="0" size="2">
|
||||
<field name="Three Way Table Entry" start="0" end="1" type="uint"/>
|
||||
</group>
|
||||
</group>
|
||||
</instruction>
|
||||
|
||||
<instruction name="3DSTATE_SLICE_TABLE_STATE_POINTERS" bias="2" length="2">
|
||||
<field name="DWord Length" start="0" end="7" type="uint" default="0"/>
|
||||
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="32"/>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue