You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While this setup works for prioritizing the rendering backends, there seems to be no reliable way to determine which rendering mode is actually active at runtime. This is critical for applications that require runtime adaptation of animations and UI effects based on the rendering backend.
For instance, I need to scale down or disable certain animations if the Software rendering mode is active, as they are too demanding for software rendering and degrade the user experience. On the other hand, I want to keep full animations for Vulkan.
None of the currently available APIs (RenderingSubsystemName, RendererDiagnostics, or log outputs) provide the necessary information about the active rendering backend. The application cannot adapt animations dynamically, leading to performance issues when using demanding animations on less capable rendering backends.
Describe the solution you'd like
Introduce an API or property to expose the active rendering mode at runtime, such as:
string activeRenderingMode = Avalonia.Rendering.GetActiveRenderingMode(); // Returns "Vulkan", "AngleEgl", or "Software"
Alternatively, make the information available via RendererDiagnostics or RenderingSubsystemName for more detailed insights into the rendering backend.
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered:
It makes sense to have diagnostic log output or add current renderer information overlay.
It's also already possible to detect GPU features by using GPU interop APIs, making it possible to write Vulkan integration or DirectX integration.
But not sure about idea of "reduce animations on software renderer". Software renderer is not necessarily slow.
Thank you for your response.
I completely agree that the software renderer is not inherently slow, and in many cases, it performs exceptionally well. However, in my experience, certain scenarios—especially involving elements with complex shadows or layered effects—tend to exhibit noticeably better performance with Vulkan compared to the software renderer.
This difference can directly impact the smoothness of the UI.
It would be nice to have this information available, even if not primarily for functional purposes, but at least as an informative feature.
Is your feature request related to a problem? Please describe.
I'm using Avalonia 11 and configuring multiple rendering modes in the Win32PlatformOptions.RenderingMode property. For example:
While this setup works for prioritizing the rendering backends, there seems to be no reliable way to determine which rendering mode is actually active at runtime. This is critical for applications that require runtime adaptation of animations and UI effects based on the rendering backend.
For instance, I need to scale down or disable certain animations if the Software rendering mode is active, as they are too demanding for software rendering and degrade the user experience. On the other hand, I want to keep full animations for Vulkan.
None of the currently available APIs (RenderingSubsystemName, RendererDiagnostics, or log outputs) provide the necessary information about the active rendering backend. The application cannot adapt animations dynamically, leading to performance issues when using demanding animations on less capable rendering backends.
Describe the solution you'd like
Introduce an API or property to expose the active rendering mode at runtime, such as:
string activeRenderingMode = Avalonia.Rendering.GetActiveRenderingMode(); // Returns "Vulkan", "AngleEgl", or "Software"
Alternatively, make the information available via RendererDiagnostics or RenderingSubsystemName for more detailed insights into the rendering backend.
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: