Bug 70326 - [NVF0] Kernel/Driver fails to initialize acceleration on GTX Titan
Summary: [NVF0] Kernel/Driver fails to initialize acceleration on GTX Titan
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-09 18:12 UTC by Vladimir
Modified: 2014-05-06 18:48 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
glxgears (15.81 KB, image/png)
2013-10-19 07:59 UTC, Vladimir
no flags Details
cube2 (1.40 MB, image/png)
2013-10-19 08:00 UTC, Vladimir
no flags Details

Description Vladimir 2013-10-09 18:12:53 UTC
Using Ubuntu 13.10, 3.11 kernel, Nouveau 1.0.9

MacPro3,1, GTX Titan, efi boot with grub2, boot screen on GTX Titan is present durring boot.

There is no acceleration because something failed, log from kernel:

[   16.544736] fb: conflicting fb hw usage nouveaufb vs EFI VGA - removing generic driver
[   16.545025] nouveau 0000:02:00.0: enabling device (0006 -> 0007)
[   16.545415] nouveau  [  DEVICE][0000:02:00.0] BOOT0  : 0x0f0050a1
[   16.545419] nouveau  [  DEVICE][0000:02:00.0] Chipset: GK110 (NVF0)
[   16.545420] nouveau  [  DEVICE][0000:02:00.0] Family : NVE0
[   16.547246] nouveau  [   VBIOS][0000:02:00.0] checking PRAMIN for image...
[   16.622062] nouveau  [   VBIOS][0000:02:00.0] ... appears to be valid
[   16.622066] nouveau  [   VBIOS][0000:02:00.0] using image from PRAMIN
[   16.622165] nouveau  [   VBIOS][0000:02:00.0] BIT signature found
[   16.622168] nouveau  [   VBIOS][0000:02:00.0] version 80.10.2c.00.02
[   16.622653] nouveau  [     PFB][0000:02:00.0] RAM type: GDDR5
[   16.622657] nouveau  [     PFB][0000:02:00.0] RAM size: 6144 MiB
[   16.622658] nouveau  [     PFB][0000:02:00.0]    ZCOMP: 0 tags
[   16.647770] nouveau E[  PTHERM][0000:02:00.0] GPIO 16 unknown PWM: 0x0004b05e
[   16.647776] nouveau  [  PTHERM][0000:02:00.0] FAN control: toggle
[   16.647783] nouveau  [  PTHERM][0000:02:00.0] fan management: disabled
[   16.647786] nouveau  [  PTHERM][0000:02:00.0] internal sensor: yes
[   16.681028] nouveau W[  PGRAPH][0000:02:00.0] disabled, PGRAPH=1 to enable
[   16.681205] nouveau  [     DRM] VRAM: 6144 MiB
[   16.681207] nouveau  [     DRM] GART: 1048576 MiB
[   16.681212] nouveau  [     DRM] TMDS table version 2.0
[   16.681213] nouveau  [     DRM] DCB version 4.0
[   16.681216] nouveau  [     DRM] DCB outp 00: 01000102 00020030
[   16.681218] nouveau  [     DRM] DCB outp 01: 02000100 00000000
[   16.681220] nouveau  [     DRM] DCB outp 02: 08011282 00020030
[   16.681222] nouveau  [     DRM] DCB outp 04: 02022462 00020010
[   16.681223] nouveau  [     DRM] DCB outp 05: 048338b6 0f420010
[   16.681225] nouveau  [     DRM] DCB outp 06: 04033872 00020010
[   16.681227] nouveau  [     DRM] DCB conn 00: 00001030
[   16.681229] nouveau  [     DRM] DCB conn 01: 00020131
[   16.681231] nouveau  [     DRM] DCB conn 02: 00002261
[   16.681232] nouveau  [     DRM] DCB conn 03: 00010346
[   16.682400] nouveau W[     DRM] voltage table 0x50 unknown
[   16.682407] nouveau  [     DRM] 4 available performance level(s)
[   16.682410] nouveau  [     DRM] 0: core 162MHz shader 324MHz memory 648MHz voltage 140mV
[   16.682412] nouveau  [     DRM] 1: core 405MHz shader 810MHz memory 1080MHz voltage 120mV
[   16.682415] nouveau  [     DRM] 2: core 1502MHz shader 3004MHz memory 1080MHz voltage 100mV
[   16.682418] nouveau  [     DRM] 3: core 1502MHz shader 3004MHz memory 1080MHz voltage 80mV
[   16.682420] nouveau  [     DRM] c: fanspeed 100%
[   16.691147] nouveau E[   PFIFO][0000:02:00.0] unsupported engines 0x00000001
[   16.691259] nouveau E[     DRM] failed to create kernel channel, -22
[   16.792388] nouveau  [     DRM] allocated 1920x1080 fb: 0x60000, bo ffff8802ef59a400
[   16.792480] fbcon: nouveaufb (fb0) is primary device
[   16.852787] nouveau 0000:02:00.0: fb0: nouveaufb frame buffer device
[   16.852789] nouveau 0000:02:00.0: registered panic notifier
[   16.852794] [drm] Initialized nouveau 1.1.1 20120801 for 0000:02:00.0 on minor 0
[   27.276369] nouveau W[  PGRAPH][0000:02:00.0] disabled, PGRAPH=1 to enable
[   29.328898] nouveau W[  PGRAPH][0000:02:00.0] disabled, PGRAPH=1 to enable


