mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-23 06:28:08 +02:00
iris,anv/xe2+: Use pipelined variant of 3DSTATE_DRAWING_RECTANGLE.
Reviewed-by: Rohan Garg <rohan.garg@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29562>
This commit is contained in:
parent
576c9e3af2
commit
8e61d32db8
3 changed files with 32 additions and 2 deletions
|
|
@ -1232,6 +1232,12 @@ toggle_protected(struct iris_batch *batch)
|
|||
#endif
|
||||
}
|
||||
|
||||
#if GFX_VER >= 20
|
||||
#define _3DSTATE_DRAWING_RECTANGLE GENX(3DSTATE_DRAWING_RECTANGLE_FAST)
|
||||
#else
|
||||
#define _3DSTATE_DRAWING_RECTANGLE GENX(3DSTATE_DRAWING_RECTANGLE)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Upload the initial GPU state for a render context.
|
||||
*
|
||||
|
|
@ -1383,7 +1389,7 @@ iris_init_render_context(struct iris_batch *batch)
|
|||
* instead include the render target dimensions in the viewport, so
|
||||
* viewport extents clipping takes care of pruning stray geometry.
|
||||
*/
|
||||
iris_emit_cmd(batch, GENX(3DSTATE_DRAWING_RECTANGLE), rect) {
|
||||
iris_emit_cmd(batch, _3DSTATE_DRAWING_RECTANGLE, rect) {
|
||||
rect.ClippedDrawingRectangleXMax = UINT16_MAX;
|
||||
rect.ClippedDrawingRectangleYMax = UINT16_MAX;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -439,6 +439,24 @@
|
|||
<field name="LOD" start="240" end="243" type="uint" />
|
||||
<field name="Render Target View Extent" start="245" end="255" type="uint" />
|
||||
</instruction>
|
||||
<instruction name="3DSTATE_DRAWING_RECTANGLE_FAST" bias="2" length="4" engine="render">
|
||||
<field name="DWord Length" start="0" end="7" type="uint" default="2" />
|
||||
<field name="Core Mode Select" start="14" end="15" type="uint">
|
||||
<value name="Legacy" value="0" />
|
||||
<value name="Core 0 Enabled" value="1" />
|
||||
<value name="Core 1 Enabled" value="2" />
|
||||
</field>
|
||||
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="0" />
|
||||
<field name="3D Command Opcode" start="24" end="26" type="uint" default="0" />
|
||||
<field name="Command SubType" start="27" end="28" type="uint" default="3" />
|
||||
<field name="Command Type" start="29" end="31" type="uint" default="3" />
|
||||
<field name="Clipped Drawing Rectangle X Min" start="32" end="47" type="uint" />
|
||||
<field name="Clipped Drawing Rectangle Y Min" start="48" end="63" type="uint" />
|
||||
<field name="Clipped Drawing Rectangle X Max" start="64" end="79" type="uint" />
|
||||
<field name="Clipped Drawing Rectangle Y Max" start="80" end="95" type="uint" />
|
||||
<field name="Drawing Rectangle Origin X" start="96" end="111" type="int" />
|
||||
<field name="Drawing Rectangle Origin Y" start="112" end="127" type="int" />
|
||||
</instruction>
|
||||
<instruction name="3DSTATE_GS" bias="2" length="10" engine="render">
|
||||
<field name="DWord Length" start="0" end="7" type="uint" default="8" />
|
||||
<field name="3D Command Sub Opcode" start="16" end="23" type="uint" default="17" />
|
||||
|
|
|
|||
|
|
@ -338,6 +338,12 @@ init_common_queue_state(struct anv_queue *queue, struct anv_batch *batch)
|
|||
#endif
|
||||
}
|
||||
|
||||
#if GFX_VER >= 20
|
||||
#define _3DSTATE_DRAWING_RECTANGLE GENX(3DSTATE_DRAWING_RECTANGLE_FAST)
|
||||
#else
|
||||
#define _3DSTATE_DRAWING_RECTANGLE GENX(3DSTATE_DRAWING_RECTANGLE)
|
||||
#endif
|
||||
|
||||
static VkResult
|
||||
init_render_queue_state(struct anv_queue *queue, bool is_companion_rcs_batch)
|
||||
{
|
||||
|
|
@ -369,7 +375,7 @@ init_render_queue_state(struct anv_queue *queue, bool is_companion_rcs_batch)
|
|||
|
||||
anv_batch_emit(batch, GENX(3DSTATE_AA_LINE_PARAMETERS), aa);
|
||||
|
||||
anv_batch_emit(batch, GENX(3DSTATE_DRAWING_RECTANGLE), rect) {
|
||||
anv_batch_emit(batch, _3DSTATE_DRAWING_RECTANGLE, rect) {
|
||||
rect.ClippedDrawingRectangleYMin = 0;
|
||||
rect.ClippedDrawingRectangleXMin = 0;
|
||||
rect.ClippedDrawingRectangleYMax = UINT16_MAX;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue