Language Selection

English French German Italian Portuguese Spanish

Graphics Hacking by Rosenzweig and Kristóf

Filed under
Graphics/Benchmarks
  • Rosenzweig – The Apple GPU and the Impossible Bug

    In late 2020, Apple debuted the M1 with Apple’s GPU architecture, AGX, rumoured to be derived from Imagination’s PowerVR series. Since then, we’ve been reverse-engineering AGX and building open source graphics drivers. Last January, I rendered a triangle with my own code, but there has since been a heinous bug lurking:

    The driver fails to render large amounts of geometry.

    Spinning a cube is fine, low polygon geometry is okay, but detailed models won’t render. Instead, the GPU renders only part of the model and then faults.

    [...]

    Traditional immediate mode renderers render directly into the framebuffer. They first run the vertex shader for each vertex of a triangle, then run the fragment shader for each pixel in the triangle. Per-vertex “varying” data is passed almost directly between the shaders, so immediate mode renderers are efficient for complex scenes.

    There is a drawback: rendering directly into the framebuffer requires tremendous amounts of memory access to constantly write the results of the fragment shader and to read out back results when blending. Immediate mode renderers are suited to discrete, power-hungry desktop GPUs with dedicated video RAM.

  • How mesh shaders are implemented in the driver | Timur’s blog

    In part 1 I gave a brief introduction on what mesh and task shaders are from the perspective of application developers. Now it’s time to dive deeper and talk about how mesh shaders are implemented in a Vulkan driver on AMD HW. Note that everything I discuss here is already available as public information in open source driver code. The goal of this blog post is to elaborate on how mesh shaders are implemented on the NGG hardware in AMD RDNA2 GPUs, and to show how these details affect shader performance. Hopefully, this helps the reader better understand how the concepts in the API are translated to the HW and what pitfalls to avoid to get good perf.

  • Timur Kristóf: How mesh shaders are implemented the driver

    In part 1 I gave a brief introduction on what mesh and task shaders are from the perspective of application developers. Now it’s time to dive deeper and talk about how mesh shaders are implemented in a Vulkan driver on AMD HW. Note that everything I discuss here is already available as public information in open source driver code. The goal of this blog post is to elaborate on how mesh shaders are implemented on the NGG hardware in AMD RDNA2 GPUs, and to show how these details affect shader performance. Hopefully, this helps the reader better understand how the concepts in the API are translated to the HW and what pitfalls to avoid to get good perf.

More in Tux Machines

Raspberry Pi Restores Guitar Amp, Complete With Effects

Restoring old hardware is always more fun when you can throw in a Raspberry Pi. This project, created by maker and developer David Silverman, does just that, using a Pi to power an old Vox guitar amplifier. Not only does it work as an amplifier, it also has a few special effects thrown in to create custom sounds. This Pi-powered guitar amp system is housed inside the cabinet of an old Vox amplifier that, according to Silverman, is no longer working. A Pi 3B+ brings back the original functionality, with the help of a class D amplifier and some custom Python scripts created by Silverman himself. The case has been modified to house the Pi and features panels with port access, as well as knobs for the effects array. Read more Also: Lilbits: Anbernic Win600 (handheld gaming PC), PineNote (Linux-friendly E Ink tablet), Firefox 102 and Chrome OS 103 - Liliputing

Help others find free software: Watch and share Escape to Freedom

"Escape to Freedom" is a new animated video from the Free Software Foundation (FSF), giving an introduction to the concepts behind software freedom: both what we gain by having it, and what rights are at stake. Join our lead freedom-seeker, Zara, as she learns the importance of free software, and guides herself through the labyrinth of challenges posed to her by contemporary digital society, which offers the tempting allure of convenience in exchange for important rights. In search of freedom, she learns how to seize control of her own seemingly predetermined narrative and helps others do the same -- taking the ladder that leads to digital liberation step by step. Read more

vnlog 1.33 released

This is a minor release to the vnlog toolkit that adds a few convenience options to the vnl-filter tool. Read more

Consent & Debian's illegitimate constitution

When an association is founded, whether it is incorporated or not, each member must give positive consent to be a member and to be bound by the organization's constitution. Being a member and being governed by the constitution are inseparable. The constitution is effectively a type of contract between the members. If a contract is not signed, it is not valid and if a member has not assented to create the association, they are not a member at all. Between 1993 and 1998, the original authors of Debian worked together without a constitution. They achieved a lot. When a constitution was proposed in 1998, 357 co-authors of Debian were asked to vote on the constitution. This is not really voting though: people who gave a positive vote were agreeing to be members. People who gave a negative vote or did not vote at all have not consented to the constitution and therefore there is no way we can think of them as members of anything. The names of people who voted were published. Those people, just 86 developers, became members of an association by giving their positive assent to be governed by a constitution in their dealings with each other. That means there are 357 - 86 = 271 people, or 76 percent, who were satisfied to work on Debian as joint authors without any notion of an association. A few weeks after 86 people formed their association, Jonathan McDowell copied 489 keys into the Debian keyring repository. Some people have more than one key so it is not exactly 489 people. By combining the 86 confirmed members with all the people who did not choose to be a member, McDowell and others have made it hard for the rest of the world to distinguish who is a member and who is simply an author of Debian. Read more