I tried using this revision, but I have a doubt so I will report it. When using the previous revision 43_2694bm_43159_fix, use of LZCNT and BMI2 was observed when checking with info log. It seems that use of LZCNT and BMI2 can no longer be seen in info log using this revision. Although I do not know if LZCNT and BMI2 were actually running in the previous revision, though. Of course, there was no problem with the previous revision. It becomes as follows.
Is this behavior normal for normal operation? I have not changed hardware and OS since I used the previous revision. Maybe this is the only problem this time. Is it due to the OS I am using? I am using skylake and XPSP3(32bit). thanks.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi. That probably was changed in this commit of x264. Not showing of LZCNT and BMI2 together now is normal. But probably due use of XP (where AVX is not supported) it now detects BMI2 but don't show it also without AVX while already have hidden LZCNT. IMHO it should show LZCNT without BMI2 in your case.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you for your reply. Indeed it seems that it seems that way. I think that there is no choice but to give up if it is behavior on x264 specifications. There is this in the log of the commit of x264.
LZCNT implies SSE2
AVX2 implies BMI2
It seems that these two are involved in my environment. If this is the way it is probably LZCNT is actually used or I think that the same process is being done. And it also becomes as follows.
Skip printing LZCNT under CPU capabilities when BMI1 or BMI2 is available, and don't print FMA4 when FMA3 is available.
In this case I think that LZCNT may appear in the info log. However, LZCNT does not display. However, there seems to be a case where the display of LZCNT comes up. That is when you specify LZCNT with the --asm option. However, in this case it seems that it can be used only up to SSE2. If this is the case, LZCNT may be used substantially or the same process may be done. However, if LZCNT is not displayed in the situation where SSE4.2 is displayed and used, I think that LZCNT is not actually used. I do not know about BMI2, but in my environment AVX2 can not be used, so BMI2 may not be used anymore. It may be that the display does not come out. LZCNT may have been included in SSE2 or it may have become a mutual relationship. Likewise, AVX2 may have been included in BMI2 or it may be a mutual relationship. I think that it will be like the above if this is the case.
Also, even if LZCNT and BMI2 are used, their effect may be low. I have seen some results, but I feel I did not improve much. That was the comparison between using LZCNT and BMI2 up to AVX2+FMA3 on x264 and not using it. There was a similar result in x265, but it was a similar trend. This is due to the result of AMD Ryzen, and it can not be seen simply because there is a difference. If this is Intel, it may be different again. Even if LZCNT and BMI2 are not used and it is used only up to SSE4.2, even if it is compared with the previous Revision which can also use LZCNT and BMI2, it may be that there is no serious harmful big difference like the above. However, This is used up to SSE4.2, but it is different from being used up to AVX2+FMA3. thanks.
Last edit: woodpeko 2017-08-11
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi. Are you planning to release new revision of x264vfw or is there a possibility? If it is Yes you can do it? It seems that x264 r2901 was released. When will new revision of x264vfw release? We are waiting to be released near soon.
When will new revision of x264vfw release? current x264 is revision 2851.
Last edit: woodpeko 2017-07-07
Hi. I have released new version: 44_2851bm_44825
oh! god apps... thank you very much. thank you your works. I will report if there is a problem.
I tried using this revision, but I have a doubt so I will report it. When using the previous revision 43_2694bm_43159_fix, use of LZCNT and BMI2 was observed when checking with info log. It seems that use of LZCNT and BMI2 can no longer be seen in info log using this revision. Although I do not know if LZCNT and BMI2 were actually running in the previous revision, though. Of course, there was no problem with the previous revision. It becomes as follows.
43_2694bm_43159_fix: MMX2 SSE2Fast SSSE3 SSE4.2 LZCNT BMI2
44_2851bm_44825: MMX2 SSE2Fast SSSE3 SSE4.2
Is this behavior normal for normal operation? I have not changed hardware and OS since I used the previous revision. Maybe this is the only problem this time. Is it due to the OS I am using? I am using skylake and XPSP3(32bit). thanks.
Hi. That probably was changed in this commit of x264. Not showing of LZCNT and BMI2 together now is normal. But probably due use of XP (where AVX is not supported) it now detects BMI2 but don't show it also without AVX while already have hidden LZCNT. IMHO it should show LZCNT without BMI2 in your case.
Thank you for your reply. Indeed it seems that it seems that way. I think that there is no choice but to give up if it is behavior on x264 specifications. There is this in the log of the commit of x264.
LZCNT implies SSE2
AVX2 implies BMI2
It seems that these two are involved in my environment. If this is the way it is probably LZCNT is actually used or I think that the same process is being done. And it also becomes as follows.
Skip printing LZCNT under CPU capabilities when BMI1 or BMI2 is available, and don't print FMA4 when FMA3 is available.
In this case I think that LZCNT may appear in the info log. However, LZCNT does not display. However, there seems to be a case where the display of LZCNT comes up. That is when you specify LZCNT with the --asm option. However, in this case it seems that it can be used only up to SSE2. If this is the case, LZCNT may be used substantially or the same process may be done. However, if LZCNT is not displayed in the situation where SSE4.2 is displayed and used, I think that LZCNT is not actually used. I do not know about BMI2, but in my environment AVX2 can not be used, so BMI2 may not be used anymore. It may be that the display does not come out. LZCNT may have been included in SSE2 or it may have become a mutual relationship. Likewise, AVX2 may have been included in BMI2 or it may be a mutual relationship. I think that it will be like the above if this is the case.
Also, even if LZCNT and BMI2 are used, their effect may be low. I have seen some results, but I feel I did not improve much. That was the comparison between using LZCNT and BMI2 up to AVX2+FMA3 on x264 and not using it. There was a similar result in x265, but it was a similar trend. This is due to the result of AMD Ryzen, and it can not be seen simply because there is a difference. If this is Intel, it may be different again. Even if LZCNT and BMI2 are not used and it is used only up to SSE4.2, even if it is compared with the previous Revision which can also use LZCNT and BMI2, it may be that there is no serious harmful big difference like the above. However, This is used up to SSE4.2, but it is different from being used up to AVX2+FMA3. thanks.
Last edit: woodpeko 2017-08-11
Hi. Are you planning to release new revision of x264vfw or is there a possibility? If it is Yes you can do it? It seems that x264 r2901 was released. When will new revision of x264vfw release? We are waiting to be released near soon.
x264 Main Development tree:
http://git.videolan.org/?p=x264.git;a=summary
x264 Sandbox Developement tree:
http://git.videolan.org/?p=x264/x264-sandbox.git;a=summary
EDIT: Updated and Changed.
Last edit: woodpeko 2018-05-17