-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek May 13, 2016 7:59 AM (in response to tapek)1 of 1 people found this helpfulI have check NVIDIA drivers, they use only SSE2 instructions in DX12 driver, so why you (AMD) enforces SSE4.2 ? I think driver should not enforce instruction set that OS is not enforcing, and Windows 10 x64 requires only SSE2 + CMPXCHG16B + LAHF/SAHF + PrefetchW.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Jun 6, 2016 3:16 PM (in response to tapek)1 of 1 people found this helpfulPOPCNT instruction also present in latest 16.6.1 drivers.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
waltc Sep 23, 2016 7:56 AM (in response to tapek)Might as well ask, "Why do AMD& nVidia force me to buy a dx12-supporting GPU just to run d3d12 in hardware?" For that matter, I've never been able to understand why people would spend hundreds of dollars to upgrade a GPU but get stingy when it comes to their cpu, core logic, and system ram, etc.? SSE4.2 has been a *standard* instruction for *several years* now, so why shouldn't AMD support it? Even games like the recently released No Man's Sky were released requiring SSE 4.2--the game had to be recompiled and patched just so that it could support SSE2 as well as SSE 4.2. Oh, and nVidia doesn't actually support the same features in D3d12 that AMD supports, either (although nVidia claims to support *more* D3d12 features than AMD--the fact is that nVidia doesn't support things like Async Compute even though the company really wants to convince people that their GPUs do.) But perhaps you'd be better off with more backwards-looking hardware--like a nVidia GPU.
Requiring SSE 4.2 in a CPU is no different than requiring a d3d12-level GPU to support d3d12. As cheap as SSE4.2-supporting CPUs are these days it is silly to object to a GPU driver requiring SSE4.2 in the cpu--you can buy an AMD FX-xxxx CPU for a *quarter* of the price of an R9 390x, for instance. Why try and blame a GPU manufacturer for your reluctance to keep your CPU and system core-logic support updated *during the last ten years?*
tapek wrote:
I have check NVIDIA drivers, they use only SSE2 instructions in DX12 driver, so why you (AMD) enforces SSE4.2 ? I think driver should not enforce instruction set that OS is not enforcing, and Windows 10 x64 requires only SSE2 + CMPXCHG16B + LAHF/SAHF + PrefetchW.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 24, 2016 10:46 AM (in response to waltc)But the main point is that those drivers should not have WHQL signature because it will crash on some machines that are 100% compatible with Windows 10 ie. requiring instruction set different that system requires in driver is IMHO wrong, and should be fixed.
Also some users like me feels deceived, if I have bough GeForce card then I will have full working DX12 because drivers require only SSE2.
EDIT: With bazanra patched files DX12 works properly and only patched instruction is POPCNT so driver really not use SSE4 at all, only one instruction POPCNT which I think is a bug in compiler switches or in compiler itself - Microsoft Visual C++ compiler had many similar bugs ...
EDIT2: I exchanged my old HD6850 to R7 360 because older one died, I cannot afford to buy new PC. If I know that I have such problems with new Radeon drivers I will bough GeForce ... but I want to help AMD and buy their solutions... i'm really disappointed.
EDIT3: SSSE3 CPU can run most games, even DX12 games like Rise of Tomb Raider. Even more, one of latest games - No Man Sky had SSE4.1 requirement at launch but so many users wanted to play so developers patched it so it requires now only SSSE3 - but is OpenGL game so it works fine(ish - AMD OpenGL sucks) with latest Radeon drivers.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
xav93160 Sep 25, 2016 10:32 AM (in response to tapek)Hello,
My english isn't very good but i'll try to explain my problem too.
I think to have the same probleme, in the past, rise of the tomb raider worked well (on windows 10 15.11 with amd driver 15.30).
I have an old cpu (q9650) and i could played with directx 12.
Now i'm on windows 10 1607 et with the latest amd driver 16.9.2 (i try 16.9.2 and 16.7.3 too), it's don't work with directx 12 (deus ex too).
I thougt that the probleme came of microsoft and the latest updates of windows 10 (prepatch on 15.11 and the anniversary update 1607) but the problem seem to be the driver amd and the instruction of cpu.
Me too i bought a r9 390 to used directx 12 on game and i'm very dissapointed...
It is necessary to believe that everything is made to make us buy of new cpu..
I don't want to upgrade my cpu now ...
I am going to try to follow the procedures to explain lower but amd work on patches of compatibility?
Thank you for your help.
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
mirh Sep 24, 2016 11:17 AM (in response to waltc)Requiring SSE 4.2 in a CPU is no different than requiring a d3d12-level GPU to support d3d12.
No, thanks for sharing your weird ideas.
Now please we were discussing about the issue.
-
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Jun 21, 2016 12:28 PM (in response to tapek)1 of 1 people found this helpfulI have tested Radeon Pro Duo Workstation drivers (16.20.1009 - Radeon™ Pro Duo Workstation Driver for Windows® ), it contains amdxc32.dll/amdxc64.dll version 8.18.10.0118, which I already tested in Crimson Software 16.4.2, but that version have different build date and does NOT contain popcnt instruction ! So I think one branch have different build settings (maybe wrong ?) and defaults to AVX.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
mirh Aug 6, 2016 9:29 AM (in response to tapek)2 of 2 people found this helpful16.5.1 works here on my C2D.. or hey, at least Forza doesn't crash before even creating the window.
I tested 16.5.2, 16.5.2.1, 16.6.1 and latest 16.7.3 and those are indeed broken.
Very nice catch with those Radeon Pro drivers then.
Oddly theirs amdxc64.dll has more or less the same pdb info than 16.5.2 one (and about the same size), but 16.5.1 build number.
-
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
Xfire90 Sep 4, 2016 1:54 PM (in response to tapek)Up for this, same problem here.
R9 290 and R9 390X justo won't start DX12 games. I don't need a CPU upgrade.PLEASE AMD: add the old SSE path to your driver or refund old CPU owners. I think the first option is better for everyone.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
cbd Sep 6, 2016 6:51 PM (in response to tapek)I am also having this problem.
DX12 on CPUs without SSE 4.2 or POPCNT instructions worked perfectly in April this year(16.4.1). All DX12 titles worked perfectly.
Similar to other users my CPU does not currently need an upgrade and its performance rivals that of, and can even best, an Intel i5.
Please re-enable DX12 driver support for pre SSE4.2/POPCNT CPUs.
nVidia does not impose this limitation in its drivers.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
ferrari486 Sep 8, 2016 1:44 PM (in response to tapek)I am also encountering this problem. I havent been able to run any DX12 apps which is a big reason I bought the RX 480
furthermore I am having trouble extracting the dll from the radeon pro package. the only file I can find is amdxc64.dl_ ,which isn't a .dll file. When I rename it and put it in the system32 folder, dx12 apps still don't work
-
Re: DirectX 12 support on pre SSE4.2 CPUs
mirh Sep 11, 2016 5:11 AM (in response to ferrari486)Use "expand -r amdxc64.dl_" command
-
Re: DirectX 12 support on pre SSE4.2 CPUs
ferrari486 Sep 12, 2016 4:17 AM (in response to mirh)Thank you so much! I was able to get dolphin running with DX12
Time spy doesnt work but its just a benchmark anyway
-
Re: DirectX 12 support on pre SSE4.2 CPUs
mirh Sep 12, 2016 7:34 AM (in response to ferrari486)I guess also extracting 32 bit dll wouldn't be bad?
Or try to see if Radeon Pro dlls, rather than 16.5.1 one (or viceversa) makes a difference.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 12, 2016 9:07 AM (in response to mirh)The DX12 driver from Radeon Pro package does seems to work properly in some games, driver from 16.5.1 package you linked few comments above works much better.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
mirh Sep 13, 2016 7:30 AM (in response to tapek)Uh, nice to know (and perhaps might even explain my crashes in Forza and BF1).
I'll update the handy package on PCGW accordingly.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 18, 2016 12:07 PM (in response to mirh)I have problems with 16.9.1 drivers because they always try to load that file:
ModLoad: 00007ffa`a6890000 00007ffa`a70fa000 C:\Windows\System32\DriverStore\FileRepository\c0306711.inf_amd64_22668ece07e665a6\amdxc64.dll
and crash ...
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 18, 2016 12:25 PM (in response to mirh)Ahh, I have sep7 driver, maybe in sep13 they fixed absolute paths in registry ...
EDIT: Nope, paths are absolute in registry in 16.9.1 so you cant use other file in game directory because system will always use absolute path
-
Re: DirectX 12 support on pre SSE4.2 CPUs
mirh Sep 18, 2016 1:27 PM (in response to tapek)I just checked in forza, and there's nothing weird in dll loading.
Amdxc64 is loaded from system32 folder.
Also, I always had to replace it there since UWP programs are dumb and all, but now that I think.. If vanilla version has problems I wouldn't know why even keeping it.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 26, 2016 4:15 PM (in response to mirh)In Windows 10 1607 with 16.9.1/16.9.2 drivers these files does even exist in system32 directory, they are stored in DriverStore\FileRepository and absolute paths are added to registry - reinstalling older "fixes" this but it seems to be by desing.
-
-
-
-
-
-
-
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
bazanra Oct 3, 2016 8:24 PM (in response to tapek)2 of 2 people found this helpfulI've replaced every popcnt call in amdxc32.dll and amdxc64.dll taken from 16.9.1(sep13) with my own function, which is doing the same stuff, but on every cpu.
If someone is interested to try it, here they are.
Files for 16.9.2 are now available.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 18, 2016 12:47 PM (in response to bazanra)1 of 1 people found this helpfulThanks you very much, files works ! But for 16.9.1 drivers on my Windows 10 I need to replace original files in DriverStore to make it work because 16.9.1 added absolutne path to registry Seems that 16.9.1 installer do not even copy files to System32/SysWOW64, only to DriverStore ... So next question to AMD, bug in installer or by design ?
-
Re: DirectX 12 support on pre SSE4.2 CPUs
bazanra Sep 18, 2016 1:38 PM (in response to tapek)I suggest using my files by replacing the original ones used by installer in folder "C:\AMD\WHQL-Win10-64Bit-Radeon-Software-Crimson-16.9.1-Sep13\Packages\Drivers\Display\WT6A_INF\B306709"(path by default), and installing driver anew(using setup.exe in "C:\AMD\WHQL-Win10-64Bit-Radeon-Software-Crimson-16.9.1-Sep13") - let the installer put them wherever it wants.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
ferrari486 Sep 19, 2016 3:09 AM (in response to bazanra)I gave this a shot and Time Spy still wont work for me.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
bazanra Sep 19, 2016 3:29 AM (in response to ferrari486)1 of 1 people found this helpfulDid you tried clean install(with amd clean uninstall utility)? If you did, something else might be the problem.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 20, 2016 12:27 PM (in response to ferrari486)1 of 1 people found this helpfulTime Spy works for me. You placed files in benchmark directory or replaced them system wide ? With 16.9.1 drivers and Windows 10 1607 you need to replace files in C:\Windows\System32\DriverStore\FileRepository
-
Re: DirectX 12 support on pre SSE4.2 CPUs
mirh Sep 23, 2016 12:31 AM (in response to tapek)After 49 days of agony, AU finally released even for my computer.
And indeed, among other things, it seems like driver migrated from system32 folder to driverstore.
Still, I reinstalled 16.5.1 to see whether damn forza finally doesn't crash.. And everything is fine and in its usual place.
EDIT: I installed 16.9.2, and now drivers are back into FileRepository. AU mysteries.
Just for the records, to ease the replacing of files in whatever folder they ended up to be, I put them in drivers "unpacked" folder, then uninstalled and reinstalled just AMD driver.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 26, 2016 4:20 PM (in response to mirh)1 of 1 people found this helpfulUpps, I already responded on your post above.
FileRepository is used only by WDDM 2.1 drivers (ie 16.9.1+, check in dxdiag), yes, Microsoft updated WDDM to 2.1 in Windows 10 Anniversary and this unusual place of installation seems to be part of this update.
-
-
-
-
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
Xfire90 Sep 22, 2016 4:15 AM (in response to bazanra)Did you merged the old dll functions or did you implemented a workaround yourself? Will I get performance loss?
-
Re: DirectX 12 support on pre SSE4.2 CPUs
bazanra Sep 22, 2016 12:32 PM (in response to Xfire90)2 of 2 people found this helpfulI was unable to find same functions in old dll's without deep reverse engineering, so i had to implement a workaround myself. Performance losses are possible, but unlikely - my workaround should be fast enough.
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 22, 2016 12:33 PM (in response to bazanra)1 of 1 people found this helpfulCan you patch latest's 16.9.2, seems AMD included some DX12 related fixes.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
bazanra Sep 22, 2016 1:38 PM (in response to tapek)1 of 1 people found this helpfulI'll watch to it later(few days).
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
cbd Sep 23, 2016 10:32 AM (in response to bazanra)Thank you very much for your efforts! Everything works now.
I do have one consideration though, I realize that we are lucky to have you around but you know what they say about teaching a man to fish... Could you maybe describe to us how to perform this task so that you are not burdened with requests to be releasing something like this all the time? It's up to you, of course, it is your work after all.
Thanks agian.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
bazanra Oct 3, 2016 8:29 PM (in response to cbd)1 of 1 people found this helpfulIf you can read russian, I've written an article, where I described what and how I did.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
cbd Oct 5, 2016 11:02 AM (in response to bazanra)Thanks again for your work! I can't read Russian ut I'll gladly try to see if I can gleam some information.
-
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Oct 6, 2016 1:07 PM (in response to bazanra)1 of 1 people found this helpfulCrimson Edition 16.10.1 Hotfix is out, POPCNT still there
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
icatalin32 Sep 22, 2016 3:56 AM (in response to tapek)Why would amd implement this sse 4.2 instructions (POPCOUNT ) in their latest drivers? Something is definatelly wrong here. Why would anyone be anxious to implement those instructions? I guess those people haven't realized WE (the old cpus owners - core2quad in my case) are still around.
If I manage to install the new 16.9.1 package previously updated with your two files, does it mean Quantum Break (which requires POPCOUNT in Win10) will work using my core2quad Q9550 and my Radeon R9 290?
So the steps are:
1) download official 16.9.1 drivers for win10 x64
2) clean uninstall amd radeon drivers
3) update the 16.9.1 install kit with the two custom files (overwrite the originals) using your path: "replacing the original ones used by installer in folder "C:\AMD\WHQL-Win10-64Bit-Radeon-Software-Crimson-16.9.1-Sep13\Packages\Drivers\Display\WT6A_INF\B306709"(path by default)"
4) install the 16.9.1 package previously customized and let the install do its job.
Is it correct the above?
And, if it works, will we need custom files for every new driver iteration?We will need your help again . I'll get back to you to tell if Rise of the Tomb Raider DX12, Quantum Break and Forza Motorsport Apex (natively in dx12 I guess since it doesn't have an option in the menu) works using the new custom 16.9.1 driver. For now, I'm using 16.3.2 drivers and all titles work in DX12 except QB which require POPCOUNT.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 22, 2016 12:32 PM (in response to icatalin32)If game requires SSE4/POPCNT then no - it wont work, but many games do not require those instruction to work like Rise of Tomb Raider and they support DX12.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
bazanra Sep 22, 2016 12:47 PM (in response to icatalin32)1 of 1 people found this helpfulIf Quantum Break has popcnt calls in it's own .exe or .dll's, my files will not help. And i won't be able to modify them, since it uses Denuvo.
every step:
1) clean uninstall amd radeon drivers
2) download official 16.9.1 drivers for win10 x64 (whql-win10-64bit-radeon-software-crimson-16.9.1-sep13.exe)
3) run and extract it(folder by default: C:\AMD\WHQL-Win10-64Bit-Radeon-Software-Crimson-16.9.1-Sep13\, close "amd installer" window, when it shows.
4) update the 16.9.1 install kit with the two custom files (overwrite the originals) using your path: "replacing the original ones used by installer in folder "C:\AMD\WHQL-Win10-64Bit-Radeon-Software-Crimson-16.9.1-Sep13\Packages\Drivers\Display\WT6A_INF\B306709"(path by default)"
5) run C:\AMD\WHQL-Win10-64Bit-Radeon-Software-Crimson-16.9.1-Sep13\Setup.exe and install everything as usual
6) if(when) there will be warning about non-original files, click "install anyway"(or something like that - i don't have english windows to check what exactly it warns about)
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 23, 2016 2:52 AM (in response to tapek)Why this question is now "solved" ? I did not check it as solved and we not received any response from AMD ...
-
Re: DirectX 12 support on pre SSE4.2 CPUs
cbd Sep 23, 2016 10:39 AM (in response to tapek)I agree. This matter has not been resolved to a satisfactory degree, nor have we had any input from AMD themselves.
It's bad enough we have people showing up just to misrepresent our arguments and bring us down in this thread now.
EDIT:Looks like the thread got cleaned. Thank you mods!
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
hardcoregamesâ„¢ Sep 25, 2016 4:35 PM (in response to tapek)POPCNT is SSE3, BMI is SSE4
learn to write software before posting comments that are clearly outside your skil llevel
-
Re: DirectX 12 support on pre SSE4.2 CPUs
cbd Sep 25, 2016 10:00 PM (in response to hardcoregamesâ„¢)Who's this guy?
We're doing the best we can. I can't speak for everyone, but I would imagine most if not all of us are interested in learning as much as we can about the issue. We have to start somewhere, regardless of whether or not any of us are classically trained in such topics; we have to comment on them.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
xav93160 Sep 26, 2016 8:58 AM (in response to cbd)Hello!
I do not know if the comment was for me but if it is the case I did not want to be offensive and I really appreciate the work which is realized by amd. I did not pay attention whom I was on a forum of developer then I apologize for it, I just looked of the help(assistant) and all this is very instructive. Moreover my problem is resolute (solved) after one week grace(favor) thus has you thank you, I downloaded the amdx file 64.dll in the case or but the games (rise of the tomb raider and directx 12) work again with directx 12 on Windows 10 1607 with drivers amd 16.5.1 thus thank you!:-)
And with all update of windows 10 1607
Thank you again
-
Re: DirectX 12 support on pre SSE4.2 CPUs
cbd Sep 26, 2016 11:20 AM (in response to xav93160)xav93160 wrote:
Hello!
I do not know if the comment was for me but if it is the case I did not want to be offensive and I really appreciate the work which is realized by amd. I did not pay attention whom I was on a forum of developer then I apologize for it, I just looked of the help(assistant) and all this is very instructive. Moreover my problem is resolute (solved) after one week grace(favor) thus has you thank you, I downloaded the amdx file 64.dll in the case or but the games (rise of the tomb raider and directx 12) work again with directx 12 on Windows 10 1607 with drivers amd 16.5.1 thus thank you!:-)
And with all update of windows 10 1607
Thank you again
Don't let people push you around, you're completely fine!
Glad to have you.
-
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 26, 2016 4:02 PM (in response to hardcoregamesâ„¢)Then read this: SSE4 - Wikipedia, the free encyclopedia
-
Re: DirectX 12 support on pre SSE4.2 CPUs
mirh Sep 26, 2016 4:51 PM (in response to tapek)Well.. Technically you are both wrong.
The instruction we are talking about is POPCNT, and there are SSE 4.1 CPUs without this (Intel Core 2) and there are not-even-SSE4 cpus that have it (amd phenoms).
So.. If any the title should be changed, but I feel like it would be kind of lame to read. So just keep it.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
hardcoregamesâ„¢ Sep 26, 2016 9:30 PM (in response to tapek)POPCNT is not a SSE instruction, its part of the core logic, read the rest of the CPU manuals
-
Re: DirectX 12 support on pre SSE4.2 CPUs
Xfire90 Sep 27, 2016 6:11 AM (in response to hardcoregamesâ„¢)OMG, thank you for clarifying this. Now DX12 works on my Xeon x5470. Ty so much!
-
Re: DirectX 12 support on pre SSE4.2 CPUs
cbd Oct 1, 2016 10:56 PM (in response to Xfire90)Ha! I like your spirit.
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Sep 28, 2016 7:59 AM (in response to hardcoregamesâ„¢)Yes, is not SIMD instruction and it has it's own CPU ID but this not change things - is not supported by older CPUs.
EDIT: Compiled a cpuid tool from MSDN code: https://msdn.microsoft.com/en-us/library/hskdteyh.aspx - included log from my CPU - Q6600 so you can see that POPCNT is NOT supported.
-
cpuid-tool.zip 94.7 KB
-
Re: DirectX 12 support on pre SSE4.2 CPUs
hardcoregamesâ„¢ Oct 2, 2016 5:56 AM (in response to tapek)If POPCNT is not working, check your compiler settings. I use Visual Studio and it works fine.
I test code on several processors all the time for QA purposes
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Oct 2, 2016 8:54 AM (in response to hardcoregamesâ„¢)I think you misunderstood something ...
First - POPCNT will not work for Core 2 processors because they not support it in hardware.
Second - My code ? POPCNT is in AMD DX12 user mode driver (amdxc32.dll and amdxc64.dll) - that is main problem ie. user mode driver will always crash on Core 2 processors so all DX12 apps will crash.
EDIT: You can see crash log from WinDBG in first post, it crashed because of illegal instruction so this exactly mean that my possessor (Core 2 Quad Q6600) does not support that instruction.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
hardcoregamesâ„¢ Oct 2, 2016 9:05 AM (in response to tapek)I lack many CPUs, not enough coin, but POPCNT is on every CPU from Pentium III onwards
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Oct 2, 2016 3:35 PM (in response to hardcoregamesâ„¢)1 of 1 people found this helpfulNo, you misunderstand manuals, population count != POPCNT instruction. You can use different methods of population counting but special super fast instruction was added with Intel SSE4.2 instruction set. cbd added link to great page that explains everything and also have benchmarks of different methods of population count.
EDIT: This is little stupid, why you state that POPCNT is supported on Pentium III+ ? You tested this ? Because on my own Intel Core 2 Quad Q6600 POPCNT instruction is not supported (CPU ID bit is not set) and crashes application that uses it with "Illegal instruction" exception...
EDIT: Quick test case in VS2015, screenshots from debugging:
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Oct 3, 2016 5:40 AM (in response to hardcoregamesâ„¢)1 of 1 people found this helpfulAMD support for POPCNT started with Barcelona family (K10, 10h, ie. first Phenoms from 2007), ie. about a year sooner than Intel supported his instruction (Nehalem architecture). Note that oldest documentation on that page is exactly from 10h family, ie. first supporting POPCNT.
EDIT:
Intel® 64 and IA-32 Architectures Software Developer Manuals
From manual:
"Before an application attempts to use the POPCNT instruction, it must check that the processor supports SSE4.2 (if
CPUID.01H:ECX.SSE4_2[bit 20] = 1) and POPCNT (if CPUID.01H:ECX.POPCNT[bit 23] = 1)."
In table 5-2 you have a supported processors list... and nope, Pentium III does not support POPCNT instruction ... Also note that POPCNT in Intel docs is in SSE4.2 group.
So now official Intel documentation states that POPCNT is not supported on my Core 2 Quad Q6600, so you will again tell me that is supported ?
EDIT:
Population count is little misleading because some very old architectures like PowerPC and even PSX CPU (MIPS R3051) support similar instructions but x86 does not, you can count bits in different way but specialized instruction in Intel x86 CPUs was added very late - with SSE4.2 in Nehalem architecture.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
hardcoregamesâ„¢ Oct 3, 2016 6:59 AM (in response to tapek)The POPCNT with the old SSE3 class CPU is different that the one with AMD64 that was added with AMD K10 and Nehalem
Read more manuals, start with the 8086 manual and then the 80886 and onward
I did, i have tons of manuals for CPU programming for BIOS developers
Did you know Z80 is still used in some embedded hardware?
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Oct 3, 2016 1:11 PM (in response to hardcoregamesâ„¢)1 of 1 people found this helpfulBut whole topic is about POPCNT instruction (special opcode - F3 0F B8 like in here http://ref.x86asm.net/coder32.html#x0FB8 and here http://ref.x86asm.net/coder64.html#x0FB8 ) introduced with Intel SSE 4.2 which is used in AMD GPU driver. If driver had used older, more compatible population count method then this topic and whole problem will not exist.
PS: Visual Studio intrinsic __popcnt is generating this instruction too, even is you force disable AVX/SSE2 instructions.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
hardcoregamesâ„¢ Oct 3, 2016 12:50 PM (in response to tapek)Visual Studio by default for x64 uses AMD64 and SSE2 for float() variables. If you use an arch command line switch you can change it or use C style intrinsics which makes the code utterly useless as it is not portable.
Anything I develop runs fine on my old Phenom II which is K10 based. I also have an older Athlon 64 which I test code on and it works fine too.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Oct 3, 2016 1:20 PM (in response to hardcoregamesâ„¢)But I think you not use __popcnt intrinsic in code ? Try to run that simple test case from my screenshots on Athlon 64 (K8) it should crash there.
VS should not generate this instruction when not set to /arch:AVX, but when you use intrinsic it will be always generated (at last on my fully updated VS2015).
-
Re: DirectX 12 support on pre SSE4.2 CPUs
hardcoregamesâ„¢ Oct 3, 2016 2:07 PM (in response to tapek)if you use /arch:avx the K8 will not be able to run the program, which is why I do not use it
I develop software to run on any box, and that way I do not get support requests asking why it will not work
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Oct 3, 2016 2:30 PM (in response to hardcoregamesâ„¢)You misunderstood again ... because __popcnt intrinsic will always generate same code, so test case from screenshots will always crash on K8 regardless of /arch setting. I stated that Visual Studio C++ Compiler should not auto generate popcnt instruction when optimizing code without /arch:AVX switch - if is then this is serious compiler bug.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
hardcoregamesâ„¢ Oct 3, 2016 7:37 PM (in response to tapek)99% of developers do not use intrinsics, they are there mostly for low level coding for things like SSE
there are other ways to work with bitsets
logical and and logical or can handle any level of precision needed
try parting the IDENT from a hard disk as an example
-
Re: DirectX 12 support on pre SSE4.2 CPUs
mirh Oct 4, 2016 9:36 AM (in response to hardcoregamesâ„¢)We were talking about using intrinsic to really test if your marvelous Athlon 64 supports POPCNT
Why in the world are you changing argument?
And why to a question asking about Pentium III supporting POPCNT you replied with amd docs?
-
-
-
-
-
-
-
-
-
-
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
cbd Oct 2, 2016 2:35 PM (in response to tapek)SSSE3: fast popcount Some decent information here.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
hardcoregamesâ„¢ Oct 2, 2016 2:42 PM (in response to cbd)A lot of people need to take more time with CPU manuals. Each new CPU has some changes but most of the core was settled many years ago.
Since then some more logic has been added for integer functions with Haswell some compilers are configured to use that newer instruction which causes and exception
The BMI and BMI2 instruction blocks are Broadwell which cuts out even more users
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
icatalin32 Oct 3, 2016 3:11 AM (in response to hardcoregamesâ„¢)very useful information hardcoregames™. tx4 sharing. All this is pure harcore programming and I must admit I lack the necesary knowledge. But, I have one desire though. I own Quantum Break from Remedy, the only game I think on the market which is cpu dependant, more specific is POPCOUNT dependant. And from what you pointed out above, the core2quads (my case too - q9550) lack this instruction. Is there any way we can manipulate something (game files, gfx driver files, etc) in order to make our cpus compatible with this game? This is the first time I see cpu boundaries on the pc gaming market.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
cbd Oct 5, 2016 11:11 AM (in response to icatalin32)Unfortunately Quantum Break is just too far separated from the AMD driver issue.
You might find more support on the Remedy forums, but they've already given up on the original PC release, and the steam version that just came out isn't much better off right now. Sorry.
-
-
-
-
-
-
-
-
-
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
Xfire90 Oct 20, 2016 2:06 PM (in response to tapek)3 of 3 people found this helpfulFIXED! Ty AMD!
-
Re: DirectX 12 support on pre SSE4.2 CPUs
icatalin32 Oct 25, 2016 1:34 AM (in response to Xfire90)1 of 1 people found this helpfulwow. this is great news! tx4sharing. Maybe now amd fixes also the amd hd3d issues.
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
ray_m
Oct 20, 2016 2:19 PM
(in response to tapek)
1 of 1 people found this helpfulThis issue has been addressed in the latest Crimson 16.10.2 driver package which has just been released.
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tapek Oct 20, 2016 2:35 PM (in response to ray_m)Thanks you very much !
-
Re: DirectX 12 support on pre SSE4.2 CPUs
cbd Oct 25, 2016 2:44 PM (in response to ray_m)Thank you, Ray!
-
-
Re: DirectX 12 support on pre SSE4.2 CPUs
tolissketos Oct 22, 2016 5:42 AM (in response to tapek)yea thank you very much!