from xorg.log:

[    28.953] (II) NOUVEAU driver Date:   Wed Jul 31 10:51:03 2013 +1000
[    28.953] (II) NOUVEAU driver for NVIDIA chipset families :
[    28.953] (II) [drm] nouveau interface version: 1.1.1
[    28.964] (--) NOUVEAU(0): Chipset: "NVIDIA NVF0"
[    28.964] (II) NOUVEAU(0): Creating default Display subsection in Screen section
[    28.964] (==) NOUVEAU(0): Depth 24, (--) framebuffer bpp 32
[    28.964] (==) NOUVEAU(0): RGB weight 888
[    28.964] (==) NOUVEAU(0): Default visual is TrueColor
[    28.964] (==) NOUVEAU(0): Using HW cursor
[    28.964] (==) NOUVEAU(0): GLX sync to VBlank enabled.
[    28.964] (==) NOUVEAU(0): Page flipping enabled
[    28.964] (==) NOUVEAU(0): Swap limit set to 2 [Max allowed 2]
[    28.997] (II) NOUVEAU(0): Output DVI-I-1 has no monitor section
[    28.999] (II) NOUVEAU(0): Output DVI-D-1 has no monitor section
[    29.001] (II) NOUVEAU(0): Output HDMI-1 has no monitor section
[    29.128] (II) NOUVEAU(0): Output DP-1 has no monitor section
[    29.157] (II) NOUVEAU(0): EDID for output DVI-I-1
[    29.157] (II) NOUVEAU(0): Manufacturer: DEL  Model: f040  Serial#: 1093808205
[    29.157] (II) NOUVEAU(0): Year: 2011  Week: 35
[    29.157] (II) NOUVEAU(0): EDID Version: 1.3
[    29.157] (II) NOUVEAU(0): Digital Display Input
[    29.157] (II) NOUVEAU(0): Max Image Size [cm]: horiz.: 48  vert.: 27
[    29.157] (II) NOUVEAU(0): Gamma: 2.20
[    29.157] (II) NOUVEAU(0): DPMS capabilities: StandBy Suspend Off
[    29.157] (II) NOUVEAU(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4 
[    29.157] (II) NOUVEAU(0): First detailed timing is preferred mode
[    29.157] (II) NOUVEAU(0): redX: 0.641 redY: 0.338   greenX: 0.315 greenY: 0.629
[    29.157] (II) NOUVEAU(0): blueX: 0.159 blueY: 0.059   whiteX: 0.313 whiteY: 0.329
[    29.157] (II) NOUVEAU(0): Supported established timings:
[    29.157] (II) NOUVEAU(0): 720x400@70Hz
[    29.157] (II) NOUVEAU(0): 640x480@60Hz
[    29.157] (II) NOUVEAU(0): 640x480@75Hz
[    29.157] (II) NOUVEAU(0): 800x600@60Hz
[    29.157] (II) NOUVEAU(0): 800x600@75Hz
[    29.157] (II) NOUVEAU(0): 1024x768@60Hz
[    29.157] (II) NOUVEAU(0): 1024x768@75Hz
[    29.157] (II) NOUVEAU(0): 1280x1024@75Hz
[    29.157] (II) NOUVEAU(0): Manufacturer's mask: 0
[    29.157] (II) NOUVEAU(0): Supported standard timings:
[    29.157] (II) NOUVEAU(0): #0: hsize: 1152  vsize 864  refresh: 75  vid: 20337
[    29.157] (II) NOUVEAU(0): #1: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
[    29.157] (II) NOUVEAU(0): #2: hsize: 1920  vsize 1080  refresh: 60  vid: 49361
[    29.157] (II) NOUVEAU(0): Supported detailed timing:
[    29.157] (II) NOUVEAU(0): clock: 148.5 MHz   Image Size:  477 x 268 mm
[    29.157] (II) NOUVEAU(0): h_active: 1920  h_sync: 2008  h_sync_end 2052 h_blank_end 2200 h_border: 0
[    29.157] (II) NOUVEAU(0): v_active: 1080  v_sync: 1084  v_sync_end 1089 v_blanking: 1125 v_border: 0
[    29.157] (II) NOUVEAU(0): Serial No: DWYC018PA20M
[    29.157] (II) NOUVEAU(0): Monitor name: DELL S2230MX
[    29.157] (II) NOUVEAU(0): Ranges: V min: 56 V max: 76 Hz, H min: 30 H max: 83 kHz, PixClock max 175 MHz
[    29.157] (II) NOUVEAU(0): EDID (in hex):
[    29.157] (II) NOUVEAU(0): 	00ffffffffffff0010ac40f04d303241
[    29.157] (II) NOUVEAU(0): 	2315010380301b78ea2cc5a45650a128
[    29.157] (II) NOUVEAU(0): 	0f5054a54b00714f8180d1c001010101
[    29.157] (II) NOUVEAU(0): 	010101010101023a801871382d40582c
[    29.157] (II) NOUVEAU(0): 	4500dd0c1100001e000000ff00445759
[    29.157] (II) NOUVEAU(0): 	43303138504132304d0a000000fc0044
[    29.157] (II) NOUVEAU(0): 	454c4c2053323233304d580a000000fd
[    29.157] (II) NOUVEAU(0): 	00384c1e5311000a2020202020200007
[    29.157] (II) NOUVEAU(0): Printing probed modes for output DVI-I-1
[    29.157] (II) NOUVEAU(0): Modeline "1920x1080"x60.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[    29.158] (II) NOUVEAU(0): Modeline "1280x1024"x75.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[    29.158] (II) NOUVEAU(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    29.158] (II) NOUVEAU(0): Modeline "1152x864"x75.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[    29.158] (II) NOUVEAU(0): Modeline "1024x768"x75.1   78.80  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.1 kHz e)
[    29.158] (II) NOUVEAU(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    29.158] (II) NOUVEAU(0): Modeline "800x600"x75.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[    29.158] (II) NOUVEAU(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    29.158] (II) NOUVEAU(0): Modeline "640x480"x75.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[    29.158] (II) NOUVEAU(0): Modeline "640x480"x60.0   25.20  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    29.158] (II) NOUVEAU(0): Modeline "720x400"x70.1   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[    29.160] (II) NOUVEAU(0): EDID for output DVI-D-1
[    29.162] (II) NOUVEAU(0): EDID for output HDMI-1
[    29.288] (II) NOUVEAU(0): EDID for output DP-1
[    29.288] (II) NOUVEAU(0): Output DVI-I-1 connected
[    29.288] (II) NOUVEAU(0): Output DVI-D-1 disconnected
[    29.288] (II) NOUVEAU(0): Output HDMI-1 disconnected
[    29.288] (II) NOUVEAU(0): Output DP-1 disconnected
[    29.288] (II) NOUVEAU(0): Using exact sizes for initial modes
[    29.288] (II) NOUVEAU(0): Output DVI-I-1 using initial mode 1920x1080
[    29.288] (II) NOUVEAU(0): Using default gamma of (1.0, 1.0, 1.0) unless otherwise stated.
[    29.288] (--) NOUVEAU(0): Virtual size is 1920x1080 (pitch 0)
[    29.288] (**) NOUVEAU(0):  Driver mode "1920x1080": 148.5 MHz (scaled from 0.0 MHz), 67.5 kHz, 60.0 Hz
[    29.288] (II) NOUVEAU(0): Modeline "1920x1080"x60.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
[    29.288] (**) NOUVEAU(0):  Driver mode "1280x1024": 135.0 MHz (scaled from 0.0 MHz), 80.0 kHz, 75.0 Hz
[    29.288] (II) NOUVEAU(0): Modeline "1280x1024"x75.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[    29.288] (**) NOUVEAU(0):  Driver mode "1280x1024": 108.0 MHz (scaled from 0.0 MHz), 64.0 kHz, 60.0 Hz
[    29.288] (II) NOUVEAU(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    29.288] (**) NOUVEAU(0):  Driver mode "1152x864": 108.0 MHz (scaled from 0.0 MHz), 67.5 kHz, 75.0 Hz
[    29.288] (II) NOUVEAU(0): Modeline "1152x864"x75.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[    29.288] (**) NOUVEAU(0):  Driver mode "1024x768": 78.8 MHz (scaled from 0.0 MHz), 60.1 kHz, 75.1 Hz
[    29.288] (II) NOUVEAU(0): Modeline "1024x768"x75.1   78.80  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.1 kHz e)
[    29.288] (**) NOUVEAU(0):  Driver mode "1024x768": 65.0 MHz (scaled from 0.0 MHz), 48.4 kHz, 60.0 Hz
[    29.288] (II) NOUVEAU(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    29.288] (**) NOUVEAU(0):  Driver mode "800x600": 49.5 MHz (scaled from 0.0 MHz), 46.9 kHz, 75.0 Hz
[    29.288] (II) NOUVEAU(0): Modeline "800x600"x75.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[    29.288] (**) NOUVEAU(0):  Driver mode "800x600": 40.0 MHz (scaled from 0.0 MHz), 37.9 kHz, 60.3 Hz
[    29.288] (II) NOUVEAU(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    29.288] (**) NOUVEAU(0):  Driver mode "640x480": 31.5 MHz (scaled from 0.0 MHz), 37.5 kHz, 75.0 Hz
[    29.288] (II) NOUVEAU(0): Modeline "640x480"x75.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[    29.288] (**) NOUVEAU(0):  Driver mode "640x480": 25.2 MHz (scaled from 0.0 MHz), 31.5 kHz, 60.0 Hz
[    29.288] (II) NOUVEAU(0): Modeline "640x480"x60.0   25.20  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    29.288] (**) NOUVEAU(0):  Driver mode "720x400": 28.3 MHz (scaled from 0.0 MHz), 31.5 kHz, 70.1 Hz
[    29.288] (II) NOUVEAU(0): Modeline "720x400"x70.1   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[    29.288] (==) NOUVEAU(0): DPI set to (96, 96)
[    29.328] (EE) NOUVEAU(0): Error creating GPU channel: -19
[    29.328] (EE) NOUVEAU(0): Error initialising acceleration.  Falling back to NoAccel
[    29.340] (==) NOUVEAU(0): Backing store disabled
[    29.340] (==) NOUVEAU(0): Silken mouse enabled
[    29.340] (==) NOUVEAU(0): DPMS enabled
[    29.340] (II) NOUVEAU(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[    29.458] (II) NOUVEAU(0): NVEnterVT is called.
[    29.464] (II) NOUVEAU(0): Setting screen physical size to 508 x 285
[    33.255] (II) NOUVEAU(0): EDID vendor "DEL", prod id 61504
[    33.255] (II) NOUVEAU(0): Using EDID range info for horizontal sync
[    33.255] (II) NOUVEAU(0): Using EDID range info for vertical refresh
Comment 1 Ilia Mirkin 2013-10-09 18:29:11 UTC
You need to mmiotrace the blob and get the graph firmware. See http://nouveau.freedesktop.org/wiki/NVC0_Firmware/ (up to "Video Firmware", which you don't need to worry about). Once you get that, stick the files in /lib/firmware/nouveau and boot with nouveau.config=NvGrUseFW=1,PGRAPH=1 . Built-in firmware is being worked on, afaik, but currently incomplete. There is preliminary support you could use if you like, see drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c:

	.fecs.ucode = 0 ? &nvf0_graph_fecs_ucode : NULL,

Just change that to 1 ? instead of 0 ?, but I have no idea if it's even expected to work. I'm going to leave this bug open until NVF0 is supported with open firmware.
Comment 2 Vladimir 2013-10-19 06:43:59 UTC
Thanks, I did that, and after news about gtx780 being supported back in july I hoped it will work. But it seems textures coordinates are messed up, at least in kde.

https://www.dropbox.com/s/wyvyaiklbi5jqhn/2013-10-19%2000.06.53.jpg

Unity is much worse 

https://www.dropbox.com/s/vxxk8gxlvcqzlz2/2013-10-19%2000.04.46.jpg
Comment 3 Ilia Mirkin 2013-10-19 06:47:11 UTC
Which "that" did you do? BTW, the news item on the page about NVF0 support might be a bit misleading. It does presently still require mmiotrace'd firmware.
Comment 4 Vladimir 2013-10-19 07:59:35 UTC
Created attachment 87845 [details]
glxgears
Comment 5 Vladimir 2013-10-19 08:00:15 UTC
Created attachment 87846 [details]
cube2
Comment 6 Vladimir 2013-10-19 08:01:46 UTC
Sorry it wasn't clear. I've used mmiotrace.

without composited enviroment it looks better.

glxgears has same bug as with gtx650.

cube2 has same bug  as kde sshot above, texture coordinates are wrong.
Comment 7 Ilia Mirkin 2013-10-19 16:32:11 UTC
I assume you're running mesa 9.2 or later? Looks like preliminary support went in with

commit c29c6b2b2e65f73c75c70daae1d2d32e53964120
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Fri May 17 14:48:15 2013 +1000

    nvc0: enable very initial support for nvf0 (GK110)
    
    Shaders need a lot of work still.  Basic stuff generally works, so this
    is basically just fine for gnome-shell, OA etc at this point.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Comment 8 Ilia Mirkin 2013-10-19 18:12:10 UTC
Just glanced at nv50_ir_emit_gk110.cpp, it's got TODO's all over, esp in the texture stuff.

If you're interested in helping fix this, find piglit tests that exercise the relevant functionality, and run them with the blob and valgrind-mmt. This should provide the data required to fill in some of the blanks. Join in on #nouveau @ freenode if you want to help out/get some pointers/etc.

Long story short, don't expect 3d to work correctly on gk110. 2d accel with the mmiotrace'd firmware is all that's supported right now, it seems.
Comment 9 Ilia Mirkin 2014-03-14 13:45:55 UTC
I have a branch where I've started fixing some stuff for gk110/gk208... it's largely untested, feel free to give it a shot:

https://github.com/imirkin/mesa/commits/gk110

Among other things, a floating point subtract was treated as an add, which couldn't have helped.

The latest kernel (3.14-rcX) should provide nouveau firmware for nvf0, so you shouldn't need the blob fw anymore.
Comment 10 Ilia Mirkin 2014-05-06 18:48:58 UTC
I've checked in a bunch of fixes for GK110, should be available now in mesa 10.2-rc1. Also, 3.14+ supply firmware, so you don't have to use the blob one. I'm closing this bug. If you have further issues, feel free to create a new bug with specifics.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.