From 78dc0bc58910fe5bae7d8a573e9ee64a0026f685 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Tue, 6 Jun 2023 10:38:26 +0200 Subject: [PATCH] broadcom/cle: fix up viewport offset packet definition for V3D 4.1+ MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit These are split between fine and coarse coordinates. We have only been using fine until now, so we kept the same naming convention we had prior to V3D 4.1 for simplicity, but we will start using the coarse coordinates soon too. Also, the signedness was reversed: coarse coordinates are signed and fine coordinates are unsigned. Reviewed-by: Alejandro Piñeiro Part-of: --- src/broadcom/cle/v3d_packet_v33.xml | 8 ++++---- src/broadcom/vulkan/v3dvx_cmd_buffer.c | 4 ++-- src/gallium/drivers/v3d/v3dx_emit.c | 5 +++++ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/broadcom/cle/v3d_packet_v33.xml b/src/broadcom/cle/v3d_packet_v33.xml index 9d1a38a..a0242b5 100644 --- a/src/broadcom/cle/v3d_packet_v33.xml +++ b/src/broadcom/cle/v3d_packet_v33.xml @@ -896,10 +896,10 @@ - - - - + + + + diff --git a/src/broadcom/vulkan/v3dvx_cmd_buffer.c b/src/broadcom/vulkan/v3dvx_cmd_buffer.c index f500c58..024decb 100644 --- a/src/broadcom/vulkan/v3dvx_cmd_buffer.c +++ b/src/broadcom/vulkan/v3dvx_cmd_buffer.c @@ -1103,8 +1103,8 @@ v3dX(cmd_buffer_emit_viewport)(struct v3dv_cmd_buffer *cmd_buffer) } cl_emit(&job->bcl, VIEWPORT_OFFSET, vp) { - vp.viewport_centre_x_coordinate = vptranslate[0]; - vp.viewport_centre_y_coordinate = vptranslate[1]; + vp.fine_x = vptranslate[0]; + vp.fine_y = vptranslate[1]; } cmd_buffer->state.dirty &= ~V3DV_CMD_DIRTY_VIEWPORT; diff --git a/src/gallium/drivers/v3d/v3dx_emit.c b/src/gallium/drivers/v3d/v3dx_emit.c index becd196..5303eaf 100644 --- a/src/gallium/drivers/v3d/v3dx_emit.c +++ b/src/gallium/drivers/v3d/v3dx_emit.c @@ -587,10 +587,15 @@ v3dX(emit_state)(struct pipe_context *pctx) } cl_emit(&job->bcl, VIEWPORT_OFFSET, vp) { +#if V3D_VERSION < 41 vp.viewport_centre_x_coordinate = v3d->viewport.translate[0]; vp.viewport_centre_y_coordinate = v3d->viewport.translate[1]; +#else + vp.fine_x = v3d->viewport.translate[0]; + vp.fine_y = v3d->viewport.translate[1]; +#endif } } -- 2.7.4