Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Varying unit (V) reported by Offline Compiler

I'd like to know what it means when a fragment shader is bound by Varying unity (V), in our case.

According to: https://developer.arm.com/documentation/101863/7-4/Mali-GPU-pipelines/Mali-Bifrost-architecture

The varying pipeline is a dedicated pipeline which implements the varying interpolator.

Does it mean that the it takes a lot of cycles just interpolating the varyings than ALU operations, and reducing the amount of varyings could potentially reduce the fragment shader cycles ?

For example:

Mali Offline Compiler v7.4.0 (Build 330167)
Copyright 2007-2021 Arm Limited, all rights reserved

Configuration
=============

Hardware: Mali-G71 r0p1
Architecture: Bifrost
Driver: r32p0-00rel0
Shader type: OpenGL ES Fragment

Main shader
===========

Work registers: 24
Uniform registers: 12
Stack spilling: false
16-bit arithmetic: 60%

A LS V T Bound
Total instruction cycles: 1.42 0.00 3.50 2.00 V
Shortest path cycles: 1.42 0.00 3.50 2.00 V
Longest path cycles: 1.42 0.00 3.50 2.00 V

A = Arithmetic, LS = Load/Store, V = Varying, T = Texture

Parents
  • This makes sense and surprises me at the same time. Thank you a lot because I would never figure it out on my own. 
    - Is there any counter in Streamline which help us detect this kind of promotion
    - Is there any other precision surprises we should expect from the compiler ?
    - Is there anyway to defeat this optimization ? (say, the texture is very small)

Reply
  • This makes sense and surprises me at the same time. Thank you a lot because I would never figure it out on my own. 
    - Is there any counter in Streamline which help us detect this kind of promotion
    - Is there any other precision surprises we should expect from the compiler ?
    - Is there anyway to defeat this optimization ? (say, the texture is very small)

Children
No data