Expectation is that the VBO should consume Less Power than the Normal Rendering without VBO's .
As Copying the Data onto the GPU is not done Every Frame of Rendering.
1) Created Interleaved Data so that the VVCCNN(x1,y1,z1,,x2,y2,z3,xc1,yc1,xc2,yc2,xn1,yn1,zn1,..) the power consumed same as the data Copied EveryFrame.
2) Create Interleaved Data VCNVCN(x1,y1,z1,xc1,yc1,xn1,yn1,zn1,,x2,y2,z3,xc2,yc2,) Power consumed is more than both VVCCNN & copying frame data every frame.
The Only thing looks is that am not copying the data into 4 byte data, Is there any real impact on power by using VBO ?
What is the best Approach to get the less power and maximum performance .
Thanks in Advance
I stress again Pete's post above, if you improve the rendering efficiency by using VBOs or further by improving that VBO usage, you will likely see higher frame-rates, and therefore POTENTIALLY higher power draw over the same period of time. It is important to note that you are not measuring like for like in this case, as you could have many more frames rendered in that same time frame, so it is possible you are seeing higher total power drain over a fixed period, but lower power per frame. This is not unusual with such optimizations.
How are you leveling the playing field with regard to frame rate? Ideally you'd be testing with something that's already operating well above VSYNC. For example, the Cube SDK example will operate at ~2200FPS, which is a frame-time of ~0.5ms. Something operating at about 1-2ms per frame is a very good test case for such optimizations as it will in reality be operating at a fixed 60FPS (VSYNC) so provides a stable and fair platform for testing the power impact of optimizations.
Can you tell us more about how you're measuring power? What is the test case?
Hi Chris,
I Understand that we are regulating the FPS , Thanks for your concern on this.
Right now we put the System to sleep wake up and run the app a multimeter to Check the Power Consumption.
> but lower power per frame.
@Chris Just to be picky and avoid confusion it's _energy_ per frame. Power is measure of instantaneous rate of use - anything integrated over time is energy .
> Right now we put the System to sleep wake up and run the app a multimeter to Check the Power Consumption.
Exactly what are you measuring with the multi-meter? The whole board power rail, the GPU power domain power rail?
TBH the power difference in what you are measuring will be small, and power measurement is always a little noisy because it is sensitive to thermal state (hotter gates = more resistance = more power draw), so I would be surprised if VBOs by themselves would make a radical difference, except where they also significantly change the performance of the rendering.
Pete
Yes pete we are measuring the overall power of the CPU not the GPU Alone , as we dont have any tool to Check the GPU power seperately.
as we leave the system to sleep and wakeup all the back Ground Process settle down we see constant reading on the multimeter , we take this as our base Measurement and any reading above this would be noted over a period of time lets say over 1-5 minutes., average the data.
The Main Idea with Which we started the VBO is that if we are not copying the data every frame , the GPU bus would be left alone as the copy data is a costly operation. it surely had increased the Frame Rate by using VBO . But what i really need to do in this excercise is to reduce te power consumption, theoritically there are lot of things supporting the VBO are better but in practical may be there is reduction , it depends on the accuracy of the multimeter we are using too .
subrhmanyam wrote: the GPU bus would be left alone as the copy data is a costly operation.
subrhmanyam wrote:
the GPU bus would be left alone as the copy data is a costly operation.
A couple of points:
I'm sure you're aware of this, but wanted to clarify in case anyone reading this read it the wrong way.
Thanks,
Chris
EDIT: Reworded for clarity