[Nouveau] [PATCH] nv50/accel: Fix mangled A8+A8 shader.

Christoph Bumiller e0425955 at student.tuwien.ac.at
Fri Feb 5 09:14:55 PST 2010


On 02/05/2010 06:01 PM, Marcin Kościelnicki wrote:
> Turns out we used a misaligned long instruction near the end, and the
> shader was getting killed after writing R, A components. This has gone
> unnoticed since the remaining G, B outputs aren't actually used.

Thank you, pushed.

> ---
>  src/nv50_accel.c |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/src/nv50_accel.c b/src/nv50_accel.c
> index 5fa539c..1218e18 100644
> --- a/src/nv50_accel.c
> +++ b/src/nv50_accel.c
> @@ -291,7 +291,7 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn)
>  	OUT_RING  (chan, (0 << NV50TCL_CB_DEF_SET_BUFFER_SHIFT) | 0x4000);
>  	BEGIN_RING(chan, tesla, NV50TCL_CB_ADDR, 1);
>  	OUT_RING  (chan, 0);
> -	BEGIN_RING_NI(chan, tesla, NV50TCL_CB_DATA(0), 15);
> +	BEGIN_RING_NI(chan, tesla, NV50TCL_CB_DATA(0), 16);
>  	OUT_RING  (chan, 0x80000000);
>  	OUT_RING  (chan, 0x90000004);
>  	OUT_RING  (chan, 0x82030208);
> @@ -302,7 +302,8 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn)
>  	OUT_RING  (chan, 0x00008784);
>  	OUT_RING  (chan, 0xf0400209);
>  	OUT_RING  (chan, 0x00008784);
> -	OUT_RING  (chan, 0xc002000c);
> +	OUT_RING  (chan, 0xc002000d);
> +	OUT_RING  (chan, 0x00000780);
>  	OUT_RING  (chan, 0x10008600);
>  	OUT_RING  (chan, 0x10008604);
>  	OUT_RING  (chan, 0x10000609);



More information about the Nouveau mailing list