From 8e61d32db8f6f21e80bb7996db66dad51c799687 Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Mon, 17 Jun 2024 14:07:48 -0700 Subject: [PATCH] iris,anv/xe2+: Use pipelined variant of 3DSTATE_DRAWING_RECTANGLE. Reviewed-by: Rohan Garg Reviewed-by: Lionel Landwerlin Part-of: --- src/gallium/drivers/iris/iris_state.c | 8 +++++++- src/intel/genxml/gen20.xml | 18 ++++++++++++++++++ src/intel/vulkan/genX_init_state.c | 8 +++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index c95ded598c1..a5a27f3570b 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -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; } diff --git a/src/intel/genxml/gen20.xml b/src/intel/genxml/gen20.xml index 895dcf5319d..e911791bfeb 100644 --- a/src/intel/genxml/gen20.xml +++ b/src/intel/genxml/gen20.xml @@ -439,6 +439,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/intel/vulkan/genX_init_state.c b/src/intel/vulkan/genX_init_state.c index 2abe70ce8f8..83aa7e401b8 100644 --- a/src/intel/vulkan/genX_init_state.c +++ b/src/intel/vulkan/genX_init_state.c @@ -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;