[Nouveau] [Bug 81363] [NV84] Black screen after UDEV is intialized

2015-12-18 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=81363

--- Comment #11 from Jeff  ---
This is still not working on Kernel 4.2. But during this test I had the laptop
connected to a DVI output. And the DVI output worked great. So it seems this is
not working for the LVDS only, which has the black light on but remains
blank/black.

I noticed on a Google search that there had been blank screen issues on
pre-nv50 drivers: http://patchwork.ozlabs.org/patch/215168/

I wonder if this is something that exists on my card as well. I was glad to see
the display working on the DVI output, but I am hoping to have this working on
LVDS at some point.

Thanks

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] Debugging INVALID_OPCODE / MULTIPLE_WARP_ERRORS ?

2015-12-18 Thread Ilia Mirkin
On Fri, Dec 18, 2015 at 7:55 AM, Hans de Goede  wrote:
> Hi,
>
> On 16-12-15 18:24, Ilia Mirkin wrote:
>>
>> I believe that your problem is this:
>>
>>  /*01a0*/   LD R8, [R8];
>> /* 0x80821c85 */
>>
>> That needs to be LD.E (and your ST's need to be ST.E). You're using a
>> 32-bit gmem address, but you need to be using a 64-bit one. I believe
>> the 32-bit ones work on fermi, but afaik not on Kepler.
>
>
> I do not think that is the problem, src/gallium/tests/trivial/compute
> test_input_global() has:
>
> COMP
> DCL SV[0], THREAD_ID
> DCL TEMP[0], LOCAL
> DCL TEMP[1], LOCAL
> IMM[0] UINT32 {8, 0, 0, 0}
>   0: BGNSUB :0
>   1:   UMUL TEMP[0], SV[0], IMM[0]
>   2:   LOAD TEMP[1].xy, RES[32764], TEMP[0]
>   3:   LOAD TEMP[0].x, RES[32767], TEMP[1].
>   4:   UADD TEMP[1].x, TEMP[0], -TEMP[1]
>   5:   STORE RES[32767].x, TEMP[1]., TEMP[1]
>   6:   RET
>   7: ENDSUB
>
> Which translates to:
>
> SUB:0 ()
> BB:0 (7 instructions) - df = { }
>  -> BB:1 (cross)
>   0: rdsv u32 $r0 sv[TID:0] (8)
>   1: shl u32 $r2 $r0 0x0003 (8)
>   2: ld u64 $r0d c0[$r2+0x0] (8)
>   3: ld u32 $r2 g[$r1+0x0] (8)
>   4: add u32 $r0 $r2 neg $r0 (8)
>   5: st u32 # g[$r1+0x0] $r0 (8)
>   6: ret (8)
> BB:1 (0 instructions) - idom = BB:0, df = { }
>
> MAIN:-1 ()
> BB:0 (0 instructions) - df = { }
>
> Which is also using 32 bits loads from global memory
> and that works fine on my GK107 [GeForce GT 740].
>
> I think that for now I'll just focus on translating
> the tests from rc/gallium/tests/trivial/compute.c to
> opencl and getting the entire opencl -> llvm -> tgsi ->
> nouveau_compiler -> hardware chain to work that way.
>
> Still would be good to get nbody.c to work though.

H odd. Not sure how 32-bit addresses work there. (Or on Fermi
tbh.) Probably assumes that the upper 8 bits of the 40-bit VA are 0?
Anyways, another thing I remember is that I couldn't get barriers to
work at all with tess (with iirc, invalid opcode errors). My solution
to the problem was to just discard them, since that's what the blob
seemed to do, and I assumed they knew what they were doing.

Perhaps I was just emitting it wrong. I'd take a careful look at how
the blob emits that BAR.SYNC primitive.

Cheers,

  -ilia
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] [libdrm v3 01/14] nouveau: import and install a selection of nvif headers from the kernel

