Marcin KoĆcielnicki
2010-Feb-05 17:01 UTC
[Nouveau] [PATCH] nv50/accel: Fix mangled A8+A8 shader.
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. --- 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); -- 1.6.4.1
Christoph Bumiller
2010-Feb-05 17:14 UTC
[Nouveau] [PATCH] nv50/accel: Fix mangled A8+A8 shader.
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);
Possibly Parallel Threads
- [PATCH] nv50/exa: use dual-source blending for component-alpha composite
- [PATCH] nv50: fix crash in NV50SyncToVBlank
- [Bug 89730] New: NV50: LightDM GTK+ Greeter Background - inconsistent display
- [PATCH] use defined method names where available
- [PATCH 1/7] nv50: use SIFC for TIC, TSC upload