#embedded CPU
Explore tagged Tumblr posts
semimediapress · 24 days ago
Text
Codasip seeks buyer amid growing pressure in RISC-V processor market
July 2, 2025 /SemiMedia/ — Germany-based RISC-V processor specialist Codasip has been put up for sale, as the company’s board seeks to complete a transaction within three months, aiming to address mounting competition and funding pressures in the open-architecture CPU sector. Under CEO Ron Black’s leadership, Codasip is exploring options including a full sale or business unit spin-offs. The…
0 notes
roseseafoam · 8 months ago
Text
I don’t experience winter seasonal depression, but I was in the warehouse late last night and a little grasshopper was just sitting on my computer’s CPU staring down into the distance and just know it was going through it…
0 notes
postgamecontent · 7 months ago
Text
The Unisys Icon: One Canadian Xennial's Memories of Ontario's Obscure Computer
Tumblr media
One topic that often comes up in retro gaming circles is how aspects of gaming history not part of the American story don't get enough attention. I personally feel it's mostly up to the people to whom the stories belong to tell them. So I am going to follow my own advice today and tell the tale of a computer that statistically speaking almost no one has used, and some of that computer's software. I have to tell this story from memory, because this computer and its software functionally no longer exist. Practically no photographs of any of its games exist. We're relying on decades-old recall here, so… I'll do my best.
The Unisys ICON was a computer developed as an initiative by the Ontario Ministry of Education to create a standard for Ontario schools. It used an Intel 80186 CPU and its OS was an early version of a Unix-like system that eventually came to be known as QNX. Yes, the Blackberry one. Still in use, I believe. Each Unisys ICON came with its own monitor and a very robust keyboard with a trackball embedded in it. Computers ran in a network from a designated server machine. They were pretty expensive and the whole program was quite controversial, with many considering it a colossal waste of tax money. I mean, in hindsight… probably?
The first line of ICONs were introduced to schools in Ontario in 1984, and support for the platform continued until 1994. During that time, several models were created along with a fair bit of bespoke software. Most of it was meant to be educational, used for teaching programming to older kids and more general lessons to younger ones. I don't recall any pure games without any educational component, although some of them really danced on that line. When the ICON program was canceled in 1994, the Archives of Ontario declined to preserve the ICON and its software. They were all ordered to be destroyed, and just about all of them were.
Only a few fully working models are known to be in existence today, and some of the software was just straight-up lost forever. No emulators exist, and there is no way to play any ICON software unless you have access to one of those few remaining units. So yes, all my UK friends out there? I know you dislike it when Americans make jokes about your Spectrum and Amiga computers and games, but you can only joke about something if you've heard about it. No one jokes about the ICON. I mean, until they find out about its nickname, "The Bionic Beaver". That's easy pickins.
My elementary school in a small Northwestern Ontario town had about a hundred students total from Junior Kindergarten to Grade 6. It was such a small school, we didn't even have a Grade 5 class and teacher. They just divided the Grade 5 students by academic achievement and stuck the higher achievers in the Grade 6 class and the lower ones stayed in the Grade 4 class with slightly more difficult texts and homework. Anyway, it was a small school. It no longer exists. But in the 1980s, we had a couple of Apple II computers. They were pretty old by then, and the green and black monitors didn't impress kids who had tasted the Commodore 64, Tandy, or NES. But hey, we played Oregon Trail, Carmen Sandiego, and Crosscountry Canada on them when we could.
I remember when we got our ICONs. It was a pretty big deal! Our school received four of them, with one designated as the server. They were put in a prime location in the hallway, between the fourth grade classroom and the school entrance. If a person was going to the auditorium, they'd have to pass by them. Not like those Apple IIs, tucked away in a less traveled part of the hallways. Our school was proud of those ICONs, and the student body was excited to use them. One of the fun things about visiting the junior high school was that it had a whole lab of ICONs, with different games. Pure decadence! Absolutely sick!
Anyway, the memories of Xennials from Ontario are by and large all that remains of these things now. Even the Wikipedia entry's list of software is missing games I know I played on there. So what can you do? I'm going to talk about some of the games I remember, and since literally no screenshots exist, I drew some pictures. Quickly, mind you. And from 35+ year old memories, no less. Sorry, it's all I've got.
Tumblr media
(Not actual screenshots)
SpectICON: This was a paint program, and when our ICON computers were turned on this is what they defaulted to. When the program loaded up, it had a colorful picture of a tree in autumn in place. You could change the palette using the trackball, and if you rolled it with some power the colors of the tree would wildly alternate. My friend Peter dubbed this "Disco Tree". It could do some simple animation, mostly by morphing between two images. I used this to make an animation of a robot turning into a car, because I was ten years old in 1989 and Transformers was the thing.
Offshore Fishing: One of the more popular games in my school. You would move your boat to different locations on a map, after which it would switch to a side-view. You then used the trackball to maneuver your fishing net, trying to catch as much as you can. If a shark comes, it will break your net and you'll lose a lot of money. This was supposed to teach us about the fishing industry, I think?
Math Maze: Another popular one in my school. You would make your way through a maze, battling monsters and looking for treasures. You could pick a knight or a wizard, and your choice of weapon between a sword and a wand. Knight with wand was splendid. No effect on the gameplay, of course. When you met a monster or found a treasure, it was time to do MATH. The last boss of the dungeon would ask what weighed more, a pound of feathers or a pound of gold. We were very proud when we sorted out the answer to that one. The cut-out box at the side showing a close-up of the action had some interesting visuals, at least.
A Day in the Life Of: We didn't have this one at my school, but the junior high school had it and I played it there. A strange game where you played as a student, and you could just straight up cut school and go to the mall if you wanted to. The mall had some different spots to visit, including an arcade where you could play a minigames called Mutant Bunnies Attack or something. It was basically Activision's Kaboom, and since we had a trackball… well, this was a pretty good time. I don't remember the actual point of this one.
Crosscountry Canada & Lemonade Stand: You might know these games from other platforms. They were ported to the ICON and played pretty much the same way here as anywhere else. Both were old hat for us and didn't get much play as a result.
Greenhouse: A gardening game. You had to grow plants by setting a variety of conditions, including temperature, watering, and sunlight. Each plant had different needs, but if you could sort it out you would be rewarded by seeing them grow. I messed around with this one a bit, but it was on the junior high school computers so I didn't get to play it as much as I would have liked.
Robot R&D: Robots! This was a cool one. You would build a robot from different parts and materials. You could then put them through a variety of tests to see how they would react. You could immerse them in water, try to crush them, or just drop them from high places. For most kids, you had them at "build a robot".
There were lots of other games, but these were the ones I played and the ones I remember. I wish I could tell you about all of them, but this is the limit of my knowledge. Maybe someone else out there can remember other ones and talk about them? I hope that one day this off-beat, highly geographically and temporally localized computer is properly archived and its software is made accessible again. I would like to play Offshore Fishing at least one more time in my life. Thanks for reading!
Extra Note: I just remembered the darned things would say HELLO when you booted them up. A talking computer?!
8 notes · View notes
andmaybegayer · 1 year ago
Text
man the raspberry pi 3 really isn't happy being a desktop system. I haven't tried to use one as anything other than a headless compute box in years, the combination of cheap sd card flash, broadcom embedded GPU and pretty mid CPU cores really are bad tastes that taste bad together. There's core 2 duos with magnetic hard drives that feel snappier than this.
25 notes · View notes
stevenketterman2 · 1 month ago
Text
The Evolution of DJ Controllers: From Analog Beginnings to Intelligent Performance Systems
The DJ controller has undergone a remarkable transformation—what began as a basic interface for beat matching has now evolved into a powerful centerpiece of live performance technology. Over the years, the convergence of hardware precision, software intelligence, and real-time connectivity has redefined how DJs mix, manipulate, and present music to audiences.
For professional audio engineers and system designers, understanding this technological evolution is more than a history lesson—it's essential knowledge that informs how modern DJ systems are integrated into complex live environments. From early MIDI-based setups to today's AI-driven, all-in-one ecosystems, this blog explores the innovations that have shaped DJ controllers into the versatile tools they are today.
Tumblr media
The Analog Foundation: Where It All Began
The roots of DJing lie in vinyl turntables and analog mixers. These setups emphasized feel, timing, and technique. There were no screens, no sync buttons—just rotary EQs, crossfaders, and the unmistakable tactile response of a needle on wax.
For audio engineers, these analog rigs meant clean signal paths and minimal processing latency. However, flexibility was limited, and transporting crates of vinyl to every gig was logistically demanding.
The Rise of MIDI and Digital Integration
The early 2000s brought the integration of MIDI controllers into DJ performance, marking a shift toward digital workflows. Devices like the Vestax VCI-100 and Hercules DJ Console enabled control over software like Traktor, Serato, and VirtualDJ. This introduced features such as beat syncing, cue points, and FX without losing physical interaction.
From an engineering perspective, this era introduced complexities such as USB data latency, audio driver configurations, and software-to-hardware mapping. However, it also opened the door to more compact, modular systems with immense creative potential.
Controllerism and Creative Freedom
Between 2010 and 2015, the concept of controllerism took hold. DJs began customizing their setups with multiple MIDI controllers, pad grids, FX units, and audio interfaces to create dynamic, live remix environments. Brands like Native Instruments, Akai, and Novation responded with feature-rich units that merged performance hardware with production workflows.
Technical advancements during this period included:
High-resolution jog wheels and pitch faders
Multi-deck software integration
RGB velocity-sensitive pads
Onboard audio interfaces with 24-bit output
HID protocol for tighter software-hardware response
These tools enabled a new breed of DJs to blur the lines between DJing, live production, and performance art—all requiring more advanced routing, monitoring, and latency optimization from audio engineers.
All-in-One Systems: Power Without the Laptop
As processors became more compact and efficient, DJ controllers began to include embedded CPUs, allowing them to function independently from computers. Products like the Pioneer XDJ-RX, Denon Prime 4, and RANE ONE revolutionized the scene by delivering laptop-free performance with powerful internal architecture.
Key engineering features included:
Multi-core processing with low-latency audio paths
High-definition touch displays with waveform visualization
Dual USB and SD card support for redundancy
Built-in Wi-Fi and Ethernet for music streaming and cloud sync
Zone routing and balanced outputs for advanced venue integration
For engineers managing live venues or touring rigs, these systems offered fewer points of failure, reduced setup times, and greater reliability under high-demand conditions.
Tumblr media
Embedded AI and Real-Time Stem Control
One of the most significant breakthroughs in recent years has been the integration of AI-driven tools. Systems now offer real-time stem separation, powered by machine learning models that can isolate vocals, drums, bass, or instruments on the fly. Solutions like Serato Stems and Engine DJ OS have embedded this functionality directly into hardware workflows.
This allows DJs to perform spontaneous remixes and mashups without needing pre-processed tracks. From a technical standpoint, it demands powerful onboard DSP or GPU acceleration and raises the bar for system bandwidth and real-time processing.
For engineers, this means preparing systems that can handle complex source isolation and downstream processing without signal degradation or sync loss.
Cloud Connectivity & Software Ecosystem Maturity
Today’s DJ controllers are not just performance tools—they are part of a broader ecosystem that includes cloud storage, mobile app control, and wireless synchronization. Platforms like rekordbox Cloud, Dropbox Sync, and Engine Cloud allow DJs to manage libraries remotely and update sets across devices instantly.
This shift benefits engineers and production teams in several ways:
Faster changeovers between performers using synced metadata
Simplified backline configurations with minimal drive swapping
Streamlined updates, firmware management, and analytics
Improved troubleshooting through centralized data logging
The era of USB sticks and manual track loading is giving way to seamless, cloud-based workflows that reduce risk and increase efficiency in high-pressure environments.
Hybrid & Modular Workflows: The Return of Customization
While all-in-one units dominate, many professional DJs are returning to hybrid setups—custom configurations that blend traditional turntables, modular FX units, MIDI controllers, and DAW integration. This modularity supports a more performance-oriented approach, especially in experimental and genre-pushing environments.
These setups often require:
MIDI-to-CV converters for synth and modular gear integration
Advanced routing and clock sync using tools like Ableton Link
OSC (Open Sound Control) communication for custom mapping
Expanded monitoring and cueing flexibility
This renewed complexity places greater demands on engineers, who must design systems that are flexible, fail-safe, and capable of supporting unconventional performance styles.
Looking Ahead: AI Mixing, Haptics & Gesture Control
As we look to the future, the next phase of DJ controllers is already taking shape. Innovations on the horizon include:
AI-assisted mixing that adapts in real time to crowd energy
Haptic feedback jog wheels that provide dynamic tactile response
Gesture-based FX triggering via infrared or wearable sensors
Augmented reality interfaces for 3D waveform manipulation
Deeper integration with lighting and visual systems through DMX and timecode sync
For engineers, this means staying ahead of emerging protocols and preparing venues for more immersive, synchronized, and responsive performances.
Final Thoughts
The modern DJ controller is no longer just a mixing tool—it's a self-contained creative engine, central to the live music experience. Understanding its capabilities and the technology driving it is critical for audio engineers who are expected to deliver seamless, high-impact performances in every environment.
Whether you’re building a club system, managing a tour rig, or outfitting a studio, choosing the right gear is key. Sourcing equipment from a trusted professional audio retailer—online or in-store—ensures not only access to cutting-edge products but also expert guidance, technical support, and long-term reliability.
As DJ technology continues to evolve, so too must the systems that support it. The future is fast, intelligent, and immersive—and it’s powered by the gear we choose today.
2 notes · View notes
16naughts · 5 months ago
Text
Dev Log Mar 7 2025 - All Hands on Deck
Crescent Roll v1.0 is now live on Steam, but with it being something of a soft launch, there's quite a bit of work still to be done. And our first order of business is getting together a Steam Deck version so the more players can take advantage of those all-too-essential motion controls.
The Steam Deck is a Linux machine with a custom OS (aptly called SteamOS) that has a compatibility layer called Proton that lets you run most Windows games straight out of the box. However, Crescent Roll is not most Windows games. We use .Net8 and WebView2 on Windows, neither of which Proton is able to efficiently emulate straight out of the Steam library (you can do some trickery on Desktop mode to get it running, but the point of the Deck is to make it easier for non-tech people, so that ain't gonna fly) Fortunately, we've already thought on this for quite a bit. The .Net platform can be embedded in the executable itself with no need to install anything, which solves problem 1. The replacement for WebView2 is a little more tricky - we have to embed essentially an entire web browser into the game. Steam uses something called the Chromium Embedded Framework, or CEF, to show the popover that you see in games, as well as their storefront and a bunch of other little widgets. It's essentially a self-bundled customized Chrome instance that you can stick in pretty much anything. That would be perfect, but unfortunately for us, after searching for days, it doesn't seem to be exposed anywhere in the Steam runtime, so we can't piggyback off of that. Unfortunate. Embedding it ourselves is also going to add a whopping 1GB to our 100MB install, so uh, perhaps not. So, alternatively, there's WebKit. It's to Safari what CEF is to Chrome. Just the bare minimum of a web browser that you can slap into anything. SteamOS doesn't have it pre-bundled, but it's around 100MB-ish, so you know - better than CEF. So, there we go. Except, CEF expected you to just drag-and-drop libcef.so into your project, and WebKit wants to be installed separately. Which you can't really do on the Steam Deck. So, what I've been doing for the past week is chopping up and patching pieces of the WebKit2GTK project to get it running on the Deck under our sub-directory. Which has not been remotely fun, and will probably get its own write-up here to help out anybody else doing the same thing. But...
Tumblr media
It works. Well, as of writing this, it's mostly works. The audio isn't playing, and we're locked at 20FPS display even though the game runs at full speed and is only using 10% of the CPU, but it's actually entirely playable. We were hoping to start releasing a weekly update every Monday starting next week. Fingers crossed we'll be able to iron those last two issues out for it. Although this is big enough that if we're close, we might just wait for Tuesday to ship out both at once. Fortunately, nobody seems to be knocking down our door for this, so we've got a little bit of leeway.
3 notes · View notes
digitaldetoxworld · 5 months ago
Text
Building Your Own Operating System: A Beginner’s Guide
An operating system (OS) is an essential component of computer systems, serving as an interface between hardware and software. It manages system resources, provides services to users and applications, and ensures efficient execution of processes. Without an OS, users would have to manually manage hardware resources, making computing impractical for everyday use.
Tumblr media
Lightweight operating system for old laptops
Functions of an Operating System
Operating systems perform several crucial functions to maintain system stability and usability. These functions include:
1. Process Management
 The OS allocates resources to processes and ensures fair execution while preventing conflicts. It employs algorithms like First-Come-First-Serve (FCFS), Round Robin, and Shortest Job Next (SJN) to optimize CPU utilization and maintain system responsiveness.
2. Memory Management
The OS tracks memory usage and prevents memory leaks by implementing techniques such as paging, segmentation, and virtual memory. These mechanisms enable multitasking and improve overall system performance.
3. File System Management
It provides mechanisms for reading, writing, and deleting files while maintaining security through permissions and access control. File systems such as NTFS, FAT32, and ext4 are widely used across different operating systems.
4. Device Management
 The OS provides device drivers to facilitate interaction with hardware components like printers, keyboards, and network adapters. It ensures smooth data exchange and resource allocation for input/output (I/O) operations.
5. Security and Access Control
 It enforces authentication, authorization, and encryption mechanisms to protect user data and system integrity. Modern OSs incorporate features like firewalls, anti-malware tools, and secure boot processes to prevent unauthorized access and cyber threats.
6. User Interface
 CLI-based systems, such as Linux terminals, provide direct access to system commands, while GUI-based systems, such as Windows and macOS, offer intuitive navigation through icons and menus.
Types of Operating Systems
Operating systems come in various forms, each designed to cater to specific computing needs. Some common types include:
1. Batch Operating System
These systems were widely used in early computing environments for tasks like payroll processing and scientific computations.
2. Multi-User Operating System
 It ensures fair resource allocation and prevents conflicts between users. Examples include UNIX and Windows Server.
3. Real-Time Operating System (RTOS)
RTOS is designed for time-sensitive applications, where processing must occur within strict deadlines. It is used in embedded systems, medical devices, and industrial automation. Examples include VxWorks and FreeRTOS.
4  Mobile Operating System
Mobile OSs are tailored for smartphones and tablets, offering touchscreen interfaces and app ecosystems. 
5  Distributed Operating System
Distributed OS manages multiple computers as a single system, enabling resource sharing and parallel processing. It is used in cloud computing and supercomputing environments. Examples include Google’s Fuchsia and Amoeba.
Popular Operating Systems
Several operating systems dominate the computing landscape, each catering to specific user needs and hardware platforms.
1. Microsoft Windows
 It is popular among home users, businesses, and gamers. Windows 10 and 11 are the latest versions, offering improved performance, security, and compatibility.
2. macOS
macOS is Apple’s proprietary OS designed for Mac computers. It provides a seamless experience with Apple hardware and software, featuring robust security and high-end multimedia capabilities.
3. Linux
Linux is an open-source OS favored by developers, system administrators, and security professionals. It offers various distributions, including Ubuntu, Fedora, and Debian, each catering to different user preferences.
4. Android
It is based on the Linux kernel and supports a vast ecosystem of applications.
5. iOS
iOS is Apple’s mobile OS, known for its smooth performance, security, and exclusive app ecosystem. It powers iPhones and iPads, offering seamless integration with other Apple devices.
Future of Operating Systems
The future of operating systems is shaped by emerging technologies such as artificial intelligence (AI), cloud computing, and edge computing. Some key trends include:
1. AI-Driven OS Enhancements
AI-powered features, such as voice assistants and predictive automation, are becoming integral to modern OSs. AI helps optimize performance, enhance security, and personalize user experiences.
2. Cloud-Based Operating Systems
Cloud OSs enable users to access applications and data remotely. Chrome OS is an example of a cloud-centric OS that relies on internet connectivity for most functions.
3. Edge Computing Integration
With the rise of IoT devices, edge computing is gaining importance. Future OSs will focus on decentralized computing, reducing latency and improving real-time processing.
4. Increased Focus on Security
Cyber threats continue to evolve, prompting OS developers to implement advanced security measures such as zero-trust architectures, multi-factor authentication, and blockchain-based security.
3 notes · View notes
vvatchword · 3 months ago
Text
Okay: speaking of the Drama of the World's Stupidest Netbook: often the problem is me, actually!
Remember how I complained that my ISO flash drives didn't work? There was a reason for that.
I only figured this out today, when I grew so angry about not being able to job hunt that I started scouring Public Surplus, Craigslist, eBay, and Facebook Marketplace for used laptops. My RAM threshold was 8 GB and I wanted an AMD CPU.
This town is a great place to look for electronics. There's money here. So within an hour I find a perfectly suitable ASUS laptop (Intel, though. Boooo) under $100. I jumped on it, I didn't give a single fuck.
I bring back my prize. Start it up. Windows immediately loads. I stare in deep revulsion at the opening screen. Every load screen is worse than the last. Think of all the privacy failures, the AI, the unintuitive GUI, the fascism, the monopoly. Decide I'm going to fucking do it, I'm going to fucking make this a devoted Linux machine. I will run Scrivener on Wine.
Machine refuses to boot from USB.
Re-read to-do list.
You have to flash the fucking flash drive. I feel that this is offensive and an unnecessary extra step.
Downloaded Balena, which refused to flash anything. Looked up the error message. The solution was to not use Balena. The querent asking about my error message was snootily reprimanded about using "gimmicky packages" in one of the most Linuxy sentences ever recorded. Ventoy was suggested. Am sure that the developers of Balena would be confused to hear their program described as "gimmicky."
Linuxy user proved instantly right. Ventoy is fucking elegant. You can load multiple ISOs on a single flash drive. Cool as fuck!!! Guess who has a devoted ISO flashdrive now.
Tumblr media
The process of looking all of this up was a fucking nightmare. I used Edge because I wasn't intending on using Windows at all. Jesus fucking Christ! Some of the websites were borderline unusable. Pop-ups and embedded ads covered the text and the only reason I could follow the article at all was because I could suss out the width of the margins. There were ads everywhere, some in text mirroring the formatting of the article, and they broke up the margins and covered paragraphs. Half of the pop-ups were from Microsoft itself using my own fucking operating system and I must stress that they were advertisements.
On a list of advice about installing an operating system.
Oh my god. That just made me angrier.
Anyway. I have Linux Mint, Cinnamon edition, on a computer I have named "zip." Time to set up Scrivener!
btw the dogs are going to wake me up tomorrow at 5 am so this is going to be great
2 notes · View notes
stillnaomi · 9 months ago
Text
On the October 16, the Cyber Security Association of China officially issued an article exposing Intel’s practice of embedding hardware backdoors in its CPUs, purportedly to enable U.S. intelligence agencies to remotely monitor consumers.
The association has called for Intel to undergo a security review, which could significantly impact its operations in China—an essential market that accounts for a quarter of Intel’s global sales. This scrutiny could make Intel lose $12.5 billion annually.
5 notes · View notes
letsremotify · 1 year ago
Text
What Future Trends in Software Engineering Can Be Shaped by C++
The direction of innovation and advancement in the broad field of software engineering is greatly impacted by programming languages. C++ is a well-known programming language that is very efficient, versatile, and has excellent performance. In terms of the future, C++ will have a significant influence on software engineering, setting trends and encouraging innovation in a variety of fields. 
In this blog, we'll look at three key areas where the shift to a dynamic future could be led by C++ developers.
1. High-Performance Computing (HPC) & Parallel Processing
Driving Scalability with Multithreading
Within high-performance computing (HPC), where managing large datasets and executing intricate algorithms in real time are critical tasks, C++ is still an essential tool. The fact that C++ supports multithreading and parallelism is becoming more and more important as parallel processing-oriented designs, like multicore CPUs and GPUs, become more commonplace.
Multithreading with C++
At the core of C++ lies robust support for multithreading, empowering developers to harness the full potential of modern hardware architectures. C++ developers adept in crafting multithreaded applications can architect scalable systems capable of efficiently tackling computationally intensive tasks.
Tumblr media
C++ Empowering HPC Solutions
Developers may redefine efficiency and performance benchmarks in a variety of disciplines, from AI inference to financial modeling, by forging HPC solutions with C++ as their toolkit. Through the exploitation of C++'s low-level control and optimization tools, engineers are able to optimize hardware consumption and algorithmic efficiency while pushing the limits of processing capacity.
2. Embedded Systems & IoT
Real-Time Responsiveness Enabled
An ability to evaluate data and perform operations with low latency is required due to the widespread use of embedded systems, particularly in the quickly developing Internet of Things (IoT). With its special combination of system-level control, portability, and performance, C++ becomes the language of choice.
C++ for Embedded Development
C++ is well known for its near-to-hardware capabilities and effective memory management, which enable developers to create firmware and software that meet the demanding requirements of environments with limited resources and real-time responsiveness. C++ guarantees efficiency and dependability at all levels, whether powering autonomous cars or smart devices.
Securing IoT with C++
In the intricate web of IoT ecosystems, security is paramount. C++ emerges as a robust option, boasting strong type checking and emphasis on memory protection. By leveraging C++'s features, developers can fortify IoT devices against potential vulnerabilities, ensuring the integrity and safety of connected systems.
3. Gaming & VR Development
Pushing Immersive Experience Boundaries
In the dynamic domains of game development and virtual reality (VR), where performance and realism reign supreme, C++ remains the cornerstone. With its unparalleled speed and efficiency, C++ empowers developers to craft immersive worlds and captivating experiences that redefine the boundaries of reality.
Redefining VR Realities with C++
When it comes to virtual reality, where user immersion is crucial, C++ is essential for producing smooth experiences that take users to other worlds. The effectiveness of C++ is crucial for preserving high frame rates and preventing motion sickness, guaranteeing users a fluid and engaging VR experience across a range of applications.
Tumblr media
C++ in Gaming Engines
C++ is used by top game engines like Unreal Engine and Unity because of its speed and versatility, which lets programmers build visually amazing graphics and seamless gameplay. Game developers can achieve previously unattainable levels of inventiveness and produce gaming experiences that are unmatched by utilizing C++'s capabilities.
Conclusion
In conclusion, there is no denying C++'s ongoing significance as we go forward in the field of software engineering. C++ is the trend-setter and innovator in a variety of fields, including embedded devices, game development, and high-performance computing. C++ engineers emerge as the vanguards of technological growth, creating a world where possibilities are endless and invention has no boundaries because of its unmatched combination of performance, versatility, and control.
FAQs about Future Trends in Software Engineering Shaped by C++
How does C++ contribute to future trends in software engineering?
C++ remains foundational in software development, influencing trends like high-performance computing, game development, and system programming due to its efficiency and versatility.
Is C++ still relevant in modern software engineering practices?
Absolutely! C++ continues to be a cornerstone language, powering critical systems, frameworks, and applications across various industries, ensuring robustness and performance.
What advancements can we expect in C++ to shape future software engineering trends?
Future C++ developments may focus on enhancing parallel computing capabilities, improving interoperability with other languages, and optimizing for emerging hardware architectures, paving the way for cutting-edge software innovations.
10 notes · View notes
cyrohzin · 9 months ago
Text
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Last night I cracked open my original Xbox and took out a capacitor and re-pasted the CPU and GPU. Inspired (horrified) by this YouTube video about the clock capacitor. My clock capacitor was starting to leak but I think I caught it early enough.
I have a 1.1 version Xbox according to some online information. The HDD is IDE, that surprised me! It’s manufacture date is noted august 23, 2002!
Bonus picture of funny halo 2 profile save circa 2005, taken when I powered it back up post-op.
Edit: tumblr originally ate the link I had planned to be embedded, fixed that now!
6 notes · View notes
tootimetraveltimemachine · 5 months ago
Text
RK3576 with UFS Storage: In-depth Analysis of Performance Advantages and Read-Write Test Data
In embedded storage field, UFS (Universal Flash Storage) is gradually emerging. UFS is a type of flash memory. Similar to eMMC, it integrates a control chip, accesses a standard interface, and undergoes standard packaging on the basis of NAND storage chips, thus forming a highly integrated storage chip. Due to its compact characteristics, UFS is widely used in embedded devices such as mobile phones and tablets. Moreover, since UFS far outperforms eMMC in terms of performance, it is often used in high-end products.
Advantages of UFS
1. Faster response speed for multitasking
Devices using UFS2.0. LVDS (Low-Voltage Differential Signaling) has a dedicated serial interface, allowing read and write operations to be carried out simultaneously. The CQ (Command) queue dynamically allocates tasks without waiting for the previous process to end. It’s like a car getting on the highway, with multiple lanes allowing high-speed and smooth travel. In contrast, mobile phones using EMMC must perform read and write operations separately, and the instructions are also packaged. In terms of speed, EMMC is already at a disadvantage, and it is naturally slower when performing multitasking. It likes traveling on an common two-lane road with speed limits.
2. Low latency, UFS has a 3-times faster response speed
When reading large-scale games and large-volume files, UFS2.0 takes less time. The time required to load a game is one-third of that of EMMC5.0. Correspondingly, when experiencing games, mobile phones with UFS2.0 have lower latency and smoother pictures.
3. Shorter loading time for photo thumbnails in the album
Taking the mobile phone album as an example, many people’s mobile phones are filled with hundreds or even thousands of photos. When you open the photo thumbnails in the album, you can clearly see the loading process. This is caused by the fact that the mobile phone cannot keep up with the refresh speed when reading photos from the flash memory. On a mobile phone with a good screen, the pictures will load smoothly as you scroll, while on a less-capable mobile phone, you can clearly feel the lag during loading.
4. Faster speed and lower power consumption
After the UFS chip improves its speed, it means that it takes less time to complete the same task. Higher efficiency means lower power consumption. When working simultaneously, the power consumption of UFS is 10% lower than that of eMMC, and it can save approximately 35% of power consumption in daily work.
UFS interface read-write performance test
RK3576 CPU also provides a UFS2.0 interface and an emmc5.1 interface.
Tumblr media
FET3576-C SoM also reserves a UFS interface.
Tumblr media
Refer to Rockchip’s official document “Rockchip_Developer_Guide_UFS_CN_V1.3.0” to conduct read-write tests on the UFS flash memory of OK3576-C.
Sequential write testroot@ok3576-buildroot:/# fio -filename=/dev /sda -direct=1 -iodepth 32 -thread -rw=write -bs=1024k -size=1G -numjobs=8 -runtime=180 -group_reporting -name=seq_100write_1024k seq_100write_1024k: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=32 ... fio-3.34 Starting 8 threads note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 Jobs: 8 (f=8): [W(8)][96.0%][w=359MiB/s][w=359 IOPS][eta 00m:01s] seq_100write_1024k: (groupid=0, jobs=8): err= 0: pid=1296: Thu Jan 1 00:01:32 1970 write: IOPS=332, BW=333MiB/s (349MB/s)(8192MiB/24631msec); 0 zone resets clat (msec): min=2, max=103, avg=23.55, stdev= 9.15 lat (msec): min=2, max=104, avg=23.77, stdev= 9.15 clat percentiles (msec): | 1.00th=[ 12], 5.00th=[ 14], 10.00th=[ 15], 20.00th=[ 16], | 30.00th=[ 18], 40.00th=[ 20], 50.00th=[ 22], 60.00th=[ 25], | 70.00th=[ 27], 80.00th=[ 31], 90.00th=[ 36], 95.00th=[ 41], | 99.00th=[ 53], 99.50th=[ 59], 99.90th=[ 68], 99.95th=[ 73], | 99.99th=[ 105] bw ( KiB/s): min=206590, max=432470, per=100.00%, avg=342387.68, stdev=7157.63, samples=385 iops : min= 196, max= 421, avg=331.98, stdev= 7.14, samples=385 lat (msec) : 4=0.11%, 10=0.49%, 20=42.49%, 50=55.44%, 100=1.45% lat (msec) : 250=0.01% cpu : usr=1.12%, sys=1.83%, ctx=18228, majf=0, minf=0 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=0,8192,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=32 Run status group 0 (all jobs): WRITE: bw=333MiB/s (349MB/s), 333MiB/s-333MiB/s (349MB/s-349MB/s), io=8192MiB (8590MB), run=24631-24631msec Disk stats (read/write): sda: ios=165/65464, merge=0/0, ticks=178/1074993, in_queue=1075171, util=99.64%
The print information is as described above, from which it can be known that the speed of sequential writing is 349 MB/s.
Sequential read testroot@ok3576-buildroot:/#fio -filename=/dev/sda -direct=1 -iodepth 32 -thread -rw=read-bs=1024k -size=1G -numjobs=8 -runtime=180 -group_reporting -name=seq_100read_1024k seq_100read_1024k: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=32 ... fio-3.34 Starting 8 threads note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 note: both iodepth >= 1 and synchronous I/O engine are selected, queue depth will be capped at 1 Jobs: 8 (f=8): [R(8)][100.0%][r=756MiB/s][r=755 IOPS][eta 00m:00s] seq_100read_1024k: (groupid=0, jobs=8): err= 0: pid=1329: Thu Jan 1 00:08:54 1970 read: IOPS=754, BW=755MiB/s (791MB/s)(8192MiB/10857msec) clat (usec): min=2331, max=16444, avg=10573.01, stdev=646.85 lat (usec): min=2335, max=16447, avg=10575.10, stdev=646.84 clat percentiles (usec): | 1.00th=[ 9896], 5.00th=[10159], 10.00th=[10159], 20.00th=[10290], | 30.00th=[10290], 40.00th=[10421], 50.00th=[10421], 60.00th=[10421], | 70.00th=[ 10552], 80.00th=[ 10683], 90.00th=[ 10945], 95.00th=[ 12518], | 99.00th=[ 13042], 99.50th=[ 13173], 99.90th=[ 13960], 99.95th=[ 15139], | 99.99th=[16450] bw ( KiB/s): min=762938, max=786629, per=100.00%, avg=772720.14, stdev=979.45, samples=168 iops : min= 740, max= 767, avg=749.19, stdev= 1.02, samples=168 lat (msec) : 4=0.01%, 10=1.65%, 20=98.34% cpu : usr=0.37%, sys=3.81%, ctx=24750, majf=0, minf=2048 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=8192,0,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=32 Run status group 0 (all jobs): READ: bw=755MiB/s (791MB/s), 755MiB/s-755MiB/s (791MB/s-791MB/s), io=8192MiB (8590MB), run=10857-10857msec Disk stats (read/write): sda: ios=64132/0, merge=0/0, ticks=544319/0, in_queue=544320, util=99.26%
The print information is as described above, from which it can be known that the speed of sequential writing is 791 MB/s.
With the continuous development of embedded storage technology and the increasing richness of application scenarios, embedded storage has become indispensable in many fields such as smart homes, in-vehicle infotainment systems, and mobile devices. In the future, both eMMC and UFS will play irreplaceable roles in different application fields by virtue of their respective characteristics.
1 note · View note
z-powered-degree · 1 year ago
Text
Blog Info
Hey everyone, my friend on campus told me I might like looking at some stuff here? Um, don't expect me to be posting much, I'm mostly making this to get past the login wall some of you put up.
She/Her, however they/them is acceptable
Adult
I pretend to be my Alolan Vulpix over at @snowy-thesis sometimes
Ask Box Post if you have hit your ask limit: [x]
//Mail: [off]•Mystery Gift: [off]•Magic Anon: [off]•Union Circle: [off]
//[OOC Notes Below Cut]
[Icon: Photo of Lilium candidum at VanDusen Botanical Garden, Stan Shebs, CC BY-SA 3.0] [Header: "Embedding diagram" of a Schwarzschild wormhole, AllenMcC, CC BY-SA 3.0]
Hey, mod of @wishmaker-astra here with Lillie from Astra's canon. I will not be posting here much, but figured would make her a blog in case makes sense to do anything with her.
Same general rules as Astra apply here when it comes to what expectations and interactions will happen.
Will Not Interact:
Magic Anon
Fae deals/name stealing
Meta Horror
4th Wall Schenanigans
Very dark topics
• This includes post-apocalyptic stuff to be clear
Mental Alteration/Mind Control related subjects
• I WILL just ignore things, have characters behave utterly OOC, blanket refuse to interact with characters, and/or just suddenly drop interaction as if never happened if required for this
Other Notes:
I try to treat her experiencing rotomblr as *just a website* as much as possible. Granted, one with weird multiversal connection that she will assume is due to ultrahole shenanigans she doesn’t understand yet
Lose combination of games and anime setting, leaning more towards the games
Assumes sentient pokemon are rare, and mostly limited to:
• Ones with decent canon support (rotom inhabiting devices with a CPU, mewtwo, one off instances such as Meowth, latias, etc)
• Certain humanoid and/or psychic types raised in human society in a way that  “bootstraps” them during critical development periods (e.g. Gardevoir line treated as effectively human from birth)
She's trying to pretend she's not Lillie for privacy. BADLY. She will not acknowledge that she's Lillie outside of very specific circumstances you probably are not going to run into. You are free to see through it of course.
She's an adult lesbian, please block the tags "suggestive", "cw: boob joke", "cw: dick joke", "cw: sex joke", and "cw: sex mention" if you are not comfortable with those topics. Please let me know if you need something tagged.
4 notes · View notes
govindhtech · 1 year ago
Text
Genio 510: Redefining the Future of Smart Retail Experiences
Tumblr media
Genio IoT Platform by MediaTek
Genio 510
Manufacturers of consumer, business, and industrial devices can benefit from MediaTek Genio IoT Platform’s innovation, quicker market access, and more than a decade of longevity. A range of IoT chipsets called MediaTek Genio IoT is designed to enable and lead the way for innovative gadgets. to cooperation and support from conception to design and production, MediaTek guarantees success. MediaTek can pivot, scale, and adjust to needs thanks to their global network of reliable distributors and business partners.
Genio 510 features
Excellent work
Broad range of third-party modules and power-efficient, high-performing IoT SoCs
AI-driven sophisticated multimedia AI accelerators and cores that improve peripheral intelligent autonomous capabilities
Interaction
Sub-6GHz 5G technologies and Wi-Fi protocols for consumer, business, and industrial use
Both powerful and energy-efficient
Adaptable, quick interfaces
Global 5G modem supported by carriers
Superior assistance
From idea to design to manufacture, MediaTek works with clients, sharing experience and offering thorough documentation, in-depth training, and reliable developer tools.
Safety
IoT SoC with high security and intelligent modules to create goods
Several applications on one common platform
Developing industry, commercial, and enterprise IoT applications on a single platform that works with all SoCs can save development costs and accelerate time to market.
MediaTek Genio 510
Smart retail, industrial, factory automation, and many more Internet of things applications are powered by MediaTek’s Genio 510. Leading manufacturer of fabless semiconductors worldwide, MediaTek will be present at Embedded World 2024, which takes place in Nuremberg this week, along with a number of other firms. Their most recent IoT innovations are on display at the event, and They’ll be talking about how these MediaTek-powered products help a variety of market sectors.
They will be showcasing the recently released MediaTek Genio 510 SoC in one of their demos. The Genio 510 will offer high-efficiency solutions in AI performance, CPU and graphics, 4K display, rich input/output, and 5G and Wi-Fi 6 connection for popular IoT applications. With the Genio 510 and Genio 700 chips being pin-compatible, product developers may now better segment and diversify their designs for different markets without having to pay for a redesign.
Numerous applications, such as digital menus and table service displays, kiosks, smart home displays, point of sale (PoS) devices, and various advertising and public domain HMI applications, are best suited for the MediaTek Genio 510. Industrial HMI covers ruggedized tablets for smart agriculture, healthcare, EV charging infrastructure, factory automation, transportation, warehousing, and logistics. It also includes ruggedized tablets for commercial and industrial vehicles.
The fully integrated, extensive feature set of Genio 510 makes such diversity possible:
Support for two displays, such as an FHD and 4K display
Modern visual quality support for two cameras built on MediaTek’s tried-and-true technologies
For a wide range of computer vision applications, such as facial recognition, object/people identification, collision warning, driver monitoring, gesture and posture detection, and image segmentation, a powerful multi-core AI processor with a dedicated visual processing engine
Rich input/output for peripherals, such as network connectivity, manufacturing equipment, scanners, card readers, and sensors
4K encoding engine (camera recording) and 4K video decoding (multimedia playback for advertising)
Exceptionally power-efficient 6nm SoC
Ready for MediaTek NeuroPilot AI SDK and multitasking OS (time to market accelerated by familiar development environment)
Support for fanless design and industrial grade temperature operation (-40 to 105C)
10-year supply guarantee (one-stop shop supported by a top semiconductor manufacturer in the world)
To what extent does it surpass the alternatives?
The Genio 510 uses more than 50% less power and provides over 250% more CPU performance than the direct alternative!
The MediaTek Genio 510 is an effective IoT platform designed for Edge AI, interactive retail, smart homes, industrial, and commercial uses. It offers multitasking OS, sophisticated multimedia, extremely rapid edge processing, and more. intended for goods that work well with off-grid power systems and fanless enclosure designs.
EVK MediaTek Genio 510
The highly competent Genio 510 (MT8370) edge-AI IoT platform for smart homes, interactive retail, industrial, and commercial applications comes with an evaluation kit called the MediaTek Genio 510 EVK. It offers many multitasking operating systems, a variety of networking choices, very responsive edge processing, and sophisticated multimedia capabilities.
SoC: MediaTek Genio 510
This Edge AI platform, which was created utilising an incredibly efficient 6nm technology, combines an integrated APU (AI processor), DSP, Arm Mali-G57 MC2 GPU, and six cores (2×2.2 GHz Arm Cortex-A78& 4×2.0 GHz Arm Cortex-A55) into a single chip. Video recorded with attached cameras can be converted at up to Full HD resolution while using the least amount of space possible thanks to a HEVC encoding acceleration engine.
FAQS
What is the MediaTek Genio 510?
A chipset intended for a broad spectrum of Internet of Things (IoT) applications is the Genio 510.
What kind of IoT applications is the Genio 510 suited for?
Because of its adaptability, the Genio 510 may be utilised in a wide range of applications, including smart homes, healthcare, transportation, and agriculture, as well as industrial automation (rugged tablets, manufacturing machinery, and point-of-sale systems).
What are the benefits of using the Genio 510?
Rich input/output choices, powerful CPU and graphics processing, compatibility for 4K screens, high-efficiency AI performance, and networking capabilities like 5G and Wi-Fi 6 are all included with the Genio 510.
Read more on Govindhtech.com
2 notes · View notes
this-week-in-rust · 2 years ago
Text
This Week in Rust 492
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @ThisWeekInRust on Twitter or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub. If you find any errors in this week's issue, please submit a PR.
Updates from Rust Community
Official
Announcing Rust 1.69.0 | Rust Blog
Project/Tooling Updates
rust-analyzer changelog #178
regex 1.8.0 release notes
Fornjot (code-first CAD in Rust) - Weekly Release - Where We've Been, Where We're Going
pavex, a new Rust web framework - Progress report #3
r3bl_tui v0.3.3 TUI engine released
Autometrics 0.4: Spot commits that introduce errors or slow down your application
Rust Search Extension v1.11.0 has been released
[video] Rust Releases! Rust 1.69.0
Observations/Thoughts
Is Rust a worthy contender for web development?
Bringing runtime checks to compile time in Rust
Can the Rust type system prevent deadlocks?
Why is Rust programming language so popular?
[video] Embeddable Rust
Rust Walkthroughs
Guide to Rust procedural macros
Rust + Embedded: A Development Power Duo
A blog article and project demonstrating GitHub actions in Rust
Foresterre's place | Using the todo! macro to prototype your API in Rust
Generics and Const Generics in Rust
Writing an NES emulator: Part 1 - The 6502 CPU
Integrating the Rust Axum Framework with Cloudflare Workers
ESP32 Embedded Rust at the HAL: GPIO Button Controlled Blinking
GBA From Scratch: A Basic Executable
[video] A Practical Introduction to Declarative Macros in Rust
Miscellaneous
Bringing Memory Safety to sudo and su
Console #154 - An Interview with Giuliano of Sniffnet - Rust app to easily monitor network traffic
[DE] Programmiersprache: Rust Foundation überarbeitet Trademark-Entwurf
Crate of the Week
This week's crate is system-deps, a crate that will compile your pkg-config-based dependencies for you.
Thanks to Aleksey Kladov for the suggestion!
Please submit your suggestions and votes for next week!
Call for Participation
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
Hyperswitch - add upsert endpoint to cards_info table
Hyperswitch - add a route that will invalidate cache
Hyperswitch - Implement ApiKeyInterface for MockDb
Hyperswitch - Implement ConfigInterface for MockDb
velo - Add ability to switch canvas background - Issue #22 - StaffEngineer/velo - GitHub 3
velo - Hex color widget - Issue #58 - StaffEngineer/velo - GitHub 1
ockam - Update CLI documentation for secure-channel-listener commands 1
ockam - Update CLI documentation for identity commands
ockam - Refactor auto-reconnect replacer 1
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from the Rust Project
411 pull requests were merged in the last week
add support for the x86_64h-apple-darwin target
support AIX-style archive type
assume value ranges in transmute
rustc_metadata: Remove Span from ModChild
add suggestion to use closure argument instead of a capture on borrowck error
deduplicate unreachable blocks, for real this time
delay a good path bug on drop for TypeErrCtxt (instead of a regular delayed bug)
ensure mir_drops_elaborated_and_const_checked when requiring codegen
fix ICE for transmutability in candidate assembly
fix lint regression in non_upper_case_globals
fix printing native CPU on cross-compiled compiler
make impl Debug for Span not panic on not having session globals
make non_upper_case_globals lint not report trait impls
make sysroot finding compatible with multiarch systems
missing blanket impl trait not public
normalize types and consts in MIR opts
panic instead of truncating if the incremental on-disk cache is too big
report allocation errors as panics
report more detailed reason why Index impl is not satisfied
set commit information environment variables when building tools
substitute missing trait items suggestion correctly
suggest using integration tests for test crate using own proc-macro
track if EvalCtxt has been tainted, make sure it can't be used to make query responses after
miri: add minimum alignment support for loongarch64
miri: disable preemption in tokio tests again
miri: remove a test that wasn't carrying its weight
don't transmute &List<GenericArg> <-> &List<Ty>
enable flatten-format-args by default
rm const traits in libcore
remove the size of locals heuristic in MIR inlining
don't allocate on SimplifyCfg/Locals/Const on every MIR pass
allow to feed a value in another query's cache and remove WithOptConstParam
implement StableHasher::write_u128 via write_u64
in LexicalResolver, don't construct graph unless necessary
turn on ConstDebugInfo pass
run various queries from other queries instead of explicitly in phases
add intrinsics::transmute_unchecked
add offset_of! macro (RFC #3308)
limit read size in File::read_to_end loop
specialize some io::Read and io::Write methods for VecDeque<u8> and &[u8]
implement Neg for signed non-zero integers
hashbrown: change key to return &K rather than &Q
hashbrown: relax the trait bounds of HashSet::raw_table{,_mut}
regex: fix prefix literal matching bug
portable-simd: lane → element for core::simd::Simd
portable-simd: implement dynamic byte-swizzle prototype
cargo: add the Win32_System_Console feature since it is used
cargo: allow named debuginfo options in Cargo.toml
cargo: better error message when getting an empty dep table
cargo: fix: allow win/mac credential managers to build on all platforms
cargo: improve error message for empty dep
clippy: arithmetic_side_effects cache symbols
clippy: arithmetic_side_effects detect integer methods that can introduce side effects
clippy: add items_after_test_module lint
clippy: add size-parameter to unecessary_box_returns
clippy: bugfix: ignore impl Trait(s) @ let_underscore_untyped
clippy: check for .. pattern in redundant_pattern_matching
clippy: don't suggest suboptimal_flops unavailable in nostd
clippy: fix #[allow(clippy::enum_variant_names)] directly on variants
clippy: fix false positive in allow_attributes
clippy: ignore manual_slice_size_calculation in code from macro expansions
clippy: ignore shadow warns in code from macro expansions
clippy: make len_zero lint not spanning over parenthesis
clippy: new lint: detect if expressions with simple boolean assignments to the same target
clippy: suppress the triggering of some lints in derived structures
rust-analyzer: add #[doc(alias(..))]-based field and function completions
rust-analyzer: don't wavy-underline the whole for loop
rust-analyzer: editor.parameterHints.enabled not always being respected
rust-analyzer: deduplicate passed workspaces by top level cargo workspace they belong to
rust-analyzer: fix need-mut large span in closures and a false positive
rust-analyzer: fix panic in const eval and parameter destructing
rust-analyzer: fix pat fragment handling in 2021 edition
rust-analyzer: mbe: fix token conversion for doc comments
rust-analyzer: remove extra argument "rustc"
rust-analyzer: report remaining macro errors in assoc item collection
rust-analyzer: resolve $crate in derive paths
rust-analyzer: register obligations during path inference
rust-analyzer: simple fix for make::impl_trait
rust-analyzer: specify --pre-release when publishing vsce nightly
Rust Compiler Performance Triage
A week mostly dominated by noise, in particular a persistent bimodality in keccak and cranelift-codegen. No significant changes outside of that, a relatively equal mix of regressions and improvements. Most of the bimodality has been removed in the full report as it's just noise.
Triage done by @simulacrum. Revision range: 74864fa..fdeef3e
3 Regressions, 6 Improvements, 5 Mixed; 1 of them in rollups 60 artifact comparisons made in total
Full report here
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
RFC: result_ffi_guarantees
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
RFCs
Add RFC on governance, establishing the Leadership Council
Tracking Issues & PRs
[disposition: merge] Use fulfillment to check Drop impl compatibility
[disposition: merge] Only check outlives goals on impl compared to trait
[disposition: merge] rustdoc: restructure type search engine to pick-and-use IDs
[disposition: merge] Stabilize raw-dylib, link_ordinal, import_name_type and -Cdlltool
[disposition: merge] Add deployment-target --print flag for Apple targets
New and Updated RFCs
[new] RFC: Rustdoc configuration via Cargo (includes feature descriptions)
[new] RFC: Partial Types
Call for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:
No RFCs issued a call for testing this week.
If you are a feature implementer and would like your RFC to appear on the above list, add the new call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
Upcoming Events
Rusty Events between 2023-04-26 - 2023-05-24 🦀
Virtual
2023-04-26 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
Rust-friendly websites and web apps
2023-04-27 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
Testing Tock, how unit tests in Rust improve and teach
2023-04-27 | Copenhagen, DK | Copenhagen Rust Community
Rust meetup #35 at Google Cloud
2023-04-29 | Virtual (Nürnberg, DE) | Rust Nuremberg
Deep Dive Session 3: Protohackers Exercises Mob Coding (as far as we get)
2023-05-02 | Virtual (Buffalo, NY, US) | Buffalo Rust Meetup
Buffalo Rust User Group, First Tuesdays
2023-05-03 | Virtual (Indianapolis, IN, US) | Indy Rust
Indy.rs - with Social Distancing
2023-05-09 | Virtual (Dallas, TX, US) | Dallas Rust
Second Tuesday
2023-05-11 | Virtual (Nürnberg, DE) | Rust Nuremberg
Rust Nürnberg online
2023-05-13 | Virtual | Rust GameDev
Rust GameDev Monthly Meetup
2023-05-16 | Virtual (Washington, DC, US) | Rust DC
Mid-month Rustful
2023-05-17 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
Rust Atomics and Locks Book Club Chapter 2
2023-05-17 | Virtual (Vancouver, BC, CA) | Vancouver Rust
Rust Study/Hack/Hang-out
Asia
2023-05-06 | Kyoto, JP | Kansai Rust
Rust Talk: Vec, arrays, and slices
Europe
2023-04-26 | London, UK | Rust London User Group
Rust Hack & Learn April 2023
2023-04-27 | Bordeaux, FR | DedoTalk
#2 DedoTalk 🎙️ : Comment tester son code Rust?
2023-04-27 | Vienna, AT | Rust Vienna
Rust Vienna - April - Hosted by Sentry
2023-05-02 | Amsterdam, NL | Rust Developers Amsterdam Group
Fiberplane Rust Workshop
2023-05-10 | Amsterdam, NL | RustNL
RustNL 2023
2023-05-19 | Stuttgart, DE | Rust Community Stuttgart
OnSite Meeting
North America
2023-04-29 | Durham, NC, US | Triangle Rust
Rust Social / Coffee Chat at Boxyard RTP
2023-05-03 | Austin, TX, US | Rust ATX
Rust Lunch
2023-05-11 | Lehi, UT, US | Utah Rust
Upcoming Event
2023-05-16 | San Francisco, CA, US | San Francisco Rust Study Group
Rust Hacking in Person
Oceania
2023-04-27 | Brisbane, QLD, AU | Rust Brisbane
April Meetup
2023-05-03 | Christchurch, NZ | Christchurch Rust Meetup Group
Christchurch Rust meetup meeting
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
That said, I really like the language. It’s as if someone set out to design a programming language, and just picked all the right answers. Great ecosystem, flawless cross platform, built-in build tools, no “magic”, static binaries, performance-focused, built-in concurrency checks. Maybe these “correct” choices are just laser-targeted at my soul, but in my experience, once you leap over the initial hurdles, it all just works™️, without much fanfare.
– John Austin on his blog
Thanks to Ivan Tham for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.
Email list hosting is sponsored by The Rust Foundation
Discuss on r/rust
1 note · View note
16naughts · 4 months ago
Text
Dev Log Mar 14 2025 - What's Taking so Long?
The Steam Deck version of Crescent Roll is moving along. The full game is playable, most of the audio issues have been resolved, but there's still the very slight teeny-tiny issue of WebKit being abysmally slow and we're sitting at only 10% CPU usage and 20FPS. Joy. We can fix it though. Without having to switch Web Browsers. I explained a bit before that the two options available for Web embedding are either Chromium/Chrome or WebKit/Safari, depending on your platform. Windows, Android and Xbox all have Chromium natively for you to use, Mac, IPhone, PlayStation, and Nintendo have WebKit, and then Linux and therefor Steam Deck don't have a standard one installed. We went with WebKit for Steam Deck because it's 200MB instead of 1.5GB and we have to bundle it with our game. When I said we can fix it, it's not that the actual game part of Crescent Roll isn't optimized - we actually did a pretty good job with all of the movement on-screen every frame - but there's some very specific things large surrounding it that we know are hurting performance considerably. Here a visualization of the call stack of a random average frame on the Main Menu from the Chrome profiling tools from my 10-year old i7-4770k machine:
Tumblr media
The grey "Task" bar is the full length of the execution. The brown-yellow underneath are what run during the actual "Animation Frame" portion, then the Blue sections are Crescent Roll code, and Green is Phaser rendering code. So in this frame, it took 4.16ms for the full frame, of which, Crescent Roll used about 1.8ms to do its stuff, then Phaser took 1.5ms to do the render, and the remaining ~0.8ms was system stuff like GC and doing memory transfers to the GPU. 60Hz refresh rate would mean that you need to render in under 16 ms, so about 4ms for Windows Desktop means that I could theoretically get somewhere around 240fps if I let it run free. Which I mean, is pretty respectable. Why doesn't it run well on the deck? Technically, it's running okay, just not displaying okay. The internal game logic does all physics and animation calculations with lag compensation in mind. So whether you're getting 500 fps or 5, the in-game logic always calculates 60Hz. So sorry - no cheesing stage times with slow-mo. One reason the display is having issues is that it's single threaded. Which means we're not doing _anything_ in parallel. All of the game logic, graphics rendering, controller polling, etc. are all being done every frame in order every single time. The kicker is that we actually built the game to be able to do those things in parallel, but Javascript just doesn't have the concept of Threads for you to be able to just run whatever you want however you want. You have to implement Web Workers, which is essentially a completely separate program that you can't share memory with, forcing you to use a message bus, making life difficult. But not impossible, and that's all that really matters. Just splitting it in 2 would already get us a 25% improvement, and we could very likely do better than that. The other, slightly more major performance sink is that green bar for the Phaser rendering - that can be entirely eliminated at this point to cut the time in half. We've been replacing it piece-by-piece with our own code, and now, we're really just leaning on it for WebGL pushes at this point. Unfortunately, since it's an engine, there's quite a bit of extra baggage that it likes to do that we can't just turn off, so we're essentially running a lot of the same types of graphics calculations twice. Phaser is a perfectly good engine - don't get me wrong, but it's just superfluous for our use at this point, specifically for us.
So yeah - it's going to take another week or so to get that 100% sorted out. There's a patch incoming Monday for full Controller support and couple of minor improvements. In the meantime, you can swap to the beta branch on Steam if you absolutely must try the Steam Deck version now. No complaints about the speed though - I warned you.
2 notes · View notes