[g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC)
Moderator: GZDoom Developers
Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
What are you talking about? I am not an Apple evangelist nor do I point to their marketing material. I did point you to several benchmarks which show the M1s single threading performance. Anandtech is not part of Apple nor is the Standard Performance Evaluation Corporation (SPEC) or Maxon.
If GZDoom is a workload the M1 performs worse in than in these other tests this is fine to me. I was just wondering if there was optimization potential down the road. If there is not or you do not care, this is also fine. Our Core i7s and my Mac Mini are already plenty fast.
If GZDoom is a workload the M1 performs worse in than in these other tests this is fine to me. I was just wondering if there was optimization potential down the road. If there is not or you do not care, this is also fine. Our Core i7s and my Mac Mini are already plenty fast.
- Chris
- Posts: 2983
- Joined: Thu Jul 17, 2003 12:07 am
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
I wonder how things will go if nVidia ends up buying ARM as predicted. There are concerns they may try to raise licensing costs or restrict what has been a relatively easy to access design. RISC-V is another thing I've been hearing more of lately as an up-and-coming competitor to x86 and ARM.Graf Zahl wrote:By now ARM looks to be far better suited for the future, as there's a lot more competition and less reliance on one or two manufacturers.
- Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
We'll have to see. If NVidia raises licensing fees it might ultimately play into Apple's hands which surely is not what NVidia wants, though.
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
Nice article on RISC-V: https://arstechnica.com/gadgets/2020/12 ... -per-watt/
TLDR: Promising but not there yet, e.g. due to missing software. In the medium to long run a potential threat to ARM which I think makes it more unlikely for Nvidia to raise licensing fees but we will see.
On Apple vs. Nvidia:
"It’s also unlikely – at least according to Alan Priestley, VP Analyst at Gartner – that Apple will make a U-turn on its decision to switch its Mac over to Arm-based processors. Priestley claims Apple already “holds an architectural license for the ARM ISA” which means the Nvidia acquisition should have little influence. Plus, it’s in both Apple’s and Nvidia’s financial interest to continue the partnership."
Source: https://www.trustedreviews.com/news/how ... on-4098618
TLDR: Promising but not there yet, e.g. due to missing software. In the medium to long run a potential threat to ARM which I think makes it more unlikely for Nvidia to raise licensing fees but we will see.
On Apple vs. Nvidia:
"It’s also unlikely – at least according to Alan Priestley, VP Analyst at Gartner – that Apple will make a U-turn on its decision to switch its Mac over to Arm-based processors. Priestley claims Apple already “holds an architectural license for the ARM ISA” which means the Nvidia acquisition should have little influence. Plus, it’s in both Apple’s and Nvidia’s financial interest to continue the partnership."
Source: https://www.trustedreviews.com/news/how ... on-4098618
-
Cacodemon345
- Posts: 422
- Joined: Fri Dec 22, 2017 1:53 am
- Graphics Processor: ATI/AMD (Modern GZDoom)
- Contact:
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
People are expecting Nvidia to alter the Neoverse stuff when Arm is bought by them, which is pretty anti-competitive.
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
Is GZDoom using NEON on ARM?
I just saw that on X86 the used SIMD extensions are all listed. NEON does not show up in the log on the M1 though.
I just saw that on X86 the used SIMD extensions are all listed. NEON does not show up in the log on the M1 though.
- Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
ARM has never been a primary target platform. So it neither has full feature checks nor implementation. It'd only be relevant for the software renderer anyway - unless it uses the extensions for regular math code.
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
Arm themselves state that "Neon technology provides a dedicated extension to the Instruction Set Architecture, providing additional instructions that can perform mathematical operations in parallel on multiple data streams" and that "2D/3D graphics or gaming" are a use case.
Source: https://developer.arm.com/architectures ... or-armv8-a
Source: https://developer.arm.com/architectures ... or-armv8-a
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
I think Graf does know what SIMD instructions are. 
GZDoom actually does use NEON on the M1 simply because clang/llvm itself will automatically use it as it is guaranteed to be available on the platform. It is one of the reasons that the M1 benchmarks perform so nicely as they do, since x64 compiled software generally only can depend on SSE2 per default (the base instruction set for x64) and not AVX2 or newer. That is, the M1 compiled GZDoom uses NEON everywhere where the C++ compiler's autovectorizer can find an usage while x64 builds generally only uses it where a developer manually added intrinsics in the code (*).
*) Technically x64 can be autovectorized using only the SSE2 instruction set. However, that greatly limits what it can do because a lot of the instructions are missing in such an early version of the x64 SIMD instruction set.
GZDoom actually does use NEON on the M1 simply because clang/llvm itself will automatically use it as it is guaranteed to be available on the platform. It is one of the reasons that the M1 benchmarks perform so nicely as they do, since x64 compiled software generally only can depend on SSE2 per default (the base instruction set for x64) and not AVX2 or newer. That is, the M1 compiled GZDoom uses NEON everywhere where the C++ compiler's autovectorizer can find an usage while x64 builds generally only uses it where a developer manually added intrinsics in the code (*).
*) Technically x64 can be autovectorized using only the SSE2 instruction set. However, that greatly limits what it can do because a lot of the instructions are missing in such an early version of the x64 SIMD instruction set.
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
For an unknown reason, people think that the list of instructions supported by their CPUs (potentially incomplete as there is no detection for the recent additions) is the list of instructions that is actually used by GZDoom.
It’s certainly not the first time this misunderstanding arises.
It’s certainly not the first time this misunderstanding arises.
- Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
Even then, there's very little opportunity to use the auto-vectorizer in the hardware renderer's math code as it does not really work on vector data. But AVX vs. SSE2 does surely not help at all - the main bottleneck in that code is the CPU cache, not the instruction set. Which is why it is almost impossible to further optimize it.dpJudas wrote:I think Graf does know what SIMD instructions are.
GZDoom actually does use NEON on the M1 simply because clang/llvm itself will automatically use it as it is guaranteed to be available on the platform. It is one of the reasons that the M1 benchmarks perform so nicely as they do, since x64 compiled software generally only can depend on SSE2 per default (the base instruction set for x64) and not AVX2 or newer. That is, the M1 compiled GZDoom uses NEON everywhere where the C++ compiler's autovectorizer can find an usage while x64 builds generally only uses it where a developer manually added intrinsics in the code (*).
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
This is how, Rachel: https://www.anandtech.com/show/17019/ap ... erformanceRachael wrote:Adding more cores is nice and all but core speed is still ARM's weakest point, in my opinion. But the M1 surprised many of us - including me - so we'll see how that pans out.
- Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
I'll wait untilI see real numbers. Same for Intel's Alder Lake. It has frequently happened that much in these presentations turned out to be bullshit after all.
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
Apple rather tends to understate than overstate the performance of their products but I understand what you mean.Graf Zahl wrote:I'll wait untilI see real numbers. Same for Intel's Alder Lake. It has frequently happened that much in these presentations turned out to be bullshit after all.
I do remenber however that you were not particularly fond of synthetic benchmarks. Just out of curiosity: What are the numbers you would be interested in the most? Do you do anything CPU intensive besides compiling code?
- Graf Zahl
- Lead GZDoom+Raze Developer

- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [g4.6pre-65-g6701cd284] Freezes on Apple Silicon (M1 SoC
First, I want to see any number, not some marketing claims. Even if someone states, "1.5x higher IPC" that does not mean much because it is most certainly not factoring in the RAM latency.