Bug 90728 - dvd playback with vlc and vdpau causes segmentation fault
Summary: dvd playback with vlc and vdpau causes segmentation fault
Status: CLOSED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600 (show other bugs)
Version: 10.4
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact: Default DRI bug account
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-28 18:42 UTC by mehmet.giritli
Modified: 2015-07-09 12:20 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
vdpau trace from vlc (5.23 KB, application/binary)
2015-05-28 18:42 UTC, mehmet.giritli
Details
gdb backtrace (1.06 KB, text/plain)
2015-05-28 18:42 UTC, mehmet.giritli
Details
gdb full backtrace of the segmentation fault (7.16 KB, text/plain)
2015-05-29 07:46 UTC, mehmet.giritli
Details
Possible fix (3.37 KB, patch)
2015-05-29 13:11 UTC, Christian König
Details | Splinter Review

Description mehmet.giritli 2015-05-28 18:42:15 UTC
Created attachment 116123 [details]
vdpau trace from vlc

I've already run this by vlc bugzilla and they are sure taht this is a radeon bug.

With many dvd iso images I have, I frequently get seg faults when I try to play them if I'm using vdpau hw acceleration with vlc. Turning vdpau off stops crashes. The crashes happen at the menu stages, for example if you choose the main language and it is supposed to show you the real menu after that, you get the crash after you select the language. Or when it is displaying FBI warnings or similar and when it is done and it is going to change to another menu/screeen or whatever, I get a crash. But if I manage to manually select the main title from the playback menu (not always works depending on the dvd structure I guess), I can watch the entire movie without any problems. So, the problem seems to be fixable...

Also, vlc plays all my other files like mkv files without any problem through vdpau...

I don't know how to provide more data. If you instruct me how to get extra data, I'll do my best.

I'm attaching vdpau traces and a backtrace from vlc. I hope they help.
Comment 1 mehmet.giritli 2015-05-28 18:42:47 UTC
Created attachment 116124 [details]
gdb backtrace
Comment 2 mehmet.giritli 2015-05-28 18:43:55 UTC
I realise that the backtrace is not detailed enough but dont really know how to get a more detailed version. Any help with that would be highly appreciated!
Comment 3 mehmet.giritli 2015-05-28 18:46:28 UTC
Also,

I'm running mesa 10.4.6, xorg-server 1.16.4 and kernel 4.0.4. My card is Radeon HD3650 on a laptop.
Comment 4 Alex Deucher 2015-05-28 18:55:58 UTC
Install the debug symbol packages if you are using distro packages.
Comment 5 Christian König 2015-05-29 07:34:55 UTC
Additional to that you can try to run vlc with VDPAU tracing enabled, e.g. set VDPAU_TRACE=1 capture the output into a file and try to trigger the crash.
Comment 6 mehmet.giritli 2015-05-29 07:39:56 UTC
(In reply to Christian König from comment #5)
> Additional to that you can try to run vlc with VDPAU tracing enabled, e.g.
> set VDPAU_TRACE=1 capture the output into a file and try to trigger the
> crash.

Thanks Christian. I already attached that in the bug report. Are they incomplete or something or did you just miss it? :-)

Anyway, I'm compiling mesa with debug symbols right now (Im on gentoo) and will get that gdb backtrace soon as well.
Comment 7 mehmet.giritli 2015-05-29 07:46:43 UTC
Created attachment 116142 [details]
gdb full backtrace of the segmentation fault

