[Mesa-dev] [PATCH] radv/xfb: don't increase offset by component mask start.

Dave Airlie airlied at gmail.com
Wed Oct 31 02:58:10 UTC 2018


From: Dave Airlie <airlied at redhat.com>

This is incorrect, the offset is into the buffer, and it's legal
to write

loc 0,0 -> buffer0, offset 0
loc 0,1 -> buffer1, offset 0

This fixes a bunch of piglits running on my zink xfb code on
radv.

Fixes: 6c21645046 (radv: emit stream outputs for vertex and tessellation stages)
---
 src/amd/vulkan/radv_nir_to_llvm.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c
index 5ea1755b2a6..f56eb01dc52 100644
--- a/src/amd/vulkan/radv_nir_to_llvm.c
+++ b/src/amd/vulkan/radv_nir_to_llvm.c
@@ -2512,9 +2512,6 @@ radv_emit_stream_output(struct radv_shader_context *ctx,
 	/* Get the first component. */
 	start = ffs(output->component_mask) - 1;
 
-	/* Adjust the destination offset. */
-	offset += start * 4;
-
 	/* Load the output as int. */
 	for (int i = 0; i < num_comps; i++) {
 		out[i] = ac_to_integer(&ctx->ac,
-- 
2.17.2



More information about the mesa-dev mailing list