Summary: | gallium nouveau has no profile in vdpau and libva | ||
---|---|---|---|
Product: | Mesa | Reporter: | Stefan Ringel <mail> |
Component: | Drivers/DRI/nouveau | Assignee: | Nouveau Project <nouveau> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
vainfo gdb
vdpainfo gdb vainfo valgrind vdpauinfo valgrind ls dmesg firmware present patch correct profile in vdpauinfo + vainfo |
Created attachment 96974 [details]
vdpainfo gdb
Created attachment 96975 [details]
vainfo valgrind
Created attachment 96976 [details]
vdpauinfo valgrind
You haven't really supplied enough information to determine what the problem is (or even if there is a problem). However, http://nouveau.freedesktop.org/wiki/VideoAcceleration/ should answer all of your questions. Good things to check for are (a) whether your hardware supports VDPAU decoding in the first place (NV84+ should), and (b) whether you've installed the firmware. If you still have trouble after reading through that entire page (and following its instructions), feel free to reopen. It dosn't work. Firmware are installed. NVidia Geforce 520 (NVD9) Please provide the output of ls -l /lib/firmware/nouveau dmesg (after you've run vdpauinfo) Created attachment 96999 [details]
ls
OK, so it seems like the firmware is correctly in place, and there are no errors coming from dmesg, which means it's getting loaded (or at least isn't failing to load). What version of Mesa are you using? I recently added a feature which auto-detects if firmware is present before reporting codec capabilities, and I might have gotten it wrong somehow. (In reply to comment #8) > OK, so it seems like the firmware is correctly in place, and there are no > errors coming from dmesg, which means it's getting loaded (or at least isn't > failing to load). > > What version of Mesa are you using? I recently added a feature which > auto-detects if firmware is present before reporting codec capabilities, and > I might have gotten it wrong somehow. mesa 10.1 (Fedora Core 21 rawhide) Would you mind booting with nouveau.debug=PBSP=trace and putting up a dmesg from that (after the vdpauinfo, that is). BTW, silly question -- do you have a libvdpau_nouveau.so? (In reply to comment #10) > Would you mind booting with > > nouveau.debug=PBSP=trace > > and putting up a dmesg from that (after the vdpauinfo, that is). BTW, silly > question -- do you have a libvdpau_nouveau.so? yes I have libvdpau_nouveau.so. It is installed in /usr/lib64/vdpau . Created attachment 97000 [details]
dmesg
Created attachment 97009 [details] [review] firmware present patch OK, upon further code reading, it looks like the way nouveau does class id's is a bit off. That doesn't strictly matter for BSP, but there's a mismatch in the logic between mesa and the kernel, which causes problems for NVD7 and NVD9 cards. In nouveau_vp3_video.c:firmware_present, if (chipset < 0xc0) oclass = 0x85b1; else if (vp5) oclass = 0x95b1; else oclass = 0x90b1; should become if (chipset < 0xc0) oclass = 0x85b1; else if (chipset < 0xe0) oclass = 0x90b1; else oclass = 0x95b1; Since the kernel expects the 90b1 class to be used on the NVD9 card, despite it having VP5. I've attached this change as a patch, please try it out. (If you can't, I'll try to locate someone else with the relevant hardware, but it'd be much easier if you could do it.) (In reply to comment #13) > Created attachment 97009 [details] [review] [review] > firmware present patch > > OK, upon further code reading, it looks like the way nouveau does class id's > is a bit off. That doesn't strictly matter for BSP, but there's a mismatch > in the logic between mesa and the kernel, which causes problems for NVD7 and > NVD9 cards. > > In nouveau_vp3_video.c:firmware_present, > > if (chipset < 0xc0) > oclass = 0x85b1; > else if (vp5) > oclass = 0x95b1; > else > oclass = 0x90b1; > > should become > > if (chipset < 0xc0) > oclass = 0x85b1; > else if (chipset < 0xe0) > oclass = 0x90b1; > else > oclass = 0x95b1; > > Since the kernel expects the 90b1 class to be used on the NVD9 card, despite > it having VP5. I've attached this change as a patch, please try it out. (If > you can't, I'll try to locate someone else with the relevant hardware, but > it'd be much easier if you could do it.) Patch works. Thanks. Created attachment 97014 [details]
correct profile in vdpauinfo + vainfo
(In reply to comment #15) > Created attachment 97014 [details] > correct profile in vdpauinfo + vainfo dmseg: [ 97.292274] nouveau T[ PBSP][0000:01:00.0] inc() == 4 [ 97.341821] nouveau T[ PBSP][0000:01:00.0] use(+1) == 1 [ 97.341827] nouveau T[ PBSP][0000:01:00.0] initialising... [ 97.341831] nouveau T[ PBSP][0000:01:00.0] resetting... [ 97.341840] nouveau D[ PBSP][0000:01:00.0] reset [ 97.341847] nouveau D[ PBSP][0000:01:00.0] falcon version: 4 [ 97.341850] nouveau D[ PBSP][0000:01:00.0] secret level: 3 [ 97.341852] nouveau D[ PBSP][0000:01:00.0] code limit: 8192 [ 97.341855] nouveau D[ PBSP][0000:01:00.0] data limit: 4096 [ 97.376514] nouveau D[ PBSP][0000:01:00.0] firmware: nouveau/nvd9_fuc084 (self-bootstrapping) [ 97.377803] nouveau D[ PBSP][0000:01:00.0] initialised [ 97.377983] nouveau T[ PBSP][0000:01:00.0] inc() == 5 [ 97.378050] nouveau D[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] created [ 97.378057] nouveau T[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] inc() == 2 [ 97.378062] nouveau T[ PBSP][0000:01:00.0] inc() == 6 [ 97.378068] nouveau D[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] created [ 97.378074] nouveau T[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] use(+1) == 1 [ 97.378080] nouveau T[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] initialising... [ 97.378086] nouveau T[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] use(+1) == 1 [ 97.378092] nouveau T[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] initialising... [ 97.378104] nouveau T[ PBSP][0000:01:00.0] use(+1) == 2 [ 97.378145] nouveau D[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] initialised [ 97.378150] nouveau T[ PBSP][0000:01:00.0] use(+1) == 3 [ 97.378156] nouveau D[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] initialised [ 97.378163] nouveau T[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] inc() == 2 [ 97.378170] nouveau T[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] use(+1) == 2 [ 97.378177] nouveau T[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] use(-1) == 1 [ 97.378183] nouveau T[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] dec() == 1 [ 97.378189] nouveau T[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] dec() == 1 [ 97.378194] nouveau T[ PBSP][0000:01:00.0] use(-1) == 2 [ 97.379223] nouveau T[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] use(-1) == 0 [ 97.379229] nouveau T[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] stopping... [ 97.379943] nouveau T[ PBSP][0000:01:00.0] use(-1) == 1 [ 97.379945] nouveau T[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] use(-1) == 0 [ 97.379948] nouveau T[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] stopping... [ 97.379957] nouveau T[ PBSP][0000:01:00.0] use(-1) == 0 [ 97.379959] nouveau T[ PBSP][0000:01:00.0] stopping... [ 97.379991] nouveau D[ PBSP][0000:01:00.0] stopped [ 97.379996] nouveau D[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] stopped [ 97.379998] nouveau D[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] stopped [ 97.380001] nouveau T[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] dec() == 0 [ 97.380004] nouveau D[ PBSP][0000:01:00.0][0x000090b1][ffff8800c2bfc960] destroying [ 97.380006] nouveau T[ PBSP][0000:01:00.0] dec() == 5 [ 97.380008] nouveau T[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] dec() == 0 [ 97.380011] nouveau D[ PBSP][0000:01:00.0][0x0300c01b][ffff880118ebf800] destroying [ 97.380040] nouveau T[ PBSP][0000:01:00.0] dec() == 4 [ 97.509998] nouveau T[ PBSP][0000:01:00.0] dec() == 3 Fix checked in: http://cgit.freedesktop.org/mesa/mesa/commit/?id=89c5b56be6c242d1489cf5c06b04c8b7a668d6f9 Should make it into a 10.1 stable release... if they ever get around to making one. |
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.
Created attachment 96973 [details] vainfo gdb display: :0 screen: 0 API version: 1 Information string: G3DVL VDPAU Driver Shared Library version 1.0 Video surface: name width height types ------------------------------------------- 420 16384 16384 NV12 YV12 422 16384 16384 UYVY YUYV 444 16384 16384 Y8U8V8A8 V8U8Y8A8 Decoder capabilities: name level macbs width height ------------------------------------------- Output surface: name width height nat types ---------------------------------------------------- B8G8R8A8 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 R8G8B8A8 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 R10G10B10A2 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 B10G10R10A2 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 Bitmap surface: name width height ------------------------------ B8G8R8A8 16384 16384 R8G8B8A8 16384 16384 R10G10B10A2 16384 16384 B10G10R10A2 16384 16384 A8 16384 16384 Video mixer: feature name sup ------------------------------------ DEINTERLACE_TEMPORAL - DEINTERLACE_TEMPORAL_SPATIAL - INVERSE_TELECINE - NOISE_REDUCTION y SHARPNESS y LUMA_KEY - HIGH QUALITY SCALING - L1 - HIGH QUALITY SCALING - L2 - HIGH QUALITY SCALING - L3 - HIGH QUALITY SCALING - L4 - HIGH QUALITY SCALING - L5 - HIGH QUALITY SCALING - L6 - HIGH QUALITY SCALING - L7 - HIGH QUALITY SCALING - L8 - HIGH QUALITY SCALING - L9 - parameter name sup min max ----------------------------------------------------- VIDEO_SURFACE_WIDTH y 48 4096 VIDEO_SURFACE_HEIGHT y 48 4096 CHROMA_TYPE y LAYERS y 0 4 attribute name sup min max ----------------------------------------------------- BACKGROUND_COLOR y CSC_MATRIX y NOISE_REDUCTION_LEVEL y 0.00 1.00 SHARPNESS_LEVEL y -1.00 1.00 LUMA_KEY_MIN_LUMA y LUMA_KEY_MAX_LUMA y libva info: VA-API version 0.34.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib64/dri/nouveau_drv_video.so libva info: Found init function __vaDriverInit_0_34 libva info: va_openDriver() returns 0 vainfo: VA-API version: 0.34 (libva 1.2.1) vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4 vainfo: Supported profile and entrypoints