I finally managed to get a proper backtrace I think. Please let me know if it is incomplete or something else is required.
Comment 8 Christian König 2015-05-29 07:48:37 UTC
(In reply to mehmet.giritli from comment #6)
> (In reply to Christian König from comment #5)
> > Additional to that you can try to run vlc with VDPAU tracing enabled, e.g.
> > set VDPAU_TRACE=1 capture the output into a file and try to trigger the
> > crash.
> 
> Thanks Christian. I already attached that in the bug report. Are they
> incomplete or something or did you just miss it? :-)
> 
> Anyway, I'm compiling mesa with debug symbols right now (Im on gentoo) and
> will get that gdb backtrace soon as well.

Ah, yes! Sorry missed that file because it had the wrong mime type.

The trace looks good to me, e.g. VLC doesn't seems to do anything obviously wrong. So it really looks like a driver problem.

Please try to get that backtrace as well.

Thanks,
Christian.
Comment 9 Christian König 2015-05-29 07:53:29 UTC
(In reply to mehmet.giritli from comment #7)
> Created attachment 116142 [details]
> gdb full backtrace of the segmentation fault
> 
> I finally managed to get a proper backtrace I think. Please let me know if
> it is incomplete or something else is required.

No, that backtrace is perfectly fine. What hardware generation is this?

It looks like the problem is that VLC is using the shader based MPEG2 decoder for playback which is known to have some bugs.

The most likely reason is that your hardware is simply a bit old and doesn't have MPEG2 support (everything older than NI).
Comment 10 mehmet.giritli 2015-05-29 08:06:10 UTC
(In reply to Christian König from comment #9)
> (In reply to mehmet.giritli from comment #7)
> > Created attachment 116142 [details]
> > gdb full backtrace of the segmentation fault
> > 
> > I finally managed to get a proper backtrace I think. Please let me know if
> > it is incomplete or something else is required.
> 
> No, that backtrace is perfectly fine. What hardware generation is this?
> 
> It looks like the problem is that VLC is using the shader based MPEG2
> decoder for playback which is known to have some bugs.
> 
> The most likely reason is that your hardware is simply a bit old and doesn't
> have MPEG2 support (everything older than NI).

This is HD3650 (RV635) Mobility, on a laptop.
Comment 11 Christian König 2015-05-29 13:11:49 UTC
Created attachment 116151 [details] [review]
Possible fix
Comment 12 Christian König 2015-05-29 13:13:58 UTC
(In reply to mehmet.giritli from comment #10)
> This is HD3650 (RV635) Mobility, on a laptop.

I'm quite surprised that this old hardware still works so well.

And yes as expected this hardware generation doesn't have MPEG2 decoding capabilities, so we fallback to shader based decoding. That sort of works, but still has some bugs.

Please try attached patch. It is completely untested since I don't have such old hardware any more, but might fix your issue.
Comment 13 mehmet.giritli 2015-05-30 20:37:43 UTC
(In reply to Christian König from comment #12)
> (In reply to mehmet.giritli from comment #10)
> > This is HD3650 (RV635) Mobility, on a laptop.
> 
> I'm quite surprised that this old hardware still works so well.
> 
> And yes as expected this hardware generation doesn't have MPEG2 decoding
> capabilities, so we fallback to shader based decoding. That sort of works,
> but still has some bugs.
> 
> Please try attached patch. It is completely untested since I don't have such
> old hardware any more, but might fix your issue.

Hey Christian, thank you for the patch but it wont compile with a missing header util/list.h, here is the output from compilation barking about it:

FYI: I'm trying this on mesa 10.4.6 source
...
libtool: compile:  x86_64-pc-linux-gnu-gcc -m32 -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"10.4.6\" "-DPACKAGE_STRING=\"Mesa 10.4.6\"" "-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"10.4.6\" -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD=1 -I. -I../../../src/gallium/auxiliary/util -I../../../include -I../../../src -I../../../src/gallium/include -I../../../src/gallium/auxiliary -DUSE_EXTERNAL_DXTN_LIB=1 -D_GNU_SOURCE -DUSE_SSE41 -DDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_STRTOF -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DGLX_USE_DRM -DHAVE_LIBUDEV -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_ALIAS -DHAVE_DRI3 -DHAVE_MINCORE -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -pipe -march=core2 -ggdb -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -c vl/vl_decoder.c  -fPIC -DPIC -o vl/.libs/vl_decoder.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -m32 -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"10.4.6\" "-DPACKAGE_STRING=\"Mesa 10.4.6\"" "-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"10.4.6\" -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD=1 -I. -I../../../src/gallium/auxiliary/util -I../../../include -I../../../src -I../../../src/gallium/include -I../../../src/gallium/auxiliary -DUSE_EXTERNAL_DXTN_LIB=1 -D_GNU_SOURCE -DUSE_SSE41 -DDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_STRTOF -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DGLX_USE_DRM -DHAVE_LIBUDEV -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_ALIAS -DHAVE_DRI3 -DHAVE_MINCORE -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -pipe -march=core2 -ggdb -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -c vl/vl_median_filter.c  -fPIC -DPIC -o vl/.libs/vl_median_filter.o
distcc[19616] ERROR: compile (null) on localhost failed
libtool: compile:  x86_64-pc-linux-gnu-gcc -m32 -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"10.4.6\" "-DPACKAGE_STRING=\"Mesa 10.4.6\"" "-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"10.4.6\" -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD=1 -I. -I../../../src/gallium/auxiliary/util -I../../../include -I../../../src -I../../../src/gallium/include -I../../../src/gallium/auxiliary -DUSE_EXTERNAL_DXTN_LIB=1 -D_GNU_SOURCE -DUSE_SSE41 -DDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_STRTOF -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DGLX_USE_DRM -DHAVE_LIBUDEV -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_ALIAS -DHAVE_DRI3 -DHAVE_MINCORE -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -pipe -march=core2 -ggdb -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -c vl/vl_mpeg12_decoder.c  -fPIC -DPIC -o vl/.libs/vl_mpeg12_decoder.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -m32 -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"10.4.6\" "-DPACKAGE_STRING=\"Mesa 10.4.6\"" "-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"10.4.6\" -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD=1 -I. -I../../../src/gallium/auxiliary/util -I../../../include -I../../../src -I../../../src/gallium/include -I../../../src/gallium/auxiliary -DUSE_EXTERNAL_DXTN_LIB=1 -D_GNU_SOURCE -DUSE_SSE41 -DDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_STRTOF -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DGLX_USE_DRM -DHAVE_LIBUDEV -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_ALIAS -DHAVE_DRI3 -DHAVE_MINCORE -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -pipe -march=core2 -ggdb -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -c vl/vl_mpeg12_bitstream.c  -fPIC -DPIC -o vl/.libs/vl_mpeg12_bitstream.o
/bin/sh ../../../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -m32 -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"10.4.6\" -DPACKAGE_STRING=\"Mesa\ 10.4.6\" -DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"10.4.6\" -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD=1 -I.    -I../../../src/gallium/auxiliary/util -I../../../include -I../../../src -I../../../src/gallium/include -I../../../src/gallium/auxiliary -DUSE_EXTERNAL_DXTN_LIB=1 -D_GNU_SOURCE -DUSE_SSE41 -DDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_STRTOF -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DGLX_USE_DRM -DHAVE_LIBUDEV -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_ALIAS -DHAVE_DRI3 -DHAVE_MINCORE -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include   -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -pipe -march=core2 -ggdb -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp  -c -o vl/vl_video_buffer.lo vl/vl_video_buffer.c
/bin/sh ../../../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -m32 -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"10.4.6\" -DPACKAGE_STRING=\"Mesa\ 10.4.6\" -DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"10.4.6\" -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD=1 -I.    -I../../../src/gallium/auxiliary/util -I../../../include -I../../../src -I../../../src/gallium/include -I../../../src/gallium/auxiliary -DUSE_EXTERNAL_DXTN_LIB=1 -D_GNU_SOURCE -DUSE_SSE41 -DDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_STRTOF -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DGLX_USE_DRM -DHAVE_LIBUDEV -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_ALIAS -DHAVE_DRI3 -DHAVE_MINCORE -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include   -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -pipe -march=core2 -ggdb -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp  -c -o vl/vl_deint_filter.lo vl/vl_deint_filter.c
libtool: compile:  x86_64-pc-linux-gnu-gcc -m32 -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"10.4.6\" "-DPACKAGE_STRING=\"Mesa 10.4.6\"" "-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"10.4.6\" -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD=1 -I. -I../../../src/gallium/auxiliary/util -I../../../include -I../../../src -I../../../src/gallium/include -I../../../src/gallium/auxiliary -DUSE_EXTERNAL_DXTN_LIB=1 -D_GNU_SOURCE -DUSE_SSE41 -DDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_STRTOF -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DGLX_USE_DRM -DHAVE_LIBUDEV -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_ALIAS -DHAVE_DRI3 -DHAVE_MINCORE -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -pipe -march=core2 -ggdb -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -c vl/vl_zscan.c  -fPIC -DPIC -o vl/.libs/vl_zscan.o
In file included from vl/vl_decoder.c:33:0:
vl/vl_mpeg12_decoder.h:33:23: fatal error: util/list.h: No such file or directory
 #include "util/list.h"
                       ^
compilation terminated.
distcc[19578] ERROR: compile vl/vl_decoder.c on mordor/7 failed
distcc[19578] (dcc_build_somewhere) Warning: remote compilation of 'vl/vl_decoder.c' failed, retrying locally
distcc[19578] Warning: failed to distribute vl/vl_decoder.c to mordor/7, running locally instead
distcc[19822] ERROR: compile (null) on localhost failed
/bin/sh ../../../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -m32 -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"10.4.6\" -DPACKAGE_STRING=\"Mesa\ 10.4.6\" -DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"10.4.6\" -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_UNREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD=1 -I.    -I../../../src/gallium/auxiliary/util -I../../../include -I../../../src -I../../../src/gallium/include -I../../../src/gallium/auxiliary -DUSE_EXTERNAL_DXTN_LIB=1 -D_GNU_SOURCE -DUSE_SSE41 -DDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_STRTOF -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DGLX_USE_DRM -DHAVE_LIBUDEV -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_ALIAS -DHAVE_DRI3 -DHAVE_MINCORE -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include   -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O2 -pipe -march=core2 -ggdb -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp  -c -o indices/u_indices_gen.lo indices/u_indices_gen.c
In file included from vl/vl_decoder.c:33:0:
vl/vl_mpeg12_decoder.h:33:23: fatal error: util/list.h: No such file or directory
 #include "util/list.h"
                       ^
compilation terminated.
distcc[19578] ERROR: compile vl/vl_decoder.c on localhost failed
Makefile:1702: recipe for target 'vl/vl_decoder.lo' failed
make[4]: *** [vl/vl_decoder.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
In file included from vl/vl_mpeg12_decoder.c:36:0:
vl/vl_mpeg12_decoder.h:33:23: fatal error: util/list.h: No such file or directory
 #include "util/list.h"
                       ^
compilation terminated.
Comment 14 Christian König 2015-06-01 08:25:57 UTC
(In reply to mehmet.giritli from comment #13)
> Hey Christian, thank you for the patch but it wont compile with a missing
> header util/list.h, here is the output from compilation barking about it:
> 
> FYI: I'm trying this on mesa 10.4.6 source

Development patches like that one are usually against the master branch, please use this one for testing.

In general if you have a specific (and easy to reproduce) bug it's usually a good idea to test master first if the bug isn't already fixed there.

Regards,
Christian.
Comment 15 mehmet.giritli 2015-06-13 11:06:53 UTC
(In reply to Christian König from comment #14)
> (In reply to mehmet.giritli from comment #13)
> > Hey Christian, thank you for the patch but it wont compile with a missing
> > header util/list.h, here is the output from compilation barking about it:
> > 
> > FYI: I'm trying this on mesa 10.4.6 source
> 
> Development patches like that one are usually against the master branch,
> please use this one for testing.
> 
> In general if you have a specific (and easy to reproduce) bug it's usually a
> good idea to test master first if the bug isn't already fixed there.
> 
> Regards,
> Christian.

Christian, I've been trying in whatever free time I have to run mesa git on my laptop but my gnome shell does not seem to be working with it. I dont see anything weird in the logs except:

Jun 13 13:43:54 frodo gnome-session[814]: gnome-shell: /tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/gallium/drivers/r600/r600_pipe.h:902: r600_conv_prim_to_gs_out: Assertion `mode < (sizeof(prim_conv)/sizeof((prim_conv)[0]))' failed.

Does this mean anything to you? As a result I have not been able to get a desktop on mesa-git running. I also tried updating to xorg-server git thinking may be it is a compatibility issue between the two but there was no difference whatsoever.

If you can give me some tips as to what the problem might be, I'd like to get it running and then continue the patch testing...

By the way, I'm on gentoo and using the live ebuilds from x11 overlay if you happen to use gentoo...They compile fine by the way..
Comment 16 Michel Dänzer 2015-06-15 03:50:20 UTC
(In reply to mehmet.giritli from comment #15)
> Christian, I've been trying in whatever free time I have to run mesa git on
> my laptop but my gnome shell does not seem to be working with it.

Note that you technically don't need to run anything but vlc with Mesa Git. You can point libvdpau to the Mesa Git build of libvdpau_r600.so via the environment variable VDPAU_DRIVER_PATH.


> Jun 13 13:43:54 frodo gnome-session[814]: gnome-shell:
> /tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/gallium/drivers/r600/
> r600_pipe.h:902: r600_conv_prim_to_gs_out: Assertion `mode <
> (sizeof(prim_conv)/sizeof((prim_conv)[0]))' failed.

Can you get a backtrace for this with gdb?
Comment 17 mehmet.giritli 2015-06-15 06:36:40 UTC
(In reply to Michel Dänzer from comment #16)
> (In reply to mehmet.giritli from comment #15)
> > Christian, I've been trying in whatever free time I have to run mesa git on
> > my laptop but my gnome shell does not seem to be working with it.
> 
> Note that you technically don't need to run anything but vlc with Mesa Git.
> You can point libvdpau to the Mesa Git build of libvdpau_r600.so via the
> environment variable VDPAU_DRIVER_PATH.

So, you mean if I can start X without gnome at all and then try running vlc with basic X server, right? Will try...

> 
> 
> > Jun 13 13:43:54 frodo gnome-session[814]: gnome-shell:
> > /tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/gallium/drivers/r600/
> > r600_pipe.h:902: r600_conv_prim_to_gs_out: Assertion `mode <
> > (sizeof(prim_conv)/sizeof((prim_conv)[0]))' failed.
> 
> Can you get a backtrace for this with gdb?

Sure, but you have to tell me how. I can get backtrace for apps like vlc from the terminal but for which app shall I get this bt? gnome-shell? Even then I am pretty clueless how to do it...Sorry...But if you give me some tips I'll do my best..
Comment 18 Michel Dänzer 2015-06-15 06:41:33 UTC
(In reply to mehmet.giritli from comment #17)
> So, you mean if I can start X without gnome at all and then try running vlc
> with basic X server, right? Will try...

That's another possibility, but I meant that you can run your GNOME session with the same Mesa version as before.


> > > Jun 13 13:43:54 frodo gnome-session[814]: gnome-shell:
> > > /tmp/portage/media-libs/mesa-9999/work/mesa-9999/src/gallium/drivers/r600/
> > > r600_pipe.h:902: r600_conv_prim_to_gs_out: Assertion `mode <
> > > (sizeof(prim_conv)/sizeof((prim_conv)[0]))' failed.
> > 
> > Can you get a backtrace for this with gdb?
> 
> Sure, but you have to tell me how. I can get backtrace for apps like vlc
> from the terminal but for which app shall I get this bt? gnome-shell?

Yes. Probably best if you can run gnome-shell from gdb from a remote shell.
Comment 19 mehmet.giritli 2015-06-28 14:51:11 UTC
Hi friends,

So, I was finally able to do this.

Michel: I am unable to reproduce the problem with crash anymore. FYI: This new situation is with yesterday's git. So, as of yesterday, everything works perfectly.

Christian: The original problem appeared with yesterdays mesa as well. So, there was no difference. Then I applied your patch and the problem completely disappeared. Thank you so much!

One question: If you commit this, what is the earliest release which will contain this fix?

Marking this as fixed.
Comment 20 Michel Dänzer 2015-06-29 00:27:00 UTC
Please don't resolve bug reports before the fix has landed in Git.
Comment 21 Christian König 2015-06-29 13:28:42 UTC
(In reply to mehmet.giritli from comment #19)
> One question: If you commit this, what is the earliest release which will
> contain this fix?

I have marked it as "CC: mesa-stable...", so it should show up in the next stable release. But I honestly don't know of hand which release that will be.
 
> Marking this as fixed.

As Michel already noted please don't do so. The workflow is that I mark it as fixes as soon as the patch is pushed and you can close it after that acknowledging that the problem is really fixed.

Apart from that thanks for the help, that was a really long outstanding issue.
Comment 22 Chris Rankin 2015-07-09 10:50:52 UTC
For reference: is this fix only relevant for UVD/UVD+ please?
Comment 23 Christian König 2015-07-09 12:20:57 UTC
(In reply to Chris Rankin from comment #22)
> For reference: is this fix only relevant for UVD/UVD+ please?

It's relevant for all hardware before UVD 3, e.g. R6xx R7xx, Evergreen.

UVD+ was just a marketing name for a certain feature set and isn't related to a hardware generation in any way.

But yeah for newer hardware it's rather irrelevant.


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.