2015-12-18 Thread Samuel Pitoiset

Hi Ben,

I don't feel comfortable enough with the libdrm nouveau code to give you 
my Rb for this series, but as this seems work as expected, this series is:


Tested-by: Samuel Pitoiset 

Thanks for your work!

On 12/17/2015 12:20 AM, Ben Skeggs wrote:

From: Ben Skeggs 

This commit also modifies the install path of the main libdrm_nouveau
header to be under a nouveau/ subdirectory.

Signed-off-by: Ben Skeggs 
---
  include/drm/nouveau_drm.h|   1 +
  nouveau/Makefile.am  |  11 +++-
  nouveau/libdrm_nouveau.pc.in |   2 +-
  nouveau/nvif/cl0080.h|  45 ++
  nouveau/nvif/cl9097.h|  44 ++
  nouveau/nvif/class.h | 141 +++
  nouveau/nvif/if0002.h|  38 
  nouveau/nvif/if0003.h|  33 ++
  nouveau/nvif/ioctl.h | 132 
  nouveau/nvif/unpack.h|  28 +
  10 files changed, 473 insertions(+), 2 deletions(-)
  create mode 100644 nouveau/nvif/cl0080.h
  create mode 100644 nouveau/nvif/cl9097.h
  create mode 100644 nouveau/nvif/class.h
  create mode 100644 nouveau/nvif/if0002.h
  create mode 100644 nouveau/nvif/if0003.h
  create mode 100644 nouveau/nvif/ioctl.h
  create mode 100644 nouveau/nvif/unpack.h

diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h
index 87aefc5..e418f9f 100644
--- a/include/drm/nouveau_drm.h
+++ b/include/drm/nouveau_drm.h
@@ -200,6 +200,7 @@ struct drm_nouveau_sarea {
  #define DRM_NOUVEAU_GROBJ_ALLOC0x04
  #define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC  0x05
  #define DRM_NOUVEAU_GPUOBJ_FREE0x06
+#define DRM_NOUVEAU_NVIF   0x07
  #define DRM_NOUVEAU_GEM_NEW0x40
  #define DRM_NOUVEAU_GEM_PUSHBUF0x41
  #define DRM_NOUVEAU_GEM_CPU_PREP   0x42
diff --git a/nouveau/Makefile.am b/nouveau/Makefile.am
index 25ea6dc..76cdeca 100644
--- a/nouveau/Makefile.am
+++ b/nouveau/Makefile.am
@@ -14,9 +14,18 @@ libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@

  libdrm_nouveau_la_SOURCES = $(LIBDRM_NOUVEAU_FILES)

-libdrm_nouveauincludedir = ${includedir}/libdrm
+libdrm_nouveauincludedir = ${includedir}/libdrm/nouveau
  libdrm_nouveauinclude_HEADERS = $(LIBDRM_NOUVEAU_H_FILES)

+libdrm_nouveaunvifincludedir = ${includedir}/libdrm/nouveau/nvif
+libdrm_nouveaunvifinclude_HEADERS = nvif/class.h \
+   nvif/cl0080.h \
+   nvif/cl9097.h \
+   nvif/if0002.h \
+   nvif/if0003.h \
+   nvif/ioctl.h \
+   nvif/unpack.h
+
  pkgconfigdir = @pkgconfigdir@
  pkgconfig_DATA = libdrm_nouveau.pc

diff --git a/nouveau/libdrm_nouveau.pc.in b/nouveau/libdrm_nouveau.pc.in
index 9abfd81..7d0622e 100644
--- a/nouveau/libdrm_nouveau.pc.in
+++ b/nouveau/libdrm_nouveau.pc.in
@@ -7,5 +7,5 @@ Name: libdrm_nouveau
  Description: Userspace interface to nouveau kernel DRM services
  Version: @PACKAGE_VERSION@
  Libs: -L${libdir} -ldrm_nouveau
-Cflags: -I${includedir} -I${includedir}/libdrm
+Cflags: -I${includedir} -I${includedir}/libdrm -I${includedir}/libdrm/nouveau
  Requires.private: libdrm
diff --git a/nouveau/nvif/cl0080.h b/nouveau/nvif/cl0080.h
new file mode 100644
index 000..331620a
--- /dev/null
+++ b/nouveau/nvif/cl0080.h
@@ -0,0 +1,45 @@
+#ifndef __NVIF_CL0080_H__
+#define __NVIF_CL0080_H__
+
+struct nv_device_v0 {
+   __u8  version;
+   __u8  pad01[7];
+   __u64 device;   /* device identifier, ~0 for client default */
+};
+
+#define NV_DEVICE_V0_INFO  0x00
+#define NV_DEVICE_V0_TIME  0x01
+
+struct nv_device_info_v0 {
+   __u8  version;
+#define NV_DEVICE_INFO_V0_IGP  0x00
+#define NV_DEVICE_INFO_V0_PCI  0x01
+#define NV_DEVICE_INFO_V0_AGP  0x02
+#define NV_DEVICE_INFO_V0_PCIE 0x03
+#define NV_DEVICE_INFO_V0_SOC  0x04
+   __u8  platform;
+   __u16 chipset;  /* from NV_PMC_BOOT_0 */
+   __u8  revision; /* from NV_PMC_BOOT_0 */
+#define NV_DEVICE_INFO_V0_TNT  0x01
+#define NV_DEVICE_INFO_V0_CELSIUS  0x02
+#define NV_DEVICE_INFO_V0_KELVIN   0x03
+#define NV_DEVICE_INFO_V0_RANKINE  0x04
+#define NV_DEVICE_INFO_V0_CURIE0x05
+#define NV_DEVICE_INFO_V0_TESLA0x06
+#define NV_DEVICE_INFO_V0_FERMI0x07
+#define NV_DEVICE_INFO_V0_KEPLER

Re: [Nouveau] [mesa v3 8/9] nvc0: remove use of deprecated sw class identifier

2015-12-18 Thread Emil Velikov
On 18 December 2015 at 15:24, Samuel Pitoiset  wrote:
> On 12/18/2015 11:19 AM, Emil Velikov wrote:
>>
>> The commit summary "remove use of deprecated..." is no longer
>> applicable. Feel free to tweak (use nvif provided class name/define ?)
>> before pushing.
>
>
> Well, the commit summary is fine by me because the old sw class identifier
> is actually deprecated with that new interface and won"t work if it's not
> updated accordingly.
>
> But, feel free to change it. :-)
>
Indeed you're correct. I got mesmerised with the *906e repetition.
Comment/suggestion withdraw - sorry for the noise.

-Emil
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] [mesa v3 8/9] nvc0: remove use of deprecated sw class identifier

2015-12-18 Thread Samuel Pitoiset



On 12/18/2015 11:19 AM, Emil Velikov wrote:

The commit summary "remove use of deprecated..." is no longer
applicable. Feel free to tweak (use nvif provided class name/define ?)
before pushing.


Well, the commit summary is fine by me because the old sw class 
identifier is actually deprecated with that new interface and won"t work 
if it's not updated accordingly.


But, feel free to change it. :-)



-Emil
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] Debugging INVALID_OPCODE / MULTIPLE_WARP_ERRORS ?

2015-12-18 Thread Hans de Goede

Hi,

On 16-12-15 18:34, Ilia Mirkin wrote:

BTW, you may be interested in
https://github.com/imirkin/mesa/commits/atomic3 which has working
ARB_shader_atomic_counters and ARB_shader_storage_buffer_object
support (while ripping out things like TGSI_FILE_RESOURCE).


Interesting, good to see progress on this.


Still
working on proper memory qualifier support, and obviously need to do
some cleanup before upstreaming. Should be getting into a pushable
state probably early January.


