The first conformant M1 GPU driver
rosenzweig.io
rosenzweig.io
Considering the whole schtick of OpenUSD is "one file format that renders consistently everywhere" (paraphrasing), I would be surprised if Apple doesn't use it as a means to cement more 3D software vendors into macOS land. It's really hard to render consistently if the underlying drivers are all wonk and proprietary.
I am curious to see how this plays out. In my mind, there are two options:
1. Apple conforms to the existing standards of OpenGL and Vulkan we see gaining steam for many film and game production pipelines.
2. Apple tries to throw its weight around and force devs to support their Metal standards even more, ultimately hoping to force the world onto Metal + macOS.
My heart hopes for option 1, but my gut tells me Apple is going to push for option 2 with all the might it can muster. In my experience, Apple doesn't like any standards it doesn't control with an iron fist (not really saying much about Apple here though... nVidia, Autodesk, Adobe, and Microsoft are all the same).
The next couple of years are going to be interesting for sure!
I would add some nuance to this statement: "Apple likes open standards when it is weak."
The iMac and early OS X went big on open standards, and Jobs made a point of pointing this out: USB for the iMac, JPEG, MPG, mp3, Postscript etc for OSX. IP/TCP built in. They even paid the danegeld for .rtf.
Then as they clawed their way back from the precipice, they started "adding value" again.
The iphone was an HTML device, loudly repudiating the proprietary (and terrible) Flash much less the crappy, mostly stillborn "mobile HTML" attempts.
You still get H.264, matter/threads, and other standards they don't control, where they don't have market power.
Generally speaking you get standards consortiums when there is a clear winner that is mopping up the space.
Here's an example that's happening right now: Nvidia-NvLink-Infiniband.
Nvidia owns the highspeed interconnect inside the chassis (HGX), the NICs (Mellanox), the inter-host interconnect (Infiniband), the high performance inter-host interconnect (switched NvLink), the and the ethernet network (Mellanox has the same 52.1Tbps switch performance that everyone else has now). GPU training is RDMA heavy and this is a place where both NvLink and Infiniband shine, ethernet much less so. Retransmissions are very bad, in global-performance-terms, for ROCEv2 transfers. Right now Nvidia is just crushing it and there's zero chance anyone is going to catch up by introducing new Infiniband ASICs.
So what happens? You have a consortium spun up by all of the companies in the Ethernet space - Ultra Ethernet Consortium - to try and use "standards" to push back on customers who don't want to make big investments in "non-standard." UEC is pretty vague but seems to be promising Broadcom-style cellized fabrics, the whole point of which is to have an ethernet-like standard that avoids ECMP-induced flow collisions and retransmissions - that is, get Ethernet into the same territory as Infiniband.
If you look back in time in the tech industry, you see this over and over and over and over. Standards are great, they make certain kinds of multi-sided markets and markets that need broad participation to be viable possible - but they are also routinely about the losers joining together to compete.
That is the greatness of it. It reminds me of democracy: The less powerful join together to give everyone an equal vote, rather than having one vote per dollar.
Freesync wasn’t really market-ready until at least 2015 and the early products were mostly junk, it’s not until the gsync compatible program that any vendors really cared about LFC or flickering issues.
I mean, Cornelis Networks is trying with the resurrected OmniPath. I hope they pull it off, but I'm not holding my breath.
HPC cluster builds are complex enough due to the presence of multiple networks (2x moderate-scale infiniband chassis and 2x ethernet chassis as a minimum) without introducing unknown vendors. At that point, if you're doing IB, why not just go Mellanox since you will almost certainly buy 200GE Connectix NICs and not the 100G NICs from these guys.
UEC will - like most standards - _eventually_ work. In the mean time, Nvidia pods are the obvious choice for anyone who really cares about performance, and other vendors (Cisco, Arista) if they don't.
One of my greatest joys learning to program is reading old (well written) code, and piecing apart the timeless from the legacy.
You are saying it like it is something bad. Competition is good for consumers, and I cheer any means to spin up, sustain and heat competition.
Skipping Flash wasn't so much an ideological decision as a practical one.
At the time Steve Jobs listed a ton of reasons that they didn't implement Flash. Listed among them were concerns about it not being an open standard, inferiority to H.264, security and performance issues, etc. However, all of these things could've been ignored or overcome.
The principal problem was that a huge proportion of Flash applications, games, and websites used mouseovers as crucial methods of interactions, and Apple simply had no way to allow users to mouseover an element on a touchscreen.
Apple used to ship a dev app called "Spin Control" that would log stack traces whenever an app failed to drain its event queue in a timely manner (i.e. beachball). One time I accidentally left this open for an entire week, went about a bunch of assorted business, and when I came back every single stack trace had to do with flash, and there were many. Either flash in a browser or flash in a browser embedded in something else (ads embedded in 404 pages for broken help pages that were never even displayed, lol). At first I thought it had to be a mistake, a filter I had forgotten about or something, so I triggered a spin in Mail.app by asking it to reindex and sure enough that showed up as the first non-Flash entry in Spin Control.
As hard as it was to believe: Flash had been responsible for every single beachball that week. Yikes.
I'm pretty sure he always knew they'd end up with apps on it, they just didn't pull that together for the first release, thus the HTML song and dance. But if they supported flash, that would reduce a lot of the demand for apps later, and worse - it would be cross platform.
So he used the other (still good) reasons - battery life, security, etc. to obscure the real reason - Apple was not yet ready to compete with it on their own terms, so they banned it.
It's more about control and all the other reasons.
Mousovers is a dead herring. They could still give Flash not to run existing stuff, but new apps, that would take iOS into account.
And legacy flash movies and animations and games that just needed click and not mousovers would still work. To be frank, mouseover interaction weren't really that big in many (most?) Flash games anyway.
I always wondered why that feature didn't continue - I remember it working quite well, but IIRC it only worked in Chrome browser.
There were some 3rd party things that sorta worked a bit, but they were not good either.
Flash was bad on touchscreens for sure, but we’d have seen content adapt eventually anyhow, if it had actually ever worked in the first place.
Everyone does. AMD is the same. The market leader focuses on features, the runners up try to take them down with openness. The competition is good for consumers, but the motivation is one of self-interest, not the common good.
Then as they clawed their way back from the precipice,
they started "adding value" again.
I don't know if I can agree. On the software side, MacOS supports all those things. On the hardware side, it's still (edit: almost) nothing but industry-standard ports.Compare this with Gmail for example, which has a crummy IMAP implementation, and though the Gmail mobile app supports adding non-Google IMAP accounts, it clearly prioritizes being a Gmail client.
On the hardware side I'm delighted by Apple's USB C/TB push (and Apple contributed a lot to those standards, esp based on what they had learned with Lightning) but note they revived the proprietary "magsafe" connecter on recent laptops (though you can still use USB C PD). Apparently enough customers wanted it.
And as others have pointed out, Apple is hardly alone in this
For another example, Apple Notes was actually just mail messages stored in IMAP, until they decided to deprecate that in favor of another iCloud-backed black box in order to add more features.
> [...]
> Then as they clawed their way back from the precipice, they started "adding value" again.
Just four words: embrace, extend, and extinguish
> https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguis...
I have one of these devices and frankly I have no idea what I expect it to be doing.
Apple supports a number of open standards. I think I’d modify your statement to say Apple doesn’t want to depend on any standards it doesn’t control. And while that may appear nefarious, I get Apple’s implied position there. They have really tight coupling between hardware and software in order to deliver on the UX that they intend (whether or not you like all or some of it). If they’re designing their own software and hardware, I can see why they’d also want to implement standards that they can control to some degree - otherwise their UX is dependent on others. This is also why I think Apple sometimes implements new industry standards, USB-C being one example - if no one else has made an effort yet, they can influence the direction by being first movers.
I still believe rendering would work better for the industry as a whole if they could agree to all support, say, Vulkan.
I doubt it'll ever happen, but a consistent graphics driver/API standard across operating systems would be pretty rad.
I could be wrong but It seems it's technically possible to use it outside the web, but the ecosystem looks halfbaked
In terms of supporting games or steam and such, I think the reality is that a large segment of games now use engines that handle the API stuff for you, and if you do have the resources/time/inclination to write directly to the API, you're probably ok with MoltenVK as long as you're not doing anything too cutting edge.
Seriously though, while I've written OpenGL most of my life to be cross platform and support the most I can, it's an absolutely TERRIBLE api. Global state everywhere, tons of functions you can-but-shouldn't-use, all sorts of traps everywhere, monsterous header files for extensions, incredibly hard to debug. Vulkan is verbose but in a lot of ways it's actually easier, even if it's advertised as being the more hardcore way to do things.
In my experience, Apple doesn't like any standards it
doesn't control with an iron fist
I mean, on one hand, the Metal/Vulkan/OpenGL situation is unfortunate and I don't understand Apple's motivation there.On the other hand I'm sitting here typing on a Mac with nothing but USB-C ports that is connected to half a dozen peripherals and a big ol' monitor over those standard ports using standard protocols.
In general I feel that Apple prefers open standards when they actually suffice. USB2 couldn't do a lot of the things that Lightning did, so they invented that. Now that USB-C exists, they embraced it immediately on the Mac and iPad but are unfortunately dragging their feet w.r.t. the iPhone.
OpenGL is a dead end - while vendors (including Apple) still support their respective GL stacks, there is not really active investment anymore either in those stacks or in the standards.
Metal came out years before Vulkan, and Apple has tight integration between the graphics API and their underlying first-party graphics hardware designs. If Apple did have first party support for Vulkan, it would basically be MoltenVK anyway. Apple tends to push anything which isn't a first party framework to be third-party sourced and bundled as much as they can. They likely think MoltenVK as a third party library is the best scenario for Vulkan support.
I don't think it's hard to understand. Apple wanted an easy to use API that could be extended and updated easily. Vulkan is an extremely complex API that foregoes all and any developer ergonomy to facilitate quick driver development on as many hardware targets as possible. Consequently, Vulkan's design choices are driven by the least common denominator. The goals are just too different.
There is at least some evidence that Apple was interested in supporting and shaping Vulkan (they were member of the initial working group), but I suspect that it very quickly became clear that the committee is going into a direction they were not interested in, so they noted out.
Still, I don't think it's correct that Apple is opposing any kind of standardisation in this domain, they just want something more aligned with their vision. They have been very active with WebGPU, which is shaping up to be a very nice API, and it has inherited a lot of good design decisions from Metal.
cool, now try two monitors https://www.kensington.com/en-au/news-index---blogs--press-c...
Read what gamedevs have to say about this, Metal is more appreciated than Vulkan
> 2. Apple tries to throw its weight around and force devs to support their Metal standards even more, ultimately hoping to force the world onto Metal + macOS.
Apple was part of the Vulkan working group, knowing what gamedevs prefer, it now make sense why they parted away and created Metal instead
In retrospect I can only show compassion to Apple, they made the right choice
I agree there are likely a lot of game devs who like Metal, but it would appear there are a lot of heavy hitters backing Vulkan.
As well, in film, many render engines prefer Vulkan due to the flexibility to write complicated compute shaders with complex command buffers. I experienced this first hand working with VFX studios in my day job.
I think the story is mixed, there is a big interest in Vulkan still.
I'd say it's totally orthogonal matter (having a standard 3D scene format, and what graphics api will render it), and Apple's participation on that will be minimal anyway.
>I would be surprised if Apple doesn't use it as a means to cement more 3D software vendors into macOS land. It's really hard to render consistently if the underlying drivers are all wonk and proprietary.
There's an easy fix though Apple can suggest: just use the official macOS engine.
Why would the even opt for (1)? To burden themselves with supporting different 3D engines? They already support and maintain their own.
Source: https://www.youtube.com/watch?v=Z2VBKerS63A
They even did a big demo shot showing the same frame being rendered in multiple different editors all creating the same consistent result and matching. All of it was said to be due to OpenUSD standardizing how a scene is defined, animated, and rendered.
Probably just a bunch of marketing buzz though.
You mean like SCSI, FireWire, USB-A, USB-C, USB 3.x, Bluetooth, Qi charging, H264, AAC?
FireWire was developed by Apple and some other companies, as a competitor to USB, and lost out to USB.
Apple had their own video container and codec formats in quicktime, and those also lost out to others.
They definitely prefer to roll their own, they just don't always succeed in gaining enough market adoption (in the past) or they're told to stop pushing it to the detriment to their users (as recently with USB-c).
And demonstrably so - “downgrading” to DSC 1.2 actually improves those other users refresh rates and HDR support.
This is still “broken” as of Ventura.
Current Metal is essentially a more streamlined and user-friendly DX12 Ultimate, plus a mix of some console-like functionality and Apple-specific features, plus Nvidia Optix, plus a subset of CUDA features (such as cooperative matrix multiplication). Plus they have a very nice shading language and some neat tools to generate and specialise shaders. I expect them to continue gaining feature parity with CUDA going forward (things like shared virtual memory might need new hardware). They simply can't offer such comprehensive feature set in a reasonable fashion if they went with Vulkan, even if we let the issue of usability aside for a moment (and we really shouldn't, as Vulkan is horrible to use).
I can tell you have strong opinions on Vulkan. I don't disagree with your general view that it's hard to work with development wise as it's very tied down to driver and hardware implementation specifics.
What I can say though, is that I've met several pipeline rendering engineers (think folks who invent render engines for film and write low level game engine code) who seem to love Vulkan. They appreciate being able to really get down to the bare metal of the drivers and eek out the performance and conformity they need for the rest of the game or render engine.
A lot of the frustration with OpenGL/DirectX from these specialists was their inability to "get in there" and force the GPU to do what they really wanted. Vulkan apparently gives them a lot more control. As a result, they are able to accomplish things that were previously impossible.
All that being said, I think WebGPU will be far more popular for 99% of developers. Only a very few folks like getting down into the nitty-gritty of libraries like Vulkan. At the same time, there is huge money to be made knowing how to make a game eek out another 10 FPS or properly render a complex scene for a film group like Pixar who wants to save days on a scene render.
what about MacOS being a Unix?
I'd suggest a deeper diagnosis is that Apple doesn't like standards incapable of showing off or leveraging custom hardware prowess, which is a key competitive advantage.
I wouldn't want the file format dictated by the graphics API, but I would like consistent rendering output in multiple places for the same file. That'd be cool.
In case you're wondering where this "conformance" idea came from, check nVidia's 2023 Siggraph talk. Jensen will buzz word OpenUSD and conformity across products until your ears bleed.
Siggraph 2023 nVidia: https://www.youtube.com/watch?v=Z2VBKerS63A
(in case it wasn't obvious, I am skeptical this will ever really happen, I imagine this is all marketing speak)
Most of these types cut their teeth in their younger days - doesn't really mater if it is sports, musical instruments, art, coding, or whatever. If you spend 6-12 hours a day doing something, seven days a week, from you're 10 years old - you'll be pretty damn fantastic by the time you're college aged.
Don't measure yourself against others, it's a recipe for stress. Instead, understand your core values and measure yourself by how you live up to them.
If we could put a number on kindness, we could make a better economy.
Also, isn't she a high schooler/freshman? There's always internships but it's best to do other things before grinding those out.
And this is kind of a valuable skill, considering how many coders don't understand their codebase even with docs.
It's not a negative of course.
Ask Mark Russinovich, now Azure CTO
Not saying that's the case here; just that "amazing programming" doesn't necessarily mean "Apple wants to employ them".
Anyone with a talent, should rather seek to incorporate and sell their services at fair price.
Unfortunately in some countries, big corporations managed to lobby governments to put a stop to that.
Certainly you can hire people to do those functions, but you need to have a decently well-established reputation and enough work and income before you're able to hire those people.
Employment does give you a trade off there: less money in exchange for someone else handling the "overhead".
I think it’s the opposite - developers are overvalued.
We all know that their engineers are paid well, but that's still potentially more than an order of magnitude off of the value they generate. Of course, there are many other expenses to running their business, but to claim that broadly developers are overvalued when one of the most prolific employers of developers is generating 10x+ the revenue of what they spend on them, is likely no more than only occasionally correct.
Apple themselves are not conformant to OpenGL® ES 3.1.
So this is literally the first conformant OpenGL ES 3.1 drivers for M-Series, for any operating system (Apple or Non-Apple).
Hence why the call to action to donate to the team.
Many people, especially in the LGBTQ+ community, hate being featured on here. Some have asked the admin not to be linked but the HN doesn't blacklist websites.
There's a flood of negativity from the tech bros every time something makes it to the HN front page, both here but also on HN link aggregators. This is especially true for the people whose talents bring them to the HN front page every month or so, receiving the same flack and abuse every time.
Last time someone tried to block HN abuse by checking the referer header and redirecting visitors away, HN altered the link HTML to not send the referer header rather than listen to their wishes. First for a specific post, then for all posts. That's a pretty clear sign to me that the HN admins care more about their links and the fake internet points generated by discussions than about the people and projects being discussed.
If the admins are actively working against your wishes, why would you want to tolerate that platform?
On that end, I can't find any fault on HN's end enabling their 99.99% of their interested readers who didn't do any wrong to be included in the discourse around these ideas, on the free and open web.
Not really more ironic than almost every non-trivial societal discussion, à la "if you want peace prepare for war". Anything non-trivial is multifaceted, and anybody who has an absolute opinion is probably missing most of the argument.
Very quickly for this specific case: one can easily argue that excluding people is hardly inclusive, but one can also easily argue that a niche community with its own subculture _needs_ some sheltering from the rest of the world, or the subculture gets lost very quickly (so the sheltering is good for diversity in that it preserves the existence of the subculture).
(I'm not pretending to present a fully-fledged argument here, just a taster to challenge absolute opinions, entire books could be written on this and probably have)
From https://asahilinux.org/2022/11/tales-of-the-m1-gpu/
> But wait, how can she work on the user space driver without a kernel driver to go with it? Easy, she did it on macOS! Alyssa reverse engineered the macOS GPU driver UAPI enough to allocate memory and submit her own commands to the GPU, and this way she could work on the user space part without having to worry about the kernel bit. That’s super cool! She started writing an M1 GPU OpenGL driver for Mesa, the Linux userspace graphics stack, and just a few months later she was already passing 75% of the OpenGL ES 2 conformance tests, all on macOS!
So yes, donating to Marcan helps driver development too.
This becomes very obvious to anyone who has to debug now-deprecated OpenGL apps in macOS, because the abstraction layers do not actually expose OpenGL state in ways that old Apple OpenGL debuggers can read. Which means unless you still have old Macs, with old versions of macOS installed where OpenGL is not Metal under the hood (I can't even remember the last version where that was true) then it's literally not possible to debug OpenGL on macOS anymore using stock debuggers.
Your debugger and or app will just crash.
SYCL is Khronos Group's vendor-neutral, high-level programming framework. Application support is limited, but hopefully with Intel's backing, the situation would gradually improve. Meanwhile, Vulkan Compute sidesteps the entire headache with compute shaders. But I'm not familiar with it in terms of application support.
SYCL can be implemented on top of OpenCL and OpenCL's SPIR-V extension. It soon turned out that this route is unfeasible due to prevalent vendor lock-in that's not going to change anytime soon, so it has largely been abandoned by everyone else but Intel and Mesa. Right now SYCL is usually implemented by backends to GPU vendor's respective APIs, like ROCm, HIP or CUDA. Doing the same for Metal would be very challenging.
Mesa already has experimental support of OpenCL w/ SPIR-V on Intel and AMDGPU, so theoretically it can be extended to Apple Silicon. Difficulty of implementing OpenCL's SPIR-V extension should be comparable with Vulkan compute shader (which also uses SPIR-V). However, currently OpenCL on Apple Silicon is entirely unsupported. The last time I checked, it's on the roadmap.
For any low level performance programming you need to code to the specific microarchitecture, so the pros of a single programming language/library are limited (you're not getting any code reuse that isn't available in the top level non-hardware C code anyway) and often outweighed by the ability to take advantage of the vendor's dedicated extensions provided by their preferred programming mechanism.
This issue was well modeled by OpenCL, which never really caught on for programming Nvidia GPUs for this reason.
That said eiln wrote an ANE (Apple Neural Engine) driver which enables using the dedicated hardware for this instead of the GPU. It is set to be merged into linux-asahi in the future.
While I'm glad they did this, and it's a crazy fucking accomplishment, it's not really a beating. It's just Apple doesn't care. They were never in the race to begin with.
Love the euphemism. This puts Apple to shame, plain and simple. They obviously don't care about standards, or compliance, because they like people to be walled in their own little private garden (still waiting for the facetime standard, or any kind of cross-platform technology created in the past 10 years).
If i weren't an iOS dev, i would have ran away from the apple ecosystem a long time ago. I love their hardware, and loved the brand back in the 80s and 90s when apple was about creativity, putting humans first before machine, etc. But what this company has become is just a corrupted mess of greed behind a curtain of politically correct marketing videos.
For the iPhone, I tried looking at the Pixel for the Vanilla Android experience and long support, yet it seems like people are fighting battery life issues all the time. Not to mention the polish of the software, app ecosystem and stability.
Also, couldn't find anything coming near the value of a baseline Macbook Air M1 as far as build quality, battery life, stability etc. is concerned.
I like to also read comics and magazines on the iPad and that's also a market where I have no idea what an alternative would be. And that's the state of the tablet market for years now.
Maybe I could get rid of my Apple Watch, but it just works and has endless amounts of third party accessories. I've been looking at Fossil Hybrid Smartwatches and it seems like they are a hot mess of instability and bad support.
At the end of the day, it's about stability and ease of use. I'm way past the time where I had the time and found it really cool to try every new ROM coming out ("daily driver", "What isn't working? You tell me") and it seems like Apple still can't be beat at this front. Sadly.
On the phone, I started with Android, so just kind of used to it... I've bought about every 2-3 generations for a while, currently on a Pixel 4a. I tend to avoid the high end, and find if you wait 3 months or so after a new release, the kinks are usually worked out by then.
As to the iPad, there really isn't a good alternative that I'm aware of... there are still a few Android options, none are great... the MS surface tablet and other convertable laptops are okay, but still not as nice a UX, it's not my thing so doesn't bother me, but can understand why if it works, it really works for you.
Watch is about on par, from what I understand.. again, not something I'm into personally.
I tend to take the Apple option for work (software dev, mostly web/svc oriented) only because corp Apple experience is generally better than corp windows.
Macbook Air M1, just look at Dell XPS series.
Samsung S9 tablets have an OLED display. OLED... you don't get that on any iPad.
Apple Watch really has no competitor which matches 100%. On certain areas like fitness (Fitbit) or hiking (Garmin) there can be also some good and better alternatives but it does not match 100% of the features.
I think there is always a choice except when looking at the Apple Watch.
I have the opposite experience. A few months ago a friend of mine had to buy a new iphone because their phone couldn't hold a charge. Shortly after they received their new phone, towards the evening, they remarked how happy they were that their new iphone (literally a few days old) still had 36% charge after most of a day's usage. I looked at my 2.5 year old (at the time) pixel 4a and I still had 84% charge.
> having to live with endless amounts of compromises just to get away from Apple.
Having basic system functionality, such as GPU accelerated OpenGL, Vulkan, or OpenGL ES, seems like a catastrophic compromise. Like I can compromise about how the widgets of application foo and the widgets of application bar don't match each other, I couldn't care less. But no Vulkan support? Forgetaboutit.
I have a Surface Laptop 4 with an AMD processor and 16GB of RAM. I'm extremely happy with it, though I'll concede that the build quality is a click lower than a M1 MacBook Air (two of the rubber feet have fallen off of mine, being my main ding against it) and nobody can touch Apple Silicon's battery life. But aside from that, it's definitely in the same arena for build quality as an M1 MacBook Air (my wife's daily driver, so I'm not just saying that out of ignorance) with, IMHO, a better keyboard and a touch screen if you're into that sort of thing. Oh, and the facial recognition unlock is the best. I've had zero issues with stability—Microsoft pays more attention to squashing Windows bugs on their own hardware, it seems like.
Surface Laptop 5 has been out for about a year, but it was a totally microscopic incremental refresh. That means the Laptop 4's have dropped in price a lot, even though it's still 95% the same laptop.
My exact model of Laptop 4 can be had on periodic sale, refurbished on Woot.com for ~$700 or less, which is a screaming good deal IMHO for what you get. You could almost get two of these things for the price of one new M1 MacBook Air once you factor in the (IMHO mandatory) RAM upgrade.
People whiff that (cough RDNA3), and people overcome it kinda (Raptor Lake), but ceteris paribus, their shit is just from the future.
Having a bone to pick with Apple is a very reasonable thing, I’ve got a few gripes myself, but that’s why you buy something 2-3 years behind the cutting edge. It’s not because it’s better.
Products are as good as the worst part. Apple‘s complete integration allows them to more easily fix the worst part since they have control over almost everything. Historically, "open" systems, as Bill Gates would call Windows together with the suppliers such as Intel and Dell, could get away with some bad aspects as long as they just threw in new CPUs with smaller transistors. Now that Moore‘s law and Dennard scaling have slowed down, fixing the worst part is the only way to find good improvements.
The ThinkPads are pretty good laptops, especially if you put Linux on them.
It's one of the reasons I sold my iPad for a galaxy tab s7+. Every alternative I tried on iOS was just shit in comparison, paperback especially.
I miss the days when I charged my cell phone twice a week.
It didn't take 100 mexapixel photos or display 4K cat GIFs, so I understand why.
But I miss that battery life nonetheless.
Everything is a compromise.
A while ago, I wanted a new notebook:
I looked very hard at a 16" M1 Pro with 64 GB of RAM, at approximately USD 4000, tiniest storage possible. I really really wanted to run this with Asahi Linux.
I purchased a Dell Inspiron 7610 with 16" display (and known design touchpad design defects), 3K resolution, sort of light-weight, Tiger Lake 11800H CPU, Intel + Nvidia hybrid graphics, now running at 64 GB of DDR4 RAM, 2 TB of very fast PCIe 4 SSD, 1 TB of PCIe 3 SSD.
Professionally I run this with Windows 11 Professional + VMware Workstation -> Fedora 38 because of an Azure VPN; in my private life this is plain Fedora 38 dual-booted.
Why? USD 1700. Less than half the cost.
Native podman / docker. CUDA. The (still) dominant architecture (x86). I am typing on Proper Keyboards anyway.
my pixel has good battery life.....I know it's anecdotal but it's been fine.
I've always been an android user on smartphones. Was samsung in the past but now I have a pixel. I like the pixel and vanilla android experience overall. Android allows some freedom to customize, I like their call screening, and the wide choice of apps. Pixels are also starting to be supported for longer; maybe not as long as iphones but it's always been an android issue and they're finally starting to address it. Stability is there imo. I have all the apps I need to do what I do everyday but obviously everyone is different.
I own a variety of different hardware including apple products, but I'm not 100% reliant on their ecosystem, so I'm keeping the pixel for now.
>Also, couldn't find anything coming near the value of a baseline Macbook Air M1 as far as build quality, battery life, stability etc. is concerned.
Agreed
As many of my services as possible are self-hosted, and as many of my apps as possible are FOSS, but I access them with Apple hardware. And as my M-series Macs age, they'll become Asahi machines.
This is the best compromise I've found. The truth is, Apple stuff still does Just Work, and having an actual Unix base is nice too. Open standards and protocols can get you a long way away from the walled garden aspect of Apple to the point where really they're just nice computers that don't really infringe on my life in any way.
And that doesn’t even get into the “fun” of there being differences between the versions of Android shipped by different vendors significant enough that maker and model-specific bugs and behavior inconsistencies are a concern, which is only a thing because of manufacturer insistence on deep customization (compare to Windows where if it runs on fine your PC, it probably does for 99%+ of other PCs too).
It's more like emigration or a divorce it will hurt and it's a big change. For most it's not worth the bother.
ChromeOS is great. The host OS "just works" and I have a VM/container env to do development in. It feels secure, operationally straightforward, and low maintenance.
I don't really care a ton about my phone. It works, battery is fine. It makes phone calls, plays music. idk. I care way more about my laptop.
And the trackpad! I always evangelize the Macbook trackpad because that shit is bananas, as it were.
Companies with all their bureaucracy are often slow, but that bureaucracy also isn't entirely superfluous, and frankly I don't know if any of this was on any given company's list of things to do. Not sure anyone beat anyone to the punch here.
There are a billion obvious signals compared to the people who clock in at 8 AM, sign out at 5 PM, and argue with your teammates about problems that entire swaths of engineers consider rudimentary: understanding how to write patches in readable ways, not screwing up git logs, not submitting PRs 10k SLOC long with no explanation as to how the automated output was created for replication and verification.
There are obvious clowns in the industry, and people who really love doing this stuff, and you can figure out who they are in a 5 minute conversation.
It really insults people when you tell them this, because yes, there are absolutely people that work harder and longer than you because they want to and enjoy it--they don't just go home and watch Netflix.
Only if they're not including documentation. Or maybe only very, very, very minimal documentation.
If you want full documentation, translated to a bunch of languages, then (for now at least) you'll need more than those 2 people.
Is everyone missing the part where Apple left the door open for other operating systems and development thereof when it would have been relatively trivial for them to lock the laptops down.
They literally made their own silicon and built an entire platform. Do you think it's a mere mistake that they left it open to running other operating systems?
It's really disappointing to see everyone bashing Apple when it's clear to anyone paying attention that they made a conscious decision to leave the door open for 3rd party development.
Maybe I'm just a jaded grey-beard but I suspect that this is more of a "placate the anti-trust regulators" play and not a genuine olive branch offering.
Apple gets to say "see, look! Not only are we not locking people out - there's a whole micro-niche community that's taken root. If that isn't proof we're not abusing our position, I don't know what is..."
They left the door open, but just barely. The reverse engineering efforts will always be a step behind making sure that there's always going to be a "non-apple" experience that will be objectively inferior in one way or another.
It takes significant resources and impacts release schedules to, say, support an on-going vulkan implementation... I think there would need to be a business argument for it. Avoiding "shame" probably doesn't cut it.
It just strikes me as strange when people expect Apple to spend money and focus on their own personal priorities... especially for things that are inherently community-driven.
Perhaps there's a "community goodwill" argument to make, though I doubt they'll try to chase the goodwill of people who complain that Apple "has become is just a corrupted mess of greed behind a curtain of politically correct marketing videos."
Well Apple does implement the standard. They DO have OpenGL, but their driver is not fully compliant apparently.
>> It takes significant resources and impacts release schedules
Well it seems 2 people working for a couple years managed to do it without much in the way of documentation that Apple clearly has (they built the F-ing thing).
Apple has considered OpenGL deprecated for a long time now, but they do support it (they brought it to M1 and M2) and it makes sense to keep doing so. They really should be more conformant. If a standard is worth supporting, it's worth supporting well - and Apply has unlimited funds in comparison to these two people.
Let's see... on one hand we have two devs who made it happen (for OpenGL; with Vulkan coming in the future), with essentially no funding, purely in their spare time and without any documentation, just by reverse engineering the hardware.
On the other hand we have a trillion dollar corporation, with 100 billion dollars in profit last year, with over 150k employees, with full documentation for the hardware.
Yep, it checks out. Apple's definitely resource strapped and can't afford to do it. No way they can compete with two spare-time hobbyist. Would be too expensive.
I'm sometimes really amazed how Apple-biased a big portion of HN is. People here can always find some sort of excuse to justify whatever shitty new thing Apple is doing (or why it isn't doing something), no matter how much mental gymnastics it requires.
I mean it isn't. But it would be nice if they supported at least any graphics standard.
Apple has committed to support for OpenGL 3.1, and that's it. They even rewrote their OpenGL driver for Apple M1 to be an emulation layer on top of Metal, so that existing applications keep working, but they're not going to implement any newer versions of OpenGL. Nor should they.
I have a lot of criticisms of Apple, and I think they could be doing a lot to make Metal a better API with better tooling, but not caring about OpenGL is a perfectly sane decision here.
There's a small set of legacy "confidential" tests that you have to pass for GL conformance. They can't be open-sourced for legal reasons. The current CTS working group would like to get rid of them, but it's hard to justify spending time on GL these days...
You can definitely pass conformance with a driver that's horribly broken in practice. GL/ES/GLSL are huge and there are holes found in these specs all the time. And it's not like game developers read them anyway; whatever works on their test devices gets shipped.
Not really? Like, we can look at this and point fingers, but Apple will not be ashamed, because they do not care. They deliberately don't bother with standards conformance unless doing so is a part of their strategy. Standards conformance for OpenGL or Vulkan doesn't make sense when they want everyone to use Metal.
It's dumb, and I marvel at how childish Apple always behaves with things like this, but that's just who they are.
Apple has invented, contributed to, and adopted a long list of standards. You can easily Google or ChatGPT the list if you don't know your tech history.
Apple deprecated OpenGL and OpenCL support in 2018 for very reasonable technological and strategic reasons that I understand you disagree with. But that doesn't change the fact that OpenGL is a terrible fit for modern computing/GPU architectures.
1) It's a project that a lot of people want to see happen, and
2) It's a stellar example of a well-executed open source project at all levels.
Moreover, Asahi has been my daily driver since the alpha was released back in March 2022. I migrated to Fedora Asahi Remix (their new flagship distro) earlier this month, which is excellent (https://jasoneckert.github.io/myblog/fedora-asahi-remix/).
The story seems really complicated from a technical point of view.
Whom is OpenGL ES 3.1 compliance for?
Apple is shipping DirectX compatibility in Game Porting Toolkit.
I understand you are making a stylized comment. My stylized comment is, there's a lot of stuff going on everywhere, all the time, with all sorts of technologies. You're not illuminating for me, compared to all the other people toiling in obscurity, what about this has pressed so many buttons for the Hacker News audience? Because it's not OpenGL ES 3.1 compliance.
I used to wonder why anybody who is not an iOS developer would buy a Mac. Now I just accept that some people make different choices than I would - just with most everything in life.
But Apple clearly has zero interest in OpenGL. Thats been obvious since before the M series chips.
What they’ve done so far and continue to do is incredible. I love following what the Asahi team has done.
But anyone can win a “race” against an opponent who refuses to play.
Shame Apple for not playing the game if you want, but they could have easily done this if they wanted to.
Apple are by no means perfect but over pretty much every other service (shout out to Mastodon being too small to bother with I presume) I have used I have received spam.
Advocates of truly neutral carriers, open code, et cetera, et cetera, so on and so forth don't really have an answer to spam in my experience. I would say that almost no one has an answer to spam except seemingly Apple. And while their answer sucks it is an answer.
In the modern world telecommunications are a requirement to participate in society. I don't think it's unreasonable to have spam be your number one concern. It's a waste of my existence even though I ignore all of it and take appropriate pro social actions by using whatever kind of report I have available to me. There are people who fall for the scams (I have met and even know a few) and they have lost heaps of money.
Apple would be destroying a huge amount of value for their users were they to open up their service more easily to spammers. It's not our job to give up our lives so someone's theoretical version of a better society can exist.
I say this with every bit of code I have ever published being GPL3 and having advocated it in every single project I have ever worked on. But I have never built a telecommunications platform.
Seems trivial by but allowing anyone to message anyone else unless they exchanged their contacts physically (by showing each others QR code or something).
But they did. It means somebody did care.
But they failed, got beaten by almost one-man-army "team" that started running miles behind from another country behind chain of mountains. It's unreal.
It's unreal because Apple has everything - talent, hardware and software and got beaten by reverse engineering the whole thing.
Such a slap in a face.
Yeah, instead of drivers for M1, I'd be more impressed+happy if someone implemented the iOS APIs running on Linux, like we have Wine for Windows on Linux.
"The Khronos website lists all conformant implementations, including our drivers for the M1, M1 Pro/Max/Ultra, M2, and M2 Pro/Max."
Edit: Interesting that so many people are downvoting this. I'm not complaining; I didn't know, so I asked a question. Seems like the answer is that it's too new, especially with the 30-day conformance review period on top.
I'm aware of people's sensitivity to putting demands on efforts like this, which is why I tried to frame it as the genuine curiosity it is.
This sort of low-level work is out of my depth. Is there painstaking probing to find different addresses/states between a Max and an Ultra? The M2 Ultra has two GPU variants (60-core and 72-core), although the Pro and Max also have GPU count variants. Are those transparent from this OpenGL driver's point of view? Or is there timing/dispatch work involved? Hence the question!
I would have made an explicit criticism if I had one. I implied nothing, but I realize that has no bearing on what the reader can or will infer...
iOS based devices are where the lockdown is.
For that reason, I've personally had to use a M2 for a week now, and I find the experience unpleasant. The OS feels old and cumbersome. I had flashback to a time long ago when I needed to install custom apps in Windows for some basic functionality that's been built in gnome. Things like "alt + tab" actually bringing an app to the foreground, instead of prioritizing the minimized state. Why this deliberate action would have seemingly no effect is correct, I'm sure will be defended.
Global shortcut to start up a terminal? Install a third party utility is probably the easiest. Want to place windows on the screen? Install a third party utility. Better screenshot functionality? Install a third party app. Change the default shell to a custom one? First you got to figure out how to access the root system through finder to actually find the executable.
It goes on and on. And the performance is much worse than what I've become used to. The only thing it actually has going for it, which I believe is great, is battery life. But, that's it.
I'm just glad I was able to disable the app validation check, because it had literally prevented me from installing a lot of third party software, and the suggested workarounds had no effect. Just the fact of phoning home every time run an executable makes me nauseous.
I wonder how often the homebrew team get offers to add malware, because the checks there seem woefully insufficient.
A lot of devs are also choosing them because they are insanely good machines. Simply because ARM64 is a good architecture and there is pretty much no competition available, it's more or less a choice between Apple or not ARM64...
- MacOS user experience: Terrible. It feels like Linux did 10 years ago. Bugs and inconsistencies everywhere. But hey, they are competing with W11 so, no need to improve it either. Forced updates and restarts. And, did I mention bugs and inconsistencies everywhere?
- M2 Computational performance: It feels like my laptop 10 years ago.
- M2 Batterly life performance: It is absolutely brilliant, but, I also work 80% of the time at a fixed desk, so, it's mostly only relevant when traveling.
I'm sure a lot of devs use them because they like them. But, your argument that ARM64 is "good architecture" whatever vagueness that entails, is pretty much bollocks.
Compile time performance is ok at best compared to other laptop CPUs (the fastest laptop Mx hardware is about half of the laptop competition, and that's just comparing CPU). The package management coherence is non existent, so everything is slow to start because everything ships a complete stack of libraries that need to be read from disk and copied in memory. I honestly believe that people who are blown away by the Mx hardware have simply lived too long in the walled garden to know what is out there.
In summary: MacBooks are decent hardware, with exceptional battery life. Priced at 50% would make sense. And the OS experience is somewhere between mediocre to garbage.
Ran an identical GPU workload on AMD hardware with dedicated GPU.
- 3 year old desktop AMD hardware: 50 seconds (1x)
- 1.5 year old laptop AMD hardware: 66 seconds. (1.32x)
- Latest M2 Pro 12 core: 142 seconds. (2.84x)
For CPU-only tasks. 1x, 1.9x 1.7x.
So, the M2 Pro 12 core is about 2x slower than a one year older AMD laptop for GPU tasks, and about the same for CPU only tasks. And the latest AMD Laptop CPU is twice as fast as the one I used.
Have you ever used a Windows machine?
Yep. I find it much better than anything Apple.
I don’t know what is going to happen in the future, but I wouldn’t be surprised if Asahi Linux becomes widely used. From my experience of turning a 7 year old MacBook and an 8year old MacBook Air into great Ubuntu Linux boxes, I think that old Apple hardware will be a common host to Linux. It feels great to get use out of old hardware.
Is the big corporation even racing you? Does it care? What devs and superusers want is regularly at odds with what makes sense for the actual business cases of a product.
I want all these things, too! But I recognize that it doesn't happen because what I want fails to make a solid business case, not because Apple is somehow incapable of writing an OpenGL driver for their own hardware.
If I'm in charge of the resourcing that could be committed to broader graphics standards support for M1/M2, what is the concrete (not hypothetical) case one can present to sell me that this is the right thing to focus on? I won't pretend to have the answer to this. There may very well be a very strong case to make. But it just doesn't quite feel right how I notice, on a daily basis, this lack of exploration or even just appreciation of all the factors and constraints that exist outside the technical portion of the problem. Maybe I'm just sensitive to this kind of issue because I feel this pain often at work.
[1] One example is the Clauswitz engine from Paradox Development Studio, which is used in all their games.
Godot 3 and Godot 4 did not recognize this OpenGL ES 3.1.
Wishing for Godot compatible support and external monitor support for M1 Air.
It's sort of battle when the opponent have not come to the battlefield at all due to no interest...I'd say corporataltion was beaten is bit of stretch here.
This is called a z-order curve[1, 2]. It makes texture mapping and mipmapping significantly more cache-friendly than the usual x-y ordering, because these operations are often performed in tiles of 2^n size.
I'd say it's more a fractal pattern than spiral-like, to be precise.
[1]: https://demonstrations.wolfram.com/ComparingXYCurvesAndZOrde...
[2]: https://en.wikipedia.org/wiki/Z-order_curve?wprov=sfla1
Or maybe an OpenGL ES 3.1 / Metal compatibility layer
The OpenGL compliance gives hope that a simple recompile will make some graphics applications available at high performance under Linux on Apple Silicon, this is good news. It's a niche of a niche though. Devs would be porting their apps to MacOS as a priority to Linux on the M1/2/3 if at all.
The only caveat is that most applications won't be compiled for ARM yet, so emulation will still be needed.
This is in contrast of Apple dropping support for OpenGL on their devices, and using their own API layer: Metal.
Asahi is working on a Fedora respin which will mean all your usual packages are a `dnf` command away.
I knew you were going to get this done!
In my opinion it’s ready to be a daily driver if you can stand using Arch or Fedora. I’m waiting for a Debian version, personally (there’s some instructions on getting it going already but I haven’t tried yet).
There are some limitations on the PCIe/Thunderbolt but Marcan has written a few times he thinks it may be possible though probably not worthwhile from a performance perspective. Of course even base thunderbolt is a WIP at this point so that answer could always change.
Yes, it is conformant to a graphics API. It's called Metal¹. You might enjoy pretending that "the manufacturer" hasn't given a damn to provide a fully working and highly performant graphics API designed under the same roof alongside the people who designed the hardware, but this kind of petty dunking on Apple that seems to be so popular is not a good look.
1) https://en.wikipedia.org/wiki/Metal_(API)
Protip: Downvoting is not the same thing as refuting someone's argument with a cogent one of your own.