Language Selection

English French German Italian Portuguese Spanish


Enter your Tux Machines username.
Enter the password that accompanies your username.

More in Tux Machines

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

  • 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/ 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.

SUSE/OpenSUSE: SUSE Enterprise Storage 7, YaST Team and OpenSUSE Tumbleweed

  • SUSE Enterprise Storage 7 - new horizons - SUSE Communities

    If data is the lifeblood of the modern business, then storage must be its heart. The preservation, safeguarding and management of exponentially growing volumes of data on a budget is one of the biggest business challenges today. Companies require scalable, robust and reliable storage solutions to retain their competitive edge. At SUSE, we are committed to delivering the best and latest technology to customers, and turn enterprise IT infrastructure into powerful tools that support your business growth and protect your data assets. In line with our focus on innovation and unwavering commitment to helping you succeed now while preparing you for the future, today we announce the highly anticipated release of SUSE Enterprise Storage 7 – one of the first industry products and leading enterprise-grade solutions based on the Ceph Octopus release. SUSE has been deeply involved in this release. Our engineers led the community development of its two major management modules, cephadm and the new dashboard graphic interface.

  • Digest of YaST Development Sprint 111 | YaST

    Another development sprint ended for the YaST Team this week. This time we have fewer news than usual about new features in YaST… and the reason for that may surprise you. Turns out a significant part of the YaST Team has been studying the internals of Cockpit in an attempt to use our systems management knowledge to help to improve the Cockpit support for (open)SUSE. But that doesn’t mean we have fully stopped the development of YaST and other parts of the installation process.

  • openSUSE Tumbleweed – Review of the week 2020/44 – Dominique a.k.a. DimStar (Dim*)

    Week 44 brought, among many other things, an upgrade to Kernel 5.9.1. The feedback I had seen so far was good, so people can still do their work.

GNOME: Night Light Mode, Igalia and GNOME Calculator

  • Daniel Pocock: Lockdown: surviving small spaces

    With all conferences cancelled this year, one of the things I decided to do was trying an online course. After the first week, I was having trouble sleeping at night, with pain at the back of my eyes. I was almost going to give up. I made various adjustments to dramatically reduce lighting. I already had my monitor permanently in the mode for Low Blue Light. I combined this with the GNOME desktop's Night Light mode and configured smart bulbs in my home to run dimmer and redder. After these changes, I feel the problem was almost immediately resolved. [...] With record numbers of people being infected, dying or simply losing jobs, the idea of throwing a party may not be the most sensitive thing to do. Nonetheless, if you do want to recreate the feeling of going out to a bar or nightclub, it has never been easier or cheaper to do so with various technologies you can buy online. Once again, the key theme is lighting. Smart bulbs can be configured for gradual changes throughout the work day. Some bulbs can be configured for more advanced effects coupled with music. One of my lights is a LED panel that can simulate a disco, candlelight, thunderstorm or even a police car to make the night complete. This means it can be anything from a night club in Berlin to a local pub in Ireland. For sound, seeking a larger diameter speaker sometimes makes a dramatic impact. A pair of oversized vintage speakers from an op-shop may produce better sound than the built-in speakers of most modern laptops, monitors and flat screen TVs. Once you've conquered light and sound, it is time for taste. An Air Fryer can make chips and there are plenty of recipes suitable for any level of cooking skills. Some of the best models are not available in every store and most of them are a lot cheaper online anyway. While they sound like a jet engine, there is no evidence that Air Fryers have been used in the astronaut diet.

  • Claudio Saavedra's ChangeLog - October 2020

    In this line of work, we all stumble at least once upon a problem that turns out to be extremely elusive and very tricky to narrow down and solve. If we're lucky, we might have everything at our disposal to diagnose the problem but sometimes that's not the case – and in embedded development it's often not the case. Add to the mix proprietary drivers, lack of debugging symbols, a bug that's very hard to reproduce under a controlled environment, and weeks in partial confinement due to a pandemic and what you have is better described as a very long lucid nightmare. Thankfully, even the worst of nightmares end when morning comes, even if sometimes morning might be several days away. And when the fix to the problem is in an inimaginable place, the story is definitely one worth telling. [...] It all started with one of Igalia's customers deploying a WPE WebKit-based browser in their embedded devices. Their CI infrastructure had detected a problem caused when the browser was tasked with creating a new webview (in layman terms, you can imagine that to be the same as opening a new tab in your browser). Occasionally, this view would never load, causing ongoing tests to fail. For some reason, the test failure had a reproducibility of ~75% in the CI environment, but during manual testing it would occur with less than a 1% of probability. For reasons that are beyond the scope of this post, the CI infrastructure was not reachable in a way that would allow to have access to running processes in order to diagnose the problem more easily. So with only logs at hand and less than a 1/100 chances of reproducing the bug myself, I set to debug this problem locally. [...] Something that is worth mentioning before we move on is how the WPEBackend-fdo Wayland display integrates with the system. This display is a nested display, with each web view a client, while it is itself a client of the system's Wayland display. This can be a bit confusing if you're not very familiar with how Wayland works, but fortunately there is good documentation about Wayland elsewhere. The way that the Wayland display in the UI process of a WPEWebKit browser is integrated with the rest of the program, when it uses WPEBackend-fdo, is through the GLib main event loop. Wayland itself has an event loop implementation for servers, but for a GLib-powered application it can be useful to use GLib's and integrate Wayland's event processing with the different stages of the GLib main loop. That is precisely how WPEBackend-fdo is handling its clients' events. As discussed earlier, when a new client is created a pair of connected sockets are created and one end is given to Wayland to control communication with the client. GSourceFunc functions are used to integrate Wayland with the application main loop. In these functions, we make sure that whenever there are pending messages to be sent to clients, those are sent, and whenever any of the client sockets has pending data to be read, Wayland reads from them, and to dispatch the events that might be necessary in response to the incoming data. And here is where things start getting really strange, because after doing a bit of fprintf()-powered debugging inside the Wayland-GSourceFuncs functions, it became clear that the Wayland events from the clients were never dispatched, because the dispatch() GSourceFunc was not being called, as if there was nothing coming from any Wayland client. But how is that possible, if we already know that the web process client is actually trying to get the Wayland registry? To move forward, one needs to understand how the GLib main loop works, in particular, with Unix file descriptor sources. A very brief summary of this is that, during an iteration of the main loop, GLib will poll file descriptors to see if there are any interesting events to be reported back to their respective sources, in which case the sources will decide whether to trigger the dispatch() phase. A simple source might decide in its dispatch() method to directly read or write from/to the file descriptor; a Wayland display source (as in our case), will call wl_event_loop_dispatch() to do this for us. However, if the source doesn't find any interesting events, or if the source decides that it doesn't want to handle them, the dispatch() invocation will not happen. More on the GLib main event loop in its API documentation.

  • GSoD Weekly Summary 6

    Since last week, I have been working on the GNOME calculator app and I spent most of my time writing the docs for the different calculator modes.

Videos: Blobs, Linux 5.10 and Procs