I'm looking forward to seeing this upstream, and I'll keep this in
mind during my own work.

Regards,

Hans







Cheers,

   -ilia

On Wed, Dec 16, 2015 at 12:24 PM, Ilia Mirkin  wrote:

I believe that your problem is this:

 /*01a0*/   LD R8, [R8];
/* 0x80821c85 */

That needs to be LD.E (and your ST's need to be ST.E). You're using a
32-bit gmem address, but you need to be using a 64-bit one. I believe
the 32-bit ones work on fermi, but afaik not on Kepler.

Cheers,

   -ilia



On Wed, Dec 16, 2015 at 12:06 PM, Hans de Goede  wrote:

Hi,

On 15-12-15 20:04, Ilia Mirkin wrote:


Also, where's the exit op? Perhaps what's happening is that you don't
have an exit and it just goes off executing into the ether?



Sorry I only included a small bit of the program in my original mail
because I found the use of "MOV" instructions to load constants
suspicious, is that normal ?

I've put a log with NV50_PROG_DEBUG=1 output here:

https://fedorapeople.org/~jwrdegoede/nbody.log

nvdisasm -b SM30 for the generated binary code is here:

https://fedorapeople.org/~jwrdegoede/nbody.disasm

There are already .tgsi, .hex and .bin files there if
you find those easier to use then the
NV50_PROG_DEBUG=1 output.




On Tue, Dec 15, 2015 at 12:00 PM, Ilia Mirkin 
wrote:


A few things that stand out:

0: ld u32 %r219 c0[0x+0x0] (0)

wtf is that 0x0 thing doing there? Was it a %rX which got
constant-folded into 0? That indirectness should have then been
removed... that said, the final encoding looks fine.



I don't know, maybe there is a hint in the log file?

Regards,

Hans





I believe that kepler has this launch descriptor thing too... is that
being set correctly? Please generate a mmt trace, and we can see if
anything stands out compared to a blob trace that also does compute.

Cheers,

-ilia

On Tue, Dec 15, 2015 at 9:15 AM, Hans de Goede 
wrote:


Hi all,

As part of my compute work I'm trying to get some TGSI compute
code to work. The code from mesa/src/gallium/tests/trivial.c
works.

So now I'm trying to get a "native" tgsi kernel to run via
clover, I'm using Francisco's nbody.c example for this:

https://fedorapeople.org/~jwrdegoede/nbody.c

Which does not work, at first I thought there was an issue
with the setup of the input / output buffers, but that seems to
work fine, and moreover I finally got the smart idea to look
in dmesg, which says:

[ 9920.802435] nouveau :01:00.0: gr: TRAP ch 6 [007f7fa000
nbody[31881]]
[ 9920.802449] nouveau :01:00.0: gr: GPC0/TPC0/MP trap: global

[] warp 10009 [INVALID_OPCODE]
[ 9920.802456] nouveau :01:00.0: gr: GPC0/TPC1/MP trap: global
0004
[MULTIPLE_WARP_ERRORS] warp 20009 [INVALID_OPCODE]

and repeats that for every "step" in the nobody simulation, this is on a
gk107 card.

So that seems to be the real problem, since the
error says "INVALID_OPCODE", I've put the tgsi code from nbody.c
through "nouveau_compiler -a e4" and then run "nvdisasm -b SM30"
on it, but the output looks ok. There is a 8 byte sequence which does
not get decoded every 64 bytes but AFAIK that is the scheduling info,
so that should be fine.

One thing which does stand out is that this:

0: ld u32 %r219 c0[0x+0x0] (0)
1: ld u32 %r222 c0[0x4] (0)
2: ld u64 { %r225 %r228 } c0[0x8] (0)
3: ld u32 %r234 c0[0x10] (0)

Gets translated into (nvdisasm output) :

  /*0008*/   LDC R4, c[0x0][0x0];
/* 0x140003f11c86 */
  /*0010*/   MOV R2, c[0x0][0x4];
/* 0x2800400010009de4 */
  /*0018*/   LDC.64 R0, c[0x0][0x8];
/* 0x140023f01ca6 */
  /*0020*/   MOV R3, c[0x0][0x10];
/* 0x280040004000dde4 */

Where I would expect for LDC instructions, could that be the problem ?

If that is not the problem, then hints how to debug this further would
be
greatly appreciated.

Regards,

Hans
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] Debugging INVALID_OPCODE / MULTIPLE_WARP_ERRORS ?

2015-12-18 Thread Hans de Goede

Hi,

On 16-12-15 18:24, Ilia Mirkin wrote:

I believe that your problem is this:

 /*01a0*/   LD R8, [R8];
/* 0x80821c85 */

That needs to be LD.E (and your ST's need to be ST.E). You're using a
32-bit gmem address, but you need to be using a 64-bit one. I believe
the 32-bit ones work on fermi, but afaik not on Kepler.


I do not think that is the problem, src/gallium/tests/trivial/compute
test_input_global() has:

COMP
DCL SV[0], THREAD_ID
DCL TEMP[0], LOCAL
DCL TEMP[1], LOCAL
IMM[0] UINT32 {8, 0, 0, 0}
  0: BGNSUB :0
  1:   UMUL TEMP[0], SV[0], IMM[0]
  2:   LOAD TEMP[1].xy, RES[32764], TEMP[0]
  3:   LOAD TEMP[0].x, RES[32767], TEMP[1].
  4:   UADD TEMP[1].x, TEMP[0], -TEMP[1]
  5:   STORE RES[32767].x, TEMP[1]., TEMP[1]
  6:   RET
  7: ENDSUB

Which translates to:

SUB:0 ()
BB:0 (7 instructions) - df = { }
 -> BB:1 (cross)
  0: rdsv u32 $r0 sv[TID:0] (8)
  1: shl u32 $r2 $r0 0x0003 (8)
  2: ld u64 $r0d c0[$r2+0x0] (8)
  3: ld u32 $r2 g[$r1+0x0] (8)
  4: add u32 $r0 $r2 neg $r0 (8)
  5: st u32 # g[$r1+0x0] $r0 (8)
  6: ret (8)
BB:1 (0 instructions) - idom = BB:0, df = { }

MAIN:-1 ()
BB:0 (0 instructions) - df = { }

Which is also using 32 bits loads from global memory
and that works fine on my GK107 [GeForce GT 740].

I think that for now I'll just focus on translating
the tests from rc/gallium/tests/trivial/compute.c to
opencl and getting the entire opencl -> llvm -> tgsi ->
nouveau_compiler -> hardware chain to work that way.

Still would be good to get nbody.c to work though.

Regards,

Hans






Cheers,

   -ilia



On Wed, Dec 16, 2015 at 12:06 PM, Hans de Goede  wrote:

Hi,

On 15-12-15 20:04, Ilia Mirkin wrote:


Also, where's the exit op? Perhaps what's happening is that you don't
have an exit and it just goes off executing into the ether?



Sorry I only included a small bit of the program in my original mail
because I found the use of "MOV" instructions to load constants
suspicious, is that normal ?

I've put a log with NV50_PROG_DEBUG=1 output here:

https://fedorapeople.org/~jwrdegoede/nbody.log

nvdisasm -b SM30 for the generated binary code is here:

https://fedorapeople.org/~jwrdegoede/nbody.disasm

There are already .tgsi, .hex and .bin files there if
you find those easier to use then the
NV50_PROG_DEBUG=1 output.




On Tue, Dec 15, 2015 at 12:00 PM, Ilia Mirkin 
wrote:


A few things that stand out:

0: ld u32 %r219 c0[0x+0x0] (0)

wtf is that 0x0 thing doing there? Was it a %rX which got
constant-folded into 0? That indirectness should have then been
removed... that said, the final encoding looks fine.



I don't know, maybe there is a hint in the log file?

Regards,

Hans





I believe that kepler has this launch descriptor thing too... is that
being set correctly? Please generate a mmt trace, and we can see if
anything stands out compared to a blob trace that also does compute.

Cheers,

-ilia

On Tue, Dec 15, 2015 at 9:15 AM, Hans de Goede 
wrote:


Hi all,

As part of my compute work I'm trying to get some TGSI compute
code to work. The code from mesa/src/gallium/tests/trivial.c
works.

So now I'm trying to get a "native" tgsi kernel to run via
clover, I'm using Francisco's nbody.c example for this:

https://fedorapeople.org/~jwrdegoede/nbody.c

Which does not work, at first I thought there was an issue
with the setup of the input / output buffers, but that seems to
work fine, and moreover I finally got the smart idea to look
in dmesg, which says:

[ 9920.802435] nouveau :01:00.0: gr: TRAP ch 6 [007f7fa000
nbody[31881]]
[ 9920.802449] nouveau :01:00.0: gr: GPC0/TPC0/MP trap: global

[] warp 10009 [INVALID_OPCODE]
[ 9920.802456] nouveau :01:00.0: gr: GPC0/TPC1/MP trap: global
0004
[MULTIPLE_WARP_ERRORS] warp 20009 [INVALID_OPCODE]

and repeats that for every "step" in the nobody simulation, this is on a
gk107 card.

So that seems to be the real problem, since the
error says "INVALID_OPCODE", I've put the tgsi code from nbody.c
through "nouveau_compiler -a e4" and then run "nvdisasm -b SM30"
on it, but the output looks ok. There is a 8 byte sequence which does
not get decoded every 64 bytes but AFAIK that is the scheduling info,
so that should be fine.

One thing which does stand out is that this:

0: ld u32 %r219 c0[0x+0x0] (0)
1: ld u32 %r222 c0[0x4] (0)
2: ld u64 { %r225 %r228 } c0[0x8] (0)
3: ld u32 %r234 c0[0x10] (0)

Gets translated into (nvdisasm output) :

  /*0008*/   LDC R4, c[0x0][0x0];
/* 0x140003f11c86 */
  /*0010*/   MOV R2, c[0x0][0x4];
/* 0x2800400010009de4 */
  /*0018*/   LDC.64 R0, c[0x0][0x8];
/* 0x140023f01ca6 */
  /*0020*/   MOV R3, c[0x0][0x10];
/* 0x280040004000dde4 */

Where I would expect for LDC instructions, could that be the problem ?

If that is not the problem, then hints how to debug this further woul

Re: [Nouveau] [mesa v3 1/9] nouveau: bump required libdrm version to 2.4.66

2015-12-18 Thread Emil Velikov
Hi Ben,

When "we're feeling bored" ideas in 13/14 of the libdrm-nouveau lot.

That aside with the minor comment in 8/9 both series are
Reviewed-by: Emil Velikov 

Hats off for this series (and the crazy drm nouveau evolution) :-)

-Emil
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] [mesa v3 8/9] nvc0: remove use of deprecated sw class identifier

2015-12-18 Thread Emil Velikov
The commit summary "remove use of deprecated..." is no longer
applicable. Feel free to tweak (use nvif provided class name/define ?)
before pushing.

-Emil
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [Bug 70354] [NVE6, NVE7] HUB_INIT timeout on graph init, blob fw doesn't help

2015-12-18 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=70354

--- Comment #93 from Bozhan Boyadzhiev  ---
Ilia, 
what about this messages:

nouveau :01:00.0: DRM: Pointer to TMDS table invalid
nouveau :01:00.0: DRM: Pointer to flat panel table invalid
bus: MMIO write of 0002 FAULT at 4188ac [ IBUS ]

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau