Comments (5)
I work on Nintendo Switch emulation and we're going to embark on GPU emulation soon enough which will be fairly challenging as we're going to run up against a lot of performance limitations for mobile GPUs. In a lot of ways it showcases that mobile devices can deliver some extremely impressive visuals in real-world scenarios given them being utilized correctly and doing that isn't easy. Especially with an API like Vulkan which gives you a lot of control over the GPU but at the same time, if you don't know where you're losing performance it's a futile endeavor.
AGI gives us access to some very crucial performance counters on the GPU (which is a major difference from GAPID as it mainly just gave you an overview of the rendering pipeline rather than actual performance statistics) which allow us to know what exactly might be slow, this is obviously useful in emulation as we know what features to avoid using and allows us to emulate guest features in the most efficient way possible as there's a good bit of quirks in modern GPUs where doing certain rather arbitrary things might lead to degraded performance due to the internal implementation of said features.
I should mention that more than us, it's the game developers who're going to benefit a lot from this as they have full control over their rendering stack and can tune it to work extremely well on mobile. AGI allows them to catch a lot of performance they're losing, a few examples being: not designing their rendering pipelines around the TBRs found in mobile GPUs, a lot of texture cache misses due to unoptimal fetch patterns (where they might be able to optimize data locality by packing in values as components in a texture), drawing past the guard band leading to a lot of primitive clipping, a lot of overdraw for fragments, unoptimal buffer configurations where SSBOs might be used rather than UBOs or even push constants.
All of these aren't just theoretical either but have some very real performance implications and it is imperative to the end that a tool such as AGI exists. Once AGI support is widespread, if an OEM doesn't support it then I'd imagine a good chunk of developers would not buy from them and applications will just not be optimized for their devices. It's in their best interests alongside the developers to offer the end users the best experience possible and AGI is an essential tool in that.
from agi.
Thanks for the rationale! Don't want to leave you hanging: we've reached out to Realme and made some good progress. Will provide an update once the plan is solidified.
from agi.
Thanks for the request, Mark! Could you tell us a little more about your intended use of AGI? This sort of information would help make the case for OEMs to add support.
from agi.
I second this, and there a plan to support more devices from different vendor (Samsung, Xiaomi, One plus etc.)? Cause they also use the Qualcomm SoC.
Also, I think that these GPU counters from vendors may help us a lot in tweaking GPU rendering performance, which cannot be done by using GAPID.
from agi.
Hi all, closing this stale issue.
Support for GPU profiling features require implementation from the device itself, not from additional code in AGI. Moving forward, devices should support GPU profiling features if they have the memory bandwidth to do so, and we've added tests to reduce regressions in subsequent Android releases.
from agi.
Related Issues (20)
- couldn't connect to my android
- Failed to validate the trace on Samsung Galaxy S22 Ultra
- Nothing phone (1) fails validation
- The application I want to capture is not in the list
- Does Frame profile only support Adreno Devie?
- AGI doesnt support OnePlus 2 Nord 5G HOT 1
- Any hope of supporting VR devices like the Quest? HOT 2
- No device connected that supports this trace type.
- 'NXArchInfo' is deprecated: first deprecated in macOS 13.0.
- AGI becomes too slow with large trace files (450MB for example)
- Arm Mali-G52
- Crash while opening trace of a Unity android application on samsung S10 (Vulkan) HOT 3
- Failed Validation on Galaxy S22 HOT 1
- No device can be found by AGI and GAPIS, but they are detected by adb
- FAiledTraceValidation Error on Galaxy S20+ device HOT 1
- my mobile is S20U,but Connection error occurred
- where can i find the ersDataProducer.cpp
- Failed to validate the trace of sample application with the Adreno validator HOT 1
- Mali GPU Performance Counter Monitoring
- AGI + VVL doesn't work on vulkan 1.3 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from agi.