From ee1cb894d6a93260b8420f723515d1cf89fd79db Mon Sep 17 00:00:00 2001 From: Patrick Lerda Date: Sun, 2 Feb 2025 20:46:12 +0100 Subject: [PATCH] r600: fix evergreen_emit_vertex_buffers() related cl regression For instance, this issue is triggered with "piglit/bin/cl-custom-buffer-flags": Segmentation fault Fixes: 81889f4d5c1 ("r600: ensure that the last vertex is always processed on evergreen") Signed-off-by: Patrick Lerda Part-of: --- src/gallium/drivers/r600/evergreen_state.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index d29cde01fe9..ad4fa3a9fed 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -2142,7 +2142,8 @@ static void evergreen_emit_vertex_buffers(struct r600_context *rctx, radeon_emit(cs, PKT3(PKT3_SET_RESOURCE, 8, 0) | pkt_flags); radeon_emit(cs, (resource_offset + buffer_index) * 8); radeon_emit(cs, va); /* RESOURCEi_WORD0 */ - radeon_emit(cs, rbuffer->b.b.width0 - vb->buffer_offset - 1 + shader->width_correction[buffer_index]); /* RESOURCEi_WORD1 */ + radeon_emit(cs, rbuffer->b.b.width0 - vb->buffer_offset - 1 + + (shader ? shader->width_correction[buffer_index] : 0)); /* RESOURCEi_WORD1 */ radeon_emit(cs, /* RESOURCEi_WORD2 */ S_030008_ENDIAN_SWAP(r600_endian_swap(32)) | S_030008_STRIDE(stride) |