GfxBoost extra background info
Posted by Chainfire on 04-05-2009 at 00:10:00 - Comments: 20 - Views: 12534
Project: GfxBoost - Tags: Windows Mobile Drivers
Project: GfxBoost - Tags: Windows Mobile Drivers
I just wanted to explain some stuff some of you may and/or may not be aware of. Please consider that I am not a Qualcomm engineer and how I see things are probably not always 100% correct, and my own research on these things is still in progress / evolving.
GfxBoost is in its infancy, we've really only scratched the service. Right now what the program exploits is actually a very round-about way of 'getting it done', involving all kinds of drivers and WM core files that are strictly speaking not necessary to pull it off, as I have simply not figured out how to perform this trick on a lower level yet. I know the general direction, but its still under investigation.
Because of this 'round-about' way of doing things, it also depends on a lot of variables, not all of which should actually be involved, but currently are.
As people who follow this thread will have noticed, if it actually works at all and how much difference it makes depends heavily on device/ROM combination. The older devices with QTV support having the most benefit, it seems.
To explain this further I have to dig a bit further into the background. QTV itself is actually not all that relevant in this whole process, it is the features it enables that are important - I just chose QTV as wording in the opening post because it may ring a bell for people. What QTV actually is is a very high performance MP4 decoder. This in itself is nothing special - look at the CoreCodec guys! However what QTV also does is enable something VSync-like and it seems most importantly, a sort of DMA mode (you may be familiar with this term from your normal computer).
For those who have no idea what DMA is, it is a method to transfer data between memory areas by-passing the CPU itself - greatly enhancing speed of memory transfer (used for everything) while the CPU is also doing other things (like decoding MP4 frames, or calculating game dynamics, or whatever).
The reason older devices in general see a bigger difference, is I think because HTC's drivers are actually improving. As some other discussion threads have shown (see Neo's improving Blackstone graphics, for example), there are various speed-ups to be had, some of them even involving this feature. Comparing a few ROMs has shown me that more and more HTC programs and drivers are starting to use this feature (which has technically been available for a very very long time now). However I must also note that I have not had the time to properly inspect the latest available driver sets yet (I am a busy person you know!)
You should also be aware that it seems the Android video driver for the G1 uses this feature permanently.
The way GfxBoost currently uses to get things 'up and going' can at best be seen as an unintended side-effect of QTV, getting 'lucky' with certain settings. Of course my final goal is to get this fully operational all the time on all supported devices, and in GDI mode ('typical' Windows Mobile 2D applications) at that. If that will ever happen, who knows. Should any reader be an avid hacker / code with a lot of free time, try porting the G1 video driver
Perhaps in light of the above you can understand that any difference in graphics drivers versions, HTC apps, etc can be of influence on GfxBoost actually working at this stage.
In final, if you read the above, you should have reached the conclusion that if HTC made a proper video driver for the MSM7K devices, GfxBoost would be completely and utterly useless - and have 0 effect even under ideal circumstances!.
GfxBoost is in its infancy, we've really only scratched the service. Right now what the program exploits is actually a very round-about way of 'getting it done', involving all kinds of drivers and WM core files that are strictly speaking not necessary to pull it off, as I have simply not figured out how to perform this trick on a lower level yet. I know the general direction, but its still under investigation.
Because of this 'round-about' way of doing things, it also depends on a lot of variables, not all of which should actually be involved, but currently are.
As people who follow this thread will have noticed, if it actually works at all and how much difference it makes depends heavily on device/ROM combination. The older devices with QTV support having the most benefit, it seems.
To explain this further I have to dig a bit further into the background. QTV itself is actually not all that relevant in this whole process, it is the features it enables that are important - I just chose QTV as wording in the opening post because it may ring a bell for people. What QTV actually is is a very high performance MP4 decoder. This in itself is nothing special - look at the CoreCodec guys! However what QTV also does is enable something VSync-like and it seems most importantly, a sort of DMA mode (you may be familiar with this term from your normal computer).
For those who have no idea what DMA is, it is a method to transfer data between memory areas by-passing the CPU itself - greatly enhancing speed of memory transfer (used for everything) while the CPU is also doing other things (like decoding MP4 frames, or calculating game dynamics, or whatever).
The reason older devices in general see a bigger difference, is I think because HTC's drivers are actually improving. As some other discussion threads have shown (see Neo's improving Blackstone graphics, for example), there are various speed-ups to be had, some of them even involving this feature. Comparing a few ROMs has shown me that more and more HTC programs and drivers are starting to use this feature (which has technically been available for a very very long time now). However I must also note that I have not had the time to properly inspect the latest available driver sets yet (I am a busy person you know!)
You should also be aware that it seems the Android video driver for the G1 uses this feature permanently.
The way GfxBoost currently uses to get things 'up and going' can at best be seen as an unintended side-effect of QTV, getting 'lucky' with certain settings. Of course my final goal is to get this fully operational all the time on all supported devices, and in GDI mode ('typical' Windows Mobile 2D applications) at that. If that will ever happen, who knows. Should any reader be an avid hacker / code with a lot of free time, try porting the G1 video driver
Perhaps in light of the above you can understand that any difference in graphics drivers versions, HTC apps, etc can be of influence on GfxBoost actually working at this stage.
In final, if you read the above, you should have reached the conclusion that if HTC made a proper video driver for the MSM7K devices, GfxBoost would be completely and utterly useless - and have 0 effect even under ideal circumstances!.