Channel: Log: Games Performance Optimization
Harness Apple GPUs with Metal
Create visually stunning, high-performance apps and games when you combine the power of Apple GPUs with Metal, the modern foundation for GPU-accelerated graphics on Apple platforms. Discover the architecture and capabilities of the Apple GPU and how Metal harnesses its tile-based deferred rendering (TBDR) architecture to achieve measurable performance gains in apps and games. In this session, we'll discuss the efficiency of Apple GPUs and show how TBDR applies to an array of modern rendering techniques. You should come to the session with a basic knowledge of Metal and graphics rendering. For a great introduction, check out “Modern Rendering with Metal” to orient yourself.
https://developer.apple.com/videos/play/wwdc2020/10602/
#rendering #metal #info
Create visually stunning, high-performance apps and games when you combine the power of Apple GPUs with Metal, the modern foundation for GPU-accelerated graphics on Apple platforms. Discover the architecture and capabilities of the Apple GPU and how Metal harnesses its tile-based deferred rendering (TBDR) architecture to achieve measurable performance gains in apps and games. In this session, we'll discuss the efficiency of Apple GPUs and show how TBDR applies to an array of modern rendering techniques. You should come to the session with a basic knowledge of Metal and graphics rendering. For a great introduction, check out “Modern Rendering with Metal” to orient yourself.
https://developer.apple.com/videos/play/wwdc2020/10602/
#rendering #metal #info
Apple Developer
Harness Apple GPUs with Metal - WWDC20 - Videos - Apple Developer
Create visually stunning, high-performance apps and games when you combine the power of Apple GPUs with Metal, the modern foundation for...
Performance Engineering of Software Systems
6.172 is an 18-unit class that provides a hands-on, project-based introduction to building scalable and high-performance software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, caching optimizations, parallel programming, and building scalable systems. The course programming language is C.
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-172-performance-engineering-of-software-systems-fall-2018/
https://www.youtube.com/playlist?list=PLUl4u3cNGP63VIBQVWguXxZZi0566y7Wf
#optimizing #course
6.172 is an 18-unit class that provides a hands-on, project-based introduction to building scalable and high-performance software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, caching optimizations, parallel programming, and building scalable systems. The course programming language is C.
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-172-performance-engineering-of-software-systems-fall-2018/
https://www.youtube.com/playlist?list=PLUl4u3cNGP63VIBQVWguXxZZi0566y7Wf
#optimizing #course
MIT OpenCourseWare
Performance Engineering of Software Systems | Electrical Engineering and Computer Science | MIT OpenCourseWare
6.172 is an 18-unit class that provides a hands-on, project-based introduction to building scalable and high-performance software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, caching…
GPU Optimization for GameDev
Here is an awesome list of gpu optimization related content.
https://gist.github.com/silvesthu/505cf0cbf284bb4b971f6834b8fec93d
Here is an awesome list of gpu optimization related content.
https://gist.github.com/silvesthu/505cf0cbf284bb4b971f6834b8fec93d
Gist
GPU Optimization for GameDev
GPU Optimization for GameDev. GitHub Gist: instantly share code, notes, and snippets.
Optimizing C and C++ Code
Embedded software often runs on processors with limited computation power, thus optimizing the code becomes a necessity. In this article we will explore the following optimization techniques for C and C++ code developed for Real-time and Embedded Systems.
https://www.eventhelix.com/RealtimeMantra/Basics/OptimizingCAndCPPCode.htm
#optimizing
Embedded software often runs on processors with limited computation power, thus optimizing the code becomes a necessity. In this article we will explore the following optimization techniques for C and C++ code developed for Real-time and Embedded Systems.
https://www.eventhelix.com/RealtimeMantra/Basics/OptimizingCAndCPPCode.htm
#optimizing
Eventhelix
Optimizing C and C++ Code
In this article we will explore optimization techniques for C and C++ code developed for Realtime Systems.
CppCon 2014: Mike Acton "Data-Oriented Design and C++”
The transformation of data is the only purpose of any program. Common approaches in C++ which are antithetical to this goal will be presented in the context of a performance-critical domain (console game development). Additionally, limitations inherent in any C++ compiler and how that affects the practical use of the language when transforming that data will be demonstrated.
https://www.youtube.com/watch?v=rX0ItVEVjHc
The transformation of data is the only purpose of any program. Common approaches in C++ which are antithetical to this goal will be presented in the context of a performance-critical domain (console game development). Additionally, limitations inherent in any C++ compiler and how that affects the practical use of the language when transforming that data will be demonstrated.
https://www.youtube.com/watch?v=rX0ItVEVjHc
YouTube
CppCon 2014: Mike Acton "Data-Oriented Design and C++"
http://www.cppcon.org
--
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2014
--
The transformation of data is the only purpose of any program. Common approaches in C++ which are antithetical…
--
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2014
--
The transformation of data is the only purpose of any program. Common approaches in C++ which are antithetical…
World of Tanks Blitz: Automated performance testing for modern graphics needs
In this blog, read about performance testing with modern graphics. This is a guest blog entry from Pavel Busko.
https://community.arm.com/developer/tools-software/graphics/b/blog/posts/world-of-tank-blitz
#profiling #ci
In this blog, read about performance testing with modern graphics. This is a guest blog entry from Pavel Busko.
https://community.arm.com/developer/tools-software/graphics/b/blog/posts/world-of-tank-blitz
#profiling #ci
Optimize Your Mobile Game Performance
Poor performance not only causes unexpected delays in your game, but also hardware problems such as reduced battery life, thermal control issues, and limitations on how many devices you can reach.
In one of our most comprehensive guides ever, we’ve collected over 75 actionable tips and advice from Unity’s expert team of support engineers on how you can optimize your mobile game to run smoothly on as many devices as possible while providing players with the best experience.
Created by our Success and Accelerate Solutions engineers, these in-depth tips gathered from real-life engagements with some of the top studios, will help you get the most out of Unity and boost your mobile game’s performance.
https://create.unity3d.com/optimize-mobile-game-eBook
#book #unity #mobile #optimizing
Poor performance not only causes unexpected delays in your game, but also hardware problems such as reduced battery life, thermal control issues, and limitations on how many devices you can reach.
In one of our most comprehensive guides ever, we’ve collected over 75 actionable tips and advice from Unity’s expert team of support engineers on how you can optimize your mobile game to run smoothly on as many devices as possible while providing players with the best experience.
Created by our Success and Accelerate Solutions engineers, these in-depth tips gathered from real-life engagements with some of the top studios, will help you get the most out of Unity and boost your mobile game’s performance.
https://create.unity3d.com/optimize-mobile-game-eBook
#book #unity #mobile #optimizing
Unity3D
Optimize Your Mobile Game Performance
Download this e-book to learn how to optimize your mobile game’s performance and boost your chances at success.
Arm® Mali™ GPU Best Practices Developer Guide
Revision: Version 2.2
This guide provides recommendations for efficient API usage on Mali GPUs.
https://developer.arm.com/documentation/101897/latest
#optimizing #BestPractices
Revision: Version 2.2
This guide provides recommendations for efficient API usage on Mali GPUs.
https://developer.arm.com/documentation/101897/latest
#optimizing #BestPractices
PowerVR Performance Recommendations Introduction
These recommendations are aimed at developers who wish to get the best possible graphics performance from their applications running on PowerVR hardware. The recommendations range from the fairly high-level to very low-level, and have varying amounts of performance gain.
https://docs.imgtec.com/Profiling_and_Optimisations/PerfRec/topics/c_PerfRec_introduction.html
#optimizing #BestPractices
These recommendations are aimed at developers who wish to get the best possible graphics performance from their applications running on PowerVR hardware. The recommendations range from the fairly high-level to very low-level, and have varying amounts of performance gain.
https://docs.imgtec.com/Profiling_and_Optimisations/PerfRec/topics/c_PerfRec_introduction.html
#optimizing #BestPractices
Imgtec
PowerVR Performance Recommendations Introduction
These recommendations are aimed at developers who wish to get the best possible graphics performance from their applications running on PowerVR hardware. The recommendations range from the fairly ...
Qualcomm® Adreno™ GPU Best Practices
This guide outlines the various technologies and subsystems provided by the Adreno GPU to support the graphics developer.
https://developer.qualcomm.com/sites/default/files/docs/adreno-gpu/developer-guide/gpu/best_practices.html#gpu-best-practices
#optimizing #BestPractices
This guide outlines the various technologies and subsystems provided by the Adreno GPU to support the graphics developer.
https://developer.qualcomm.com/sites/default/files/docs/adreno-gpu/developer-guide/gpu/best_practices.html#gpu-best-practices
#optimizing #BestPractices
Speeding up Blender .obj export
A short story how a float formatting curiosity led to accidentally speeding up Blender's obj exporter.
https://aras-p.info/blog/2022/02/03/Speeding-up-Blender-.obj-export/
A short story how a float formatting curiosity led to accidentally speeding up Blender's obj exporter.
https://aras-p.info/blog/2022/02/03/Speeding-up-Blender-.obj-export/
ShaderVariantTool for Unity
This tool lists out all shader keywords and variant counts that are being included in player build.
i.e. If a shader keyword is being stripped, you won't see the keyword on the list.
https://github.com/cinight/SimpleTools/tree/master/Assets/Editor/ShaderVariantTool
#unity #shaders
This tool lists out all shader keywords and variant counts that are being included in player build.
i.e. If a shader keyword is being stripped, you won't see the keyword on the list.
https://github.com/cinight/SimpleTools/tree/master/Assets/Editor/ShaderVariantTool
#unity #shaders
GitHub
SimpleTools/Assets/Editor/ShaderVariantTool at master · cinight/SimpleTools
Contribute to cinight/SimpleTools development by creating an account on GitHub.
Optimize for Android (Go edition)
The Android operating system brings the power of computing to everyone. This vision applies to all users, including those on entry-level phones that face real constraints across data, storage, memory, and more.
This was especially important for us to get right because, when we first announced Android (Go edition) back in 2017, people using low-end phones accounted for 57% of all device shipments globally.
Part 1
Part 2
Part 3
#optimizing #BestPractices #android
The Android operating system brings the power of computing to everyone. This vision applies to all users, including those on entry-level phones that face real constraints across data, storage, memory, and more.
This was especially important for us to get right because, when we first announced Android (Go edition) back in 2017, people using low-end phones accounted for 57% of all device shipments globally.
Part 1
Part 2
Part 3
#optimizing #BestPractices #android
Media is too big
VIEW IN TELEGRAM
Arm Mobile Studio: Graphics optimization case studies
This talk will use step-by-step case studies from real-world examples to show how developers can use our profiling tools to improve the performance of their Android games. For each case study this talk will introduce the key graphics concepts, before showing how to use the Mobile Studio profiling tools to measure the on-device performance and identify bottlenecks. For each problem identified, the talk will then explain the rendering API best practice and use it to make changes to improve the performance of each sample. We will then use the tools to confirm the impact of applied optimizations.
#optimizing #android
This talk will use step-by-step case studies from real-world examples to show how developers can use our profiling tools to improve the performance of their Android games. For each case study this talk will introduce the key graphics concepts, before showing how to use the Mobile Studio profiling tools to measure the on-device performance and identify bottlenecks. For each problem identified, the talk will then explain the rendering API best practice and use it to make changes to improve the performance of each sample. We will then use the tools to confirm the impact of applied optimizations.
#optimizing #android
Introducing Pixel Local Storage: an extension ahead of its time
Back in 2014 . Since then, many things have happened that have transformed mobile Graphics, particularly the release of the first Vulkan version in February 2016. Built from the ground up, Vulkan was intended to replace OpenGL as the main Graphics API, after OpenGL had successfully served the industry for more than 20 years. The new Graphics API was expected to provide a set of benefits across multiple platforms that the graphics community recognizes and values today.
As expected, the transition from OpenGL to Vulkan is taking several years. Although today the default API in the main game engines is Vulkan, all of them still support OpenGL ES 3.x for Android. OpenGL ES 3.1 brought compute to mobile graphics, and OpenGL ES 3.2 added the Android Extension Pack, bringing the mobile API's functionality significantly closer to its desktop counterpart – OpenGL. OpenGL ES 3.2 is supported in Android 6.0 and higher if the device itself supports this graphics pipeline, which is reflected in the high use of OpenGL ES by game developers.
Part 1 in this blog series explores the PLS extension from today’s perspective, but also from when it was launched. We highlight the main benefits it introduced, so developers can make the most of it when coding their games using OpenGL ES. Some representative examples are described and links to relevant publications and presentations are provided.
https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/introducing-pixel-local-storage
#graphics #mobile
Back in 2014 . Since then, many things have happened that have transformed mobile Graphics, particularly the release of the first Vulkan version in February 2016. Built from the ground up, Vulkan was intended to replace OpenGL as the main Graphics API, after OpenGL had successfully served the industry for more than 20 years. The new Graphics API was expected to provide a set of benefits across multiple platforms that the graphics community recognizes and values today.
As expected, the transition from OpenGL to Vulkan is taking several years. Although today the default API in the main game engines is Vulkan, all of them still support OpenGL ES 3.x for Android. OpenGL ES 3.1 brought compute to mobile graphics, and OpenGL ES 3.2 added the Android Extension Pack, bringing the mobile API's functionality significantly closer to its desktop counterpart – OpenGL. OpenGL ES 3.2 is supported in Android 6.0 and higher if the device itself supports this graphics pipeline, which is reflected in the high use of OpenGL ES by game developers.
Part 1 in this blog series explores the PLS extension from today’s perspective, but also from when it was launched. We highlight the main benefits it introduced, so developers can make the most of it when coding their games using OpenGL ES. Some representative examples are described and links to relevant publications and presentations are provided.
https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/introducing-pixel-local-storage
#graphics #mobile
Arm
Introducing Pixel Local Storage
Learn more about Pixel Local Storage (PLS), with this blog highlighting the main benefits for developers when they are coding their games using OpenGL ES.
Vulkanised 2023: Getting started on mobile and best practices for Arm GPUs
This talk was originally presented at Vulkanised 2023 (Feb 7-9, Munich Germany) and was recorded afterwards due to some technical issues with the original live recording.
Vulkanised is organised by the Khronos Group and is the largest event dedicated to 3D developers using the Vulkan API. The event provides a unique opportunity to bring the Vulkan developer community together to exchange ideas, solve problems and help steer the future development of the Vulkan API and ecosystem..
https://www.youtube.com/watch?v=BD1zXW7Uz8Q
#vulkan #BestPractices #android
This talk was originally presented at Vulkanised 2023 (Feb 7-9, Munich Germany) and was recorded afterwards due to some technical issues with the original live recording.
Vulkanised is organised by the Khronos Group and is the largest event dedicated to 3D developers using the Vulkan API. The event provides a unique opportunity to bring the Vulkan developer community together to exchange ideas, solve problems and help steer the future development of the Vulkan API and ecosystem..
https://www.youtube.com/watch?v=BD1zXW7Uz8Q
#vulkan #BestPractices #android
YouTube
Vulkanised 2023: Getting started on mobile and best practices for Arm GPUs
In this video, originally presented at Vulkanised 2023, get an introduction to a modern mobile system-on-chip (SoC), and the hardware building blocks of the Arm GPU family. Find out some of the key best practices for efficient rendering on Arm GPUs, including…
Practical Optimizations
So with all the talk about optimization happening on Twitter, some people who saw me give this talk at a private conference asked for me to do a public version.
https://www.youtube.com/watch?v=NAVbI1HIzCE
#optimizing
So with all the talk about optimization happening on Twitter, some people who saw me give this talk at a private conference asked for me to do a public version.
https://www.youtube.com/watch?v=NAVbI1HIzCE
#optimizing
YouTube
Practical Optimizations
So with all the talk about optimization happening on Twitter, some people who saw me give this talk at a private conference asked for me to do a public version.
If you want to play with the code yourself, a more complete version of the monster example is…
If you want to play with the code yourself, a more complete version of the monster example is…
Branching on a GPU
If you consult the internet about writing a branch of a GPU, you might think they open the gates of hell and let demons in. They will say you should avoid them at all costs, and that you can avoid them by using the ternary operator or step() and other silly math tricks. Most of this advice is outdated at best, or just plain wrong.
Let’s correct that.
https://medium.com/@jasonbooth_86226/branching-on-a-gpu-18bfc83694f2
#shaders
If you consult the internet about writing a branch of a GPU, you might think they open the gates of hell and let demons in. They will say you should avoid them at all costs, and that you can avoid them by using the ternary operator or step() and other silly math tricks. Most of this advice is outdated at best, or just plain wrong.
Let’s correct that.
https://medium.com/@jasonbooth_86226/branching-on-a-gpu-18bfc83694f2
#shaders
Medium
Branching on a GPU
If you consult the internet about writing a branch of a GPU, you might think they open the gates of hell and let demons in. They will say…
Media is too big
VIEW IN TELEGRAM
ASTC texture compression for developers
ASTC is an advanced texture compression format which has now reached ubiquity in the mobile graphics ecosystem. This session with discuss how to use the ASTC effectively, and highlight the optimization work Arm has been doing to significantly improve compression performance and usability of our "astcenc" texture compressor.
#TextureCompression #ASTC
ASTC is an advanced texture compression format which has now reached ubiquity in the mobile graphics ecosystem. This session with discuss how to use the ASTC effectively, and highlight the optimization work Arm has been doing to significantly improve compression performance and usability of our "astcenc" texture compressor.
#TextureCompression #ASTC
HTML Embed Code: