Language Selection

English French German Italian Portuguese Spanish

Graphics/Benchmarks

Graphics: Zink, Compute-Runtime and LLVMpipe/OpenGL 4.5

Filed under
Graphics/Benchmarks
  • Mike Blumenkrantz: Invalidation

    I’ve got a lot of exciting stuff in the pipe now, but for today I’m just going to talk a bit about resource invalidation: what it is, when it happens, and why it’s important.

    [...]

    Resource invalidation can occur in a number of scenarios, but the most common is when unsetting a buffer’s data, as in the above example. The other main case for it is replacing the data of a buffer that’s in use for another operation. In such a case, the backing buffer can be replaced to avoid forcing a sync in the command stream which will stall the application’s processing. There’s some other cases for this as well, like glInvalidateFramebuffer and glDiscardFramebufferEXT, but the primary usage that I’m interested in is buffers.

    [...]

    Currently, as of today’s mainline zink codebase, we have struct zink_resource to represent a resource for either a buffer or an image. One struct zink_resource represents exactly one VkBuffer or VkImage, and there’s some passable lifetime tracking that I’ve written to guarantee that these Vulkan objects persist through the various command buffers that they’re associated with.

    Each struct zink_resource is, as is the way of Gallium drivers, also a struct pipe_resource, which is tracked by Gallium. Because of this, struct zink_resource objects themselves cannot be invalidated in order to avoid breaking Gallium, and instead only the inner Vulkan objects themselves can be replaced.

  • Intel Compute-Runtime 20.43.18277 Brings Alder Lake Support - Phoronix

    Intel Compute-Runtime 20.43.18277 is out this morning as the latest version of the company's open-source graphics compute stack for HD/UHD/Iris/Xe Graphics on Linux with OpenCL and oneAPI Level Zero support.

    It was the previous Compute-Runtime release two weeks back that brought OpenCL 3.0 for Broadwell through Ice Lake with Gen12/Tigerlake having already seen CL 3.0 support as a new platform. That OpenCL 3.0 support is in good shape with this latest release and the stack remains at a "pre-release" level for its oneAPI Level Zero 1.0 support.

  • llvmpipe is OpenGL 4.5 conformant.

    (I just sent the below email to mesa3d developer list).

    Just to let everyone know, a month ago I submitted the 20.2 llvmpipe
    driver for OpenGL 4.5 conformance under the SPI/X.org umbrella, and it
    is now official[1].

    Thanks to everyone who helped me drive this forward, and to all the
    contributors both to llvmpipe and the general Mesa stack that enabled
    this.

    Big shout out to Roland Scheidegger for helping review the mountain of
    patches I produced in this effort.

    My next plans involved submitting lavapipe for Vulkan 1.0, it's at 99%
    or so CTS, but there are line drawing, sampler accuracy and some snorm
    blending failure I have to work out.
    I also ran the OpenCL 3.0 conformance suite against clover/llvmpipe
    yesterday and have some vague hopes of driving that to some sort of
    completion.

    (for GL 4.6 only texture anisotropy is really missing, I've got
    patches for SPIR-V support, in case someone was feeling adventurous).

    Dave.

  • LLVMpipe Is Now Officially Conformant With OpenGL 4.5

    Beginning with Mesa 20.2 is OpenGL 4.5 support for LLVMpipe, the LLVM-based software rasterizer built as a Gallium3D driver. This succeeded LLVMpipe for years being limited to OpenGL 3.3. While the OpenGL 4.5 support has been enabled for weeks, The Khronos Group has now officially confirmed its implementation.

Graphics: Mesa, RadeonSI, Vulkan

Filed under
Graphics/Benchmarks
  • Mesa 20.3 Lands Rewritten AMD Zen L3 Cache Optimization - Phoronix

    You may recall going back to 2018 that well known open-source AMD Mesa driver developer Marek Olsak was working on Mesa optimizations around the AMD Zen architecture. In particular, better handling of Mesa for Zen's L3 cache design. A rewritten implementation of that has now landed along with some other improvements.

    Marek discovered his L3 cache topology code was incorrect and ended up rewriting it to "make Mesa on my AMD CPU faster." The code is catering to AMD Ryzen processors but it's also possible Xeon / multi-CPU systems could employ a similar optimization should anyone be interested in pursuing it.

  • RadeonSI Lands Optimization For Uber Shaders - Phoronix

    On top of the AMD Zen L3 cache optimizations hitting Mesa 20.3 today, Marek Olšák has also landed his RadeonSI Gallium3D driver code for optimizing OpenGL uber shaders.

    Marek added a "inline_uniforms" DriConf option to the RadeonSI driver that implements inlinable uniforms.

  • Intel starts publishing Vulkan Linux driver

    Intel's open-source developers have begun publishing their patches enabling their "ANC" Vulkan Linux driver to support Vulkan ray-tracing.

    [...]

    Intel’s other big-ticket items still to come in the near-term include extending the ANV driver to support compiling and dispatching OpenCL kernels, new SPIR-V capabilities, and generic pointer support.

    Also needed is the actual support for compiling ray-tracing pipelines, managing acceleration structures, dispatching rays, and the platform support.

    Intel is not going to go much further until the Khronos Group has firmed up their VK_KHR_ray_tracing extension. However some of this Intel-specific Vulkan ray-tracing code may prove useful to Mesa's Radeon Vulkan "RADV" driver as well.

