Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
![]() |
#901 | Link | |
ангел смерти
![]() Join Date: Nov 2004
Location: Lost
Posts: 9,555
|
Quote:
|
|
![]() |
![]() |
![]() |
#902 | Link |
I am maddo saientisto!
Join Date: Aug 2018
Posts: 103
|
Hi y'all!
So, since I keep finding more and more alignment-related bugs that only show up on GCC 8.2, but not on 7.3 (compiler's fault? aomedia's fault? Who knows <rant>they have barely gotten any attention despite the community's effort and the fact they involve common configurations and major compiler releases</rant>) I decided to just go for it and build a GCC 7.3 cross compilation VM Builds specs: GCC 7.3, 64bits only, statically linked, secure api enabled, so no Win XP support lbd binaries have been compiled with -DCONFIG_LOWBITDEPTH=1 hbd binaries have been compiled with -DCONFIG_LOWBITDEPTH=0 Use the former for all your 8bits needs since they are considerably faster, the latter for 10-12bits av1-1.0.0-541-g7d447f5b0: https://mega.nz/#!0wxmgCqS!vBuViCEA7...v1MubYI0lJnluI Last edited by SmilingWolf; 11th September 2018 at 09:40. |
![]() |
![]() |
![]() |
#904 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,327
|
@SmilingWolf: I'll keep an eye on it, as soon as MABS passes in both branches again. But for now, there is a greater evil breaking the building of ffmpeg. If the API for AV1 was ever "frozen", it seems to melt already.
And yes, I shared one of the issues of GCC 8.2.0 creating unaligned RAM access when vector optimization is enabled, several weeks ago, and apart from adding more CC's, not much happened about it. Last edited by LigH; 11th September 2018 at 11:12. |
![]() |
![]() |
![]() |
#905 | Link | ||
I am maddo saientisto!
Join Date: Aug 2018
Posts: 103
|
Quote:
Shouldn't take much more than removing lines 741-744 from libavcodec/libaomenc.c This one's on FFMPEG, and will probably be fixed in a day or so What bothers me much more is the same as the second part of your post, the inertia over months-long periods of time in the AOM tracker Quote:
Side note: unaligned memory access is fine AS LONG AS the ASM instructions emitted take into account memory could be unaligned. In this instance GCC 8.2 -O3 emits instructions that expect memory to be aligned to a 16-byte boundary (movdqa and movaps), while GCC 8.2 -O3 -fno-tree-slp-vectorize emits instructions fit for unaligned memory access (movdqu and movups) My advice is to stay on GCC 7.3 for AV1 for the time being. I found the laptop I was using back in june to build A/V stuff with an old toolchain, if you want I can zip it up and upload Last edited by SmilingWolf; 11th September 2018 at 11:59. |
||
![]() |
![]() |
![]() |
#906 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,327
|
And I believe MABS even only selects -O2.
MSYS2 can't include GCC 8.2.0 in the 32-bit branch because it doesn't build itself without errors. I like how MABS keeps MSYS2 up-to-date before updating and compiling the projects. I don't want to miss this feature completely due to very rare compiler issues limiting the speed of the generated code; ultimately it has to be fixed in GCC, and when this happens, MABS will update MSYS2 to it. I could dig in my archives and find an older MSYS with GCC 7.x too, but I don't want to stuff my drive for a rather little reason. I hope I am not the only provider of binaries... Last edited by LigH; 11th September 2018 at 18:21. |
![]() |
![]() |
![]() |
#907 | Link |
I am maddo saientisto!
Join Date: Aug 2018
Posts: 103
|
Nope, the only custom GCC flags MABS uses are the ones that won't cause UMA (because typing unaligned memory access all the time is tiring): https://github.com/jb-alvarado/media...ompile.sh#L837
Every other compiler flag is left to the default, which implies -O3 Anyway, I think I have almost worked out what's wrong with issue 2145 and might be able to propose a temporay fix and an explanation shortly. So that would be one out of everybody's hair As for binaries, as I said I can compile 64bit stuff on my VM now (the first ones are right above, in my first post), if there's need for something particular I guess I can tweak my setup. E.g. I might be able to stuff an extra 32bit toolchain on the VM. Just, no WinXP support, please Last edited by SmilingWolf; 11th September 2018 at 18:36. |
![]() |
![]() |
![]() |
#909 | Link | ||
Registered User
Join Date: Aug 2015
Posts: 34
|
Quote:
BTW we are getting segmentation soon - once we get it I'll let you know, it'll make the effect of cdef-dist far stronger. Quote:
|
||
![]() |
![]() |
![]() |
#910 | Link |
I am maddo saientisto!
Join Date: Aug 2018
Posts: 103
|
av1-1.0.0-552-gbb82e05fb: https://mega.nz/#!99ASgKAJ!l7Lc4n9KE...9FgrYxXAEaoByw
As promised, the explanation for BUG=aomedia:2145 has dropped. Does anybody know if one of x264/x86inc.asm maintainers could take a look? There are some contacts in the header of the file, I suppose my best bet is e-mailing Henrik Gramner, who seems responsible for most of the recent commits, yes? |
![]() |
![]() |
![]() |
#911 | Link |
Registered Developer
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,043
|
If a register is being used has to be flagged by the ASM function in question (in its cglobal line), x86inc.asm cannot detect that automatically, the code has to tell it. If its not pushing regs that are in fact being used, then the cglobal line may be wrong. From the code it looks like the macro is being passed a "7" for numbers of register used, while RSI would be the 9th in their counting (ie. r8). I don't see it directly being used in quantize_b, but it maybe used behind a symbolic name to load a parameter.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders |
![]() |
![]() |
![]() |
#913 | Link |
Registered Developer
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,043
|
If dequant is the highest parameter being used, changing the 7 to a 9 at the end of the file might be all that is needed.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders |
![]() |
![]() |
![]() |
#915 | Link | |
Registered User
Join Date: Mar 2008
Posts: 207
|
http://www.streamingmedia.com/Articl...ok-127133.aspx
![]() Quote:
|
|
![]() |
![]() |
![]() |
#916 | Link | |
Registered User
Join Date: Apr 2008
Location: Russia, Vladivostok
Posts: 2,492
|
Quote:
I don't know why - but on my home/work PC i can't compile, cmake error on AVX2(my PC don't support AVX2).
__________________
I7 2600K@4.2 /Asrock P67 Extreme4 Gen 3 /Kingston HyperX 8Gb 1866 (4x2) Kit /OCZ Vertex 3 256Gb /GTX 1650 /Samsung U28R550UQI /LG 47LM620T /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215 |
|
![]() |
![]() |
![]() |
#917 | Link | ||
Registered User
Join Date: Jul 2018
Posts: 77
|
Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#918 | Link | |
I am maddo saientisto!
Join Date: Aug 2018
Posts: 103
|
Quote:
Maybe there is an older version/toolchain in your $PATH that's interfering? GCC 7/8 can emit AVX2 instructions even when running on an old Pentium 4. Last edited by SmilingWolf; 12th September 2018 at 13:58. |
|
![]() |
![]() |
![]() |
#919 | Link |
Registered User
Join Date: Apr 2008
Location: Russia, Vladivostok
Posts: 2,492
|
Use VS 2017 or GCC 8.2.0 - there is no difference.
__________________
I7 2600K@4.2 /Asrock P67 Extreme4 Gen 3 /Kingston HyperX 8Gb 1866 (4x2) Kit /OCZ Vertex 3 256Gb /GTX 1650 /Samsung U28R550UQI /LG 47LM620T /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215 |
![]() |
![]() |
![]() |
#920 | Link |
I am maddo saientisto!
Join Date: Aug 2018
Posts: 103
|
Can you post the full cmake -G "MSYS Makefiles" etc. etc. log on pastebin as it appears on screen?
Or, better/more complete, the contents of <yourBuildDir>/CMakeFiles/CMakeError.log and CMakeOutput.log? Last edited by SmilingWolf; 12th September 2018 at 14:21. |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|