From 8d6af93e76bb9e592293b632b22b2b756cc0cae8 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sun, 22 Jan 2017 12:23:27 -0500 Subject: [PATCH] freedreno/a5xx: set fragcoordxy properly What a3xx docs call IJPERSPCENTERREGID.. the xy coord passed into bary.f. We were incorrectly setting both this and gl_FragCoord.xy to the same register resulting in all sorts of hilarity. Fixes stk, vdrift, 0ad, probably a bunch others. Signed-off-by: Rob Clark Cc: "17.0" --- src/gallium/drivers/freedreno/a5xx/fd5_program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_program.c b/src/gallium/drivers/freedreno/a5xx/fd5_program.c index d297131c3fc..1738b2f9a31 100644 --- a/src/gallium/drivers/freedreno/a5xx/fd5_program.c +++ b/src/gallium/drivers/freedreno/a5xx/fd5_program.c @@ -365,7 +365,7 @@ fd5_program_emit(struct fd_ringbuffer *ring, struct fd5_emit *emit) face_regid = s[FS].v->frag_face ? regid(0,0) : regid(63,0); coord_regid = s[FS].v->frag_coord ? regid(0,0) : regid(63,0); zwcoord_regid = s[FS].v->frag_coord ? regid(0,2) : regid(63,0); - vcoord_regid = (s[FS].v->total_in > 0) ? regid(0,0) : regid(63,0); + vcoord_regid = (s[FS].v->total_in > 0) ? s[FS].v->pos_regid : regid(63,0); /* we could probably divide this up into things that need to be * emitted if frag-prog is dirty vs if vert-prog is dirty.. -- 2.30.2