Kernel: Linux 5.11, Linux 5.10, RCU...

Filed under
Graphics/Benchmarks
Linux
  • Linux 5.11 To Land Optimization That Helps IO_uring Performance - Phoronix

    At the start of October we mentioned a kernel optimization that can help IO_uring performance. Now as we approach the end of the month, Linux 5.11 is poised to land the optimization that especially helps out with threaded workloads.

    The change to task_work to use TIF_NOTIFY_SIGNAL when available is queued as part of the tip.git core/entry code ahead of the Linux 5.11 merge window opening in December. Currently TIF_NOTIFY_SIGNAL is wired up for x86/x86_64 while Jens is working on adding this support to other CPU architectures as well. We'll see how many architectures get supported in time for Linux 5.11 as once completing that work he'll be able to move on with a set of clean-ups.

  • Stupid RCU Tricks: Torturing RCU Fundamentally, Part III - Paul E. McKenney's Journal — LiveJournal

    Even more reading of the Linux-kernel Documentation/RCU/Design/Requirements/Requirements.rst file encounters RCU's memory-barrier guarantees. These guarantees are a bit ornate, but roughly speaking guarantee that RCU read-side critical sections lapping over one end of a given grace period are fully ordered with anything past the other end of that same grace period. RCU's overall approach towards this guarantee is shown in the Linux-kernel Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst file, so one approach would be to argue that these guarantees are proven by a combination of this documentation along with periodic code inspection. Although this approach works well for some properties, the periodic code inspections require great attention to detail spanning a large quantity of intricate code. As such, these inspections are all too vulnerable to human error.

    Another approach is formal verification, and in fact RCU's guarantees have been formally verified. Unfortunately, these formal-verification efforts, groundbreaking though they are, must be considered to be one-off tours de force. In contrast, RCU needs regular regression testing.

  • Stupid RCU Tricks: Torturing RCU Fundamentally, Parts IV and V - Paul E. McKenney's Journal — LiveJournal

    The first guarantee is trivially verified by inspection of the RCU API. The type of rcu_read_lock(), rcu_read_unlock(), synchronize_rcu(), call_rcu(), and rcu_assign_pointer() are all void. These API members therefore have no way to indicate failure. Even primitives like rcu_dereference(), which do have non-void return types, will succeed any time a load of their pointer argument would succeed. That is, if you do rcu_dereference(*foop), where foop is a NULL pointer, then yes, you will get a segmentation fault. But this segmentation fault will be unconditional, as advertised!

  • AMD Navi "Blockchain" Card Support Being Added To Linux 5.10

    Last week we were first to report on a PCI ID being added for a Navi 1 "Blockchain" graphics card without display outputs and seemingly focused on cryptocurrency mining. This card wasn't talked about at yesterday's Radeon RX 6000 series launch but that support is now on the way to the Linux 5.10 kernel.

    The code sent out last week added the new Navi 10 PCI ID and disabled DCN/VCN support for that ID with this card not having video acceleration or display functionality. Aside from that patch, AMD hasn't officially acknowledged this new part that is RDNA (1) and not to be confused with the forthcoming RDNA2 / RX 6000 series products.

AMD ROCm 3.9 and AMDVLK 2020.Q4.2 Vulkan Driver

Filed under
Graphics/Benchmarks
Hardware
  • AMD ROCm 3.9 Released With AOMP OpenMP Offloading Integrated - Phoronix

    A new version of the AMD Radeon Open eCosystem (ROCm) has been released on the same day as the company announcing the Radeon RX 6800/6900 series. Meet ROCm 3.9.

    While announced on the same day as the Big Navi RX 6800/6900 reveal, ROCm 3.9 has no mention of supporting these GPUs starting to ship in November. In fact, the Radeon RX 5000 "Navi 1" graphics cards are still not listed as supported with ROCm 3.9 with Vega/GFX9 still being listed as the latest hardware support.

  • AMDVLK 2020.Q4.2 Vulkan Driver Released - Phoronix

    As we hit the end of October AMD has issued their second open-source Vulkan driver code drop of the quarter with the AMDVLK 2020.Q4.2 availability.

    Listed with this morning's AMDVLK 2020.Q4.2 update is just updating against Vulkan API 1.2.157 and fixing a GPU hang that can occur with DOOM Eternal running under Steam Play. That's it as far as the listed changes go for today's update.

Graphics: Wayland, Radeon, and Mesa

Filed under
Graphics/Benchmarks
  • Sony Engineer Talks Up Using Flutter + Wayland For Their Embedded Interfaces - Phoronix

    A Sony engineer confirmed at this week's Embedded Linux Conference Europe that the company has begun using the Flutter toolkit atop Wayland as their means of developing user-interfaces on embedded systems.

    Hidenori Matsubayashi of Sony talked at ELCE 2020 about their evaluation of different GUI toolkits for embedded use and ultimately how they fell for Flutter and Wayland. They came to that decision when evaluating the likes of Electron, Qt, GTK, WebKit/Chromium with WebView, and the many other options out there.

    Their design requirements were needing to be able to make "beautiful" user interfaces, support easy development, exhibit low CPU and RAM requirements, work across display servers and software stacks, and the toolkit must allow use within proprietary software.

  • Linux Support Expectations For The AMD Radeon RX 6000 Series

    Lisa Su is about to begin the presentation unveiling the much anticipated Radeon RX 6000 "Big Navi" (RDNA 2) graphics cards. This article will be updated live as the event progresses but first up let's recap the current Linux open-source driver state for these forthcoming graphics cards.

    Under the codename Sienna Cichlid, the Linux support for the next-generation Navi graphics cards have been underway going back to the middle of the year. There is initial support for the next-gen hardware within the recent released Linux 5.9 kernel and Mesa 20.2. This still puts it just out-of-reach for seeing out-of-the-box support in the likes of Ubuntu 20.10 given the 5.8 kernel so the user must manually move to the newer kernel. At least with the likes of Fedora Workstation 33 there will be Linux 5.9 as a stable release update. Also important to the driver equation is needing to be using LLVM 11.0+ for the GFX10.3 back-end target and also ensuring to have the latest linux-firmware for the binary microcode files needed for GPU initialization.

    So at least going into this launch it's great there is at least open-source driver support available but not necessarily easy reach for all users right now. By the time of the spring 2021 Linux distributions like Ubuntu 21.04 there should be nice out-of-the-box support for those wanting good support without any hassles. Or if you are on an enterprise distribution like RHEL/CentOS or SUSE Linux Enterprise or Ubuntu 20.04 LTS, AMD should be providing their usual Radeon Software for Linux packaged driver that ships updated user and kernel-space components for deploying their driver that way.

  • Mesa 20.3 Supports Intel Alder Lake Gen12 Graphics - Phoronix

    Last week Intel open-source engineers began publishing Linux kernel patches for the "Alder Lake S" graphics support. That work should be found in the Linux 5.11 cycle being christened as stable in early 2021. In user-space, Alder Lake graphics patches also appeared for their OpenCL / oneAPI Level Zero compute stack and now merged into Mesa 20.3 as well for OpenGL / Vulkan support.

    Given that Alder Lake is using Intel Xe "Gen12" graphics as found already for Tiger Lake and Rocket Lake, the actual driver-side enablement is quite minimal thanks to employing the existing code paths. The Alder Lake "ADL-S" support was merged into Mesa on Tuesday and is just 20 lines of new code. That consists of just adding the new PCI IDs and then the family bits for the Alder Lake family and indicating they make use of Gen12 features.

A Look At The Performance Improvements With System76 Pop!_OS 20.10

Filed under
Graphics/Benchmarks

At the end of last week System76 released Pop!_OS 20.10 as their customized distribution built atop Ubuntu 20.10 Groovy Gorilla. For those curious here are some benchmarks of System76's Pop!_OS 20.10 versus 20.04 using the Thelio Major with AMD Ryzen Threadripper 3990X and Radeon RX 5700 XT graphics.

Pop!_OS 20.10 has similar key package versions to Ubuntu 20.10 for which it is based: the Linux 5.8 kernel is at play, GNOME Shell 3.38.1, X.Org Server 1.20.8 by default, Mesa 20.2.1, GCC 10.2, Python 3.8.6, and numerous other package updates.

Read more

Samsung 980 PRO PCIe 4.0 NVMe SSD Linux Performance

Filed under
Graphics/Benchmarks

The Samsung 980 PRO PCIe 4.0 NVMe solid-state drives are now available from Internet retailers. For those wondering how these SSDs compare with EXT4 under Linux against other PCIe 4.0/3.0 drives, here are a variety of benchmarks.

While Samsung hasn't sent out NVMe SSDs for Linux testing at Phoronix, we continue purchasing the new models due to their high performance state and needing some additional drives for various systems in the lab. When the Samsung 980 PRO reached retail channels this month I picked up the Samsung 980 PRO 500GB and 1TB drives and ran a series of benchmarks on them prior to commissioning.

Read more

Benchmarks and Graphics Leftovers: x86, Zink, and Navi

Filed under
Graphics/Benchmarks
  • Intel Core i7 1165G7 Tiger Lake vs. AMD Ryzen 7 PRO 4750U Linux Performance

    For the Intel Tiger Lake Linux benchmarking thus far with the Core i7 1165G7 on the Dell XPS 13 9310 it's primarily been compared against the Ryzen 5 4500U and Ryzen 7 4700U on the AMD side since those are the only Renoir units within my possession. But a Phoronix reader recently provided me with remote access to his Lenovo ThinkPad X13 with Ryzen 7 PRO 4750U (8 cores / 16 threads) for seeing how the Tiger Lake performance compares against that higher-end SKU.

    Phoronix reader Tomas kindly provided SSH access to his ThinkPad X13 with Ryzen 7 PRO 4750U and 16GB of RAM. The Ryzen 7 PRO 4750U is quite close to the Ryzen 7 4800U with 8 cores / 16 threads but graphics capabilities in line with the 4700U. He's been quite happy with the ThinkPad X13 as a replacement to the Dell XPS 13 for business usage and has been running it with Ubuntu 18.04 LTS on the Linux 5.8 kernel.

  • Mike Blumenkrantz: Catching Up

    A rare Saturday post because I spent so much time this week intending to blog and then somehow not getting around to it. Let’s get to the status updates, and then I’m going to dive into the more interesting of the things I worked on over the past few days.

    Zink has just hit another big milestone that I’ve just invented: as of now, my branch is passing 97% of piglit tests up through GL 4.6 and ES 3.2, and it’s a huge improvement from earlier in the week when I was only at around 92%. That’s just over 1000 failure cases remaining out of ~41,000 tests. For perspective, a table.

  • AMD 'Big Navi' 3DMark Firestrike results shared by HW testing firm

    The Linux specialists over at Phoronix have noticed that the AMD Linux driver has been tweaked to add support for a new graphics card dubbed the "navi10 blockchain SKU". It comments that the only visible difference in support for this card vs existing Navi 1X support, from the driver perspective, is that the patches disable the Display Core Next (DCN) and Video Core Next (VCN) support - basically creating a 'headless' Navi 1X graphics card.

    Cryprocurrency is showing signs of a resurgence in popularity and values, and some are worried that the latest and greatest GPUs from both Nvidia and AMD will be plucked from retailers even faster if they are viable mining platforms. It has been reported that AMD is trying to make sure retailers follow certain distribution practices with its upcoming Radeon RX 6000 series products, to make sure they are distributed to gamers and enthusiasts rather than scalpers and such like. An initiative like creating appealing crypto-specific Navi 1X products might help everyday consumers get their hands on a new Navi 2X graphics card too.

Intel Xe Graphics' Incredible Performance Uplift From OpenCL To oneAPI Level Zero To Vulkan

Filed under
Graphics/Benchmarks

Since picking up the Dell XPS 13 9310 for delivering Tiger Lake Linux benchmarks, most of the focus so far has been about the overall processor performance while in this article is our first deep dive into the Gen12 Xe Graphics performance on Linux with Intel's fully open-source graphics and compute stack. Here is a look at how the Tiger Lake Xe Graphics performance is with the Core i7-1165G7 ranging from OpenGL and Vulkan graphics tests to OpenCL, oneAPI Level Zero, and Vulkan compute tests.

Read more

The Most Innovative ~$50 Graphics Card For Linux Users

Filed under
Graphics/Benchmarks

This ~$50 USD graphics card is open-source friendly, can drive four display outputs simultaneously, passively cooled, and can fit in a PCI Express x1 slot. It's a unique card offering good value especially for those Linux users wanting open-source friendly hardware.

Earlier this year ASUS announced the GT710-4H-SL-2GD5. In the months since we didn't hear anything more about it given the pandemic but recently saw it became available via Internet retailers and picked one up for testing.

Read more

Syndicate content

More in Tux Machines

IBM Red Hat vs. SUSE: How do these Linux distributions stack up?

IBM Red Hat and SUSE are the leading vendors in the open source enterprise Linux market, but how do these two builds compare? Learn the history of IBM Red Hat vs. SUSE and compare numerous criteria -- including the architectures each supports and how each distribution addresses the learning curve -- as well as product support offerings, pricing and certifications. Like other Linux distributions, RHEL and SUSE both support a comprehensive set of commands. When comparing these two distributions, it's worth noting that, although some commands are common to all Linux distributions, IBM Red Hat and SUSE also have their own command sets. Additionally, the commands these Linux distributions support tend to evolve over time. [...] Like any Linux distribution, SLES has a significant learning curve, particularly for those who are new to Linux OSes. However, SUSE does offer comprehensive training resources, including online and in-person classes. SLES is sold as a one- or three-year subscription. The subscription cost is based on the number of sockets or VMs, the architecture and the support option the organization selects. A one-year subscription for an x86/x64 OS running on one to two sockets or one to two VMs with Standard support starts at $799. SUSE offers two support options: Standard and Priority. Its Standard support plan includes assistance with software upgrades and updates, as well as unlimited technical support via chat, phone or web. Support is available 12 hours per day, five days per week, with a two-hour response time for Severity 1 issues and a four-hour response time for Severity 2 issues. Read more Also: Simply NUC mini data center > Tux-Techie

LibreOffice 7.1 Layout Updates and "typical errors when creating presentation templates"

  • [LibreOffice 7.1] Layout updates

    You know the LibreOffice community work hard on the LibreOffice 7.1 Christmas release. Did you know that LibreOffice has 7 different UI Layouts? With the next release, our uses will be informed after the installation. Thanks to Heiko for the new dialog.

  • Your typical errors when creating presentation templates. Part 1

    Try click somewhere on slide in area with rectangles. You can select any from these rectangles include the largest grey rectangle that author used as background for all composition. Its all are just shapes! This is an absolutely wrong way when you create a presentation template!

Upgrades, Fedora and IBM Leftovers

Python Programming

  • Public Apology to Jeremy Howard

    We, the NumFOCUS Code of Conduct Enforcement Committee, issue a public apology to Jeremy Howard for our handling of the JupyterCon 2020 reports. We should have done better. We thank you for sharing your experience and we will use it to improve our policies going forward. We acknowledge that it was an extremely stressful experience, being summoned to an interview with several members of a committee, after a week had passed, and without knowing the nature of the complaint. We apologize for causing this stress and will work to improve our process to avoid this from happening in the future. To clarify a crucial miscommunication that we take responsibility for: At the time of the interview, the committee had not determined that there was a violation of the code of conduct, only that there were two complaints filed and being examined. We apologize for not communicating that clearly from the beginning. We have not recommended any enforcement actions. We had asked to postpone the posting of the talk to the JupyterCon shared space until the complaints are resolved. We realize now that we used overly charged language and miscommunicated the stage of the investigation when discussing the complaints, i.e. saying a violation occurred. We should have been clearer saying multiple complaints have been made and the alleged violation investigation had not been resolved.

  • Python Morsels: Data structures contain pointers

    Data structures in Python don't actually contain objects. They references to objects (aka "pointers").

  • Sending Invites - Building SaaS #77 · Matt Layman

    In this episode, I worked on the form that will send invites to users for the new social network app that I’m building. We built the view, the form, and the tests and wired a button to the new view. The first thing that we do was talk through the new changes since the last stream. After discussing the progress, I took some time to cover the expected budget for the application to get it to an MVP. Once we covered the budget, I talked about different strategies for sending invite emails and the tradeoffs between sending email in a request and response cycle versus using background workers.

  • Episode #33: Going Beyond the Basic Stuff With Python and Al Sweigart – The Real Python Podcast

    You probably have heard of the bestselling Python book, “Automate the Boring Stuff with Python.” What are the next steps after starting to dabble in the Python basics? Maybe you’ve completed some tutorials, created a few scripts, and automated repetitive tasks in your life. This week on the show, we have author Al Sweigart to talk about his new book, “Beyond the Basic Stuff with Python: Best Practices for Writing Clean Code.”

  • How to Sort a Dictionary by Value in Python

    A dictionary in Python is a collection of items that stores data as key-value pairs. In Python 3.7 and later versions, dictionaries are sorted by the order of item insertion. In earlier versions, they were unordered. Let's have a look at how we can sort a dictionary on basis of the values they contain.