<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/rosenzweig-opengl-3-1-on-asahi-linux-fwql9slmu" -->

---
title: Rosenzweig – OpenGL 3.1 on Asahi Linux | daily.dev
description: Asahi Linux&#x27;s graphics drivers have been upgraded from OpenGL 2.1 to OpenGL 3.1, and from OpenGL ES 2.0 to OpenGL ES 3.0. The post dives deep into how Apple&#x27;s...
canonical: https://daily.dev/posts/rosenzweig-opengl-3-1-on-asahi-linux-fwql9slmu
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Rosenzweig – OpenGL 3.1 on Asahi Linux | daily.dev
og:description: Asahi Linux&#x27;s graphics drivers have been upgraded from OpenGL 2.1 to OpenGL 3.1, and from OpenGL ES 2.0 to OpenGL ES 3.0. The post dives deep into how Apple&#x27;s...
og:url: https://daily.dev/posts/rosenzweig-opengl-3-1-on-asahi-linux-fwql9slmu
og:image: https://api.daily.dev/og/posts/FWQl9Slmu.png
og:image:alt: Rosenzweig – OpenGL 3.1 on Asahi Linux
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Rosenzweig – OpenGL 3.1 on Asahi Linux

**[Alyssa Rosenzweig](https://daily.dev/sources/rosenzweig)** · 9 min read · 0 upvotes · 0 comments

## Summary

Asahi Linux's graphics drivers have been upgraded from OpenGL 2.1 to OpenGL 3.1, and from OpenGL ES 2.0 to OpenGL ES 3.0. The post dives deep into how Apple's AGX GPU handles multisampling and sample shading differently from typical GPUs — executing shaders once per pixel rather than per sample, and implementing blending in software rather than dedicated hardware. The driver works around this by wrapping fragment shaders in a per-sample loop and relying on compiler optimizations (like common subexpression elimination and code motion) to hoist invariant expressions out of the loop, achieving correct and performant results. OpenGL ES 3.1 with compute shaders is nearly complete, and the same multisampling compiler passes are being reused for the upcoming Vulkan driver.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://alyssarosenzweig.ca/blog/opengl3-on-asahi-linux.html>

---

Tags: [#vulkan](https://daily.dev/tags/vulkan)

[View this post on daily.dev](https://daily.dev/posts/rosenzweig-opengl-3-1-on-asahi-linux-fwql9slmu)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Rosenzweig – OpenGL 3.1 on Asahi Linux","url":"https://daily.dev/posts/rosenzweig-opengl-3-1-on-asahi-linux-fwql9slmu","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/rosenzweig-opengl-3-1-on-asahi-linux-fwql9slmu"},"datePublished":"2026-03-31T12:30:34.733Z","dateModified":"2026-03-31T12:58:03.712Z","description":"Asahi Linux's graphics drivers have been upgraded from OpenGL 2.1 to OpenGL 3.1, and from OpenGL ES 2.0 to OpenGL ES 3.0. The post dives deep into how Apple's...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/6b608ee2c9438b7897840d904799a6b0?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/6b608ee2c9438b7897840d904799a6b0?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Alyssa Rosenzweig","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Alyssa Rosenzweig","logo":"https://media.daily.dev/image/upload/s--LN__O-C---/f_auto,q_auto/v1774960070/logos/rosenzweig?_a=BAMAMiWQ0","url":"https://daily.dev/sources/rosenzweig"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/rosenzweig-opengl-3-1-on-asahi-linux-fwql9slmu","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"vulkan","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Alyssa Rosenzweig","item":"https://daily.dev/sources/rosenzweig"},{"@type":"ListItem","position":3,"name":"Rosenzweig – OpenGL 3.1 on Asahi Linux"}]}
```

