Git Product home page Git Product logo

Comments (5)

PixelyIon avatar PixelyIon commented on May 5, 2024 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.

jakon2048 avatar jakon2048 commented on May 5, 2024 2

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.

jakon2048 avatar jakon2048 commented on May 5, 2024

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.

chraac avatar chraac commented on May 5, 2024

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.

ttanatb avatar ttanatb commented on May 5, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.