yashsingh1/xdaforums huggingface dataset:
[Touch Cruise ROM Development] bally3:
hmm.. sounds like you've got some work to do! :)

Ok.. I'm currently testing a few ideas out.. be back with my findings..

Consequently I had an interesting find yesterday...dont know how relevant it will be.. but its display related..

I set the BPP field in hklm/display from 16 to 24 ... works fine.. AND also allowed me to change the display size to 144 rather than 196.. still no use.. but interesting anyway..

Also ... putting rogros redrawlights file in the startup.. causes no problems with ver 3.29, omnio or kaiser old cab..

but if you put 3.28 and kaiser new cab on... it freezes.. I think we have our answer of whats working.. 3.28 and kaiser new and the combinations to keep.
[Touch Cruise ROM Development] bally3:
Also nikmel.. are you experiencing the white screen on sleep on ver 3.57?
[Touch Cruise ROM Development] NeoS:
Weird, my device actually works with 3.28 and new CA drivers.
[Touch Cruise ROM Development] radem205:
Does it work flawless? Then it would smart to dump your whole ROM I think.
[Touch Cruise ROM Development] bally3:
Do you get POWER OFF and white screen issues?
[Touch Cruise ROM Development] NeoS:
Nope. None. Just the scrolling issue with the testapps.
[Touch Cruise ROM Development] NuShrike:
If somebody can verify that through Remote Process Viewer that the ddi.dll being used has a live/runtime need for disptools.dll. The file dependency is obvious, but I'm not sure what the live one is using.

If Nikmel is saying the original also needs disptools.dll anyways, then it's moot. I'll try to put up a wrapped libgles_cm.dll later today if Rogr doesn't get to it first.

edit: wait the original Polaris ddi.dll also used disptools.dll? Did it also include the ScreenUpdateByCopy() functions also?! I'm assuming this was all uploaded by Nikmel in a dll pack already. I'll dl it soon and see...

NeoS2007: how fast is the Today screen rotation with your current 3.28+HTCCA driver set up?
[Touch Cruise ROM Development] NikMel:
This issue is because of disptools.dll from any kaiser rom

Yes if I use disptools.dll from kaiser but with only ddi.dll from kaiser and disptools.dll of polaris it works OK
[Touch Cruise ROM Development] NikMel:
NuShrike,

Its 100% that starting from the latest original polaris rom (WM6.1 3.13) to all kaiser rom to 3.57 are all using disptools.dll
[Touch Cruise ROM Development] NeoS:
Fast. One-press-of-a-button fast. Even with Manila2D.
[Touch Cruise ROM Development] eduran:
Hi guys,

I don't think anyone has answered the question NuShrike did in the post quoted below.

I understood that his idea was to point the registry key to ddi2.dll (whilst having also a ddi.dll in windows folder), then softreset, then remove (erase) ddi2.dll without changing the registry key, then softreset again and watch whether the phone start or not.

If the phone start means no matter what change you set up at registry key, the system will always use (fall back) ddi.dll (or so).

If the phone doesn't start, we have the proof that registry modifications do something, and we can keep working on that approach.

I'm sorry I can't do that my own, but sadly my TC had some HW issues and it's back a HTC for repairing.

Also wanted to say you are doing an amaizing job here, I personally admire your creativity and anger to get important results that will benefit everyone here (and maybe also be the angular stone for kaiser's users).

Anything else i can do, just name it.

Cheers :)

EDLL
[Touch Cruise ROM Development] NikMel:
That the phone will fall back is just a design of windows mobile.

As microsoft states if you don't set the registry entry the the system will look for ddi.dll file and use it.
[Touch Cruise ROM Development] bally3:
NikMel, what version CA did you build your R.02 with?
[Touch Cruise ROM Development] eduran:
Ok, but the registry wont be unseted, will be seted to a file that doesn't exist. In other words, how can we assure that when having 2 ddi.dll, the system is not always using the default one?

EDLL
[Touch Cruise ROM Development] bally3:
I think the argument of the two ddi's is a moot point, unless theres a logical reqason for pursuing this. As NikMel pointed out and we tested yesterday, the system will fall back on the one it finds if the file is removed, or in the test I did, an incompatible one is used.
[Touch Cruise ROM Development] bally3:
Maybe Kaiser guys should cook in a Polaris disptools.dll and see what happens :rolleyes:
[Touch Cruise ROM Development] NeoS:
Hmm. Maybe an idea for NuShrike? You have a TyTNII right?
[Touch Cruise ROM Development] bally3:
btw, I dont know whether this is true, as I suffered the white screen issue with both UDK and swtos roms come to think of it.

NikMel, we may have some misinformation here...

Ver 3.28 worked out of the box in terns of initialising the video memory in lights.exe

Ver 3.29 gave native exception errors as did ver 3.13 - I cant remember why we opted for the older kaiser files now, but I thought it was for the white screen issue?
[Touch Cruise ROM Development] bally3:
The reason for my asking is a question to NuShrike, should we opt for the combination which makes the screen move only when buttons are pressed or stick with the scrolling screen as seen here:

http://nl.youtube.com/watch?v=69_6zgIZLaU

From where I'm sat it seems that the driver is working with the scrolling but some compatibility issues timing or otherwise yet unknown is causing the scrolling yet the cylinder spins and the other apps work as well. Most notably, Billboard.exe.
[Touch Cruise ROM Development] DarkPower:
For everyone :

I use Syrius R0 ROM from udk, with this configuration for 1 day :

- HLM\System\D3DM\LocalHook = D3DMXSc50PB.dll

- HLM\Drivers\Display\Primary\DisplayDll = ddi2.ddl

- HLM\Drivers\Display\Primary\Active\Built In LCD\Dll = ddi2.ddl

- HLM\System\DDraw\DeviceEnum\ddi.dll= ddi2.ddl (rename the directory)

- HLM\System\GDI\Drivers\MainDisplay = ddi2.ddl

I replaced every sentence with "ddi.ddl" by "ddi2.dll" because I can't erase "ddi.ddl".

With this configuration, Polaris is very smooth and quick !

For the bench :

- 2ms

- 26ms

- 2ms

The only bug I find is in Opera & Youtube which don't work now (maybe because of an error of DirectDraw -- error message says "could not initialize DirectDraw").

D3DMXSc50PB.dll is refering post (#173)

ddi2.ddl is the version 3.29 of this post (#733) :

http://xdaforums.com/showpost.php?p=2682442&postcount=705

Hope it will interest people !!

PS : I can play Call of Duty 2 perfectly !! (the only thing missing is the keyboard ! lol) :D

edit = It is very stable (except the problem with Opera).
[Touch Cruise ROM Development] bally3:
If your localhook is the omnio driver, then you are using software rendering. Thanks for the info tho :)
[Touch Cruise ROM Development] NikMel:
This was my first tooth but after some testing it appears that disptools.dll is cuasing this blank screen thing
[Touch Cruise ROM Development] bally3:
but that would mean that swtos and udk are also using kaiser disptools? I just checked the original htcorg zip you posted and disptools was not included in there so we must have been using the polaris one? :confused:
[Touch Cruise ROM Development] NeoS:
Yes. We used the Polaris one. That's why we didn't have the blank screen issue like Kaiser had in development of the CA drivers.
[Touch Cruise ROM Development] bally3:
hey neos, any luck with the dutty rom?

might as well take a look whilst we eagerly await the libgles_cm.dll from NuShrike.
[Touch Cruise ROM Development] rogro82:
NuStrike i tried the ExtEscape like you suggested but it isnt updating the screen.... maybe this is where our problem comes from ( or i am doin something wrong somewhere ;) )..

You said it was implemented in the libgles... is this the same one we are using?? Cause if it is we need to look for another method to force the screen to update and implement this one in the eglSwapBuffers() method...

If i draw something on the dc even if it a line of 1px the dc gets updated, but for now i havent found anything else that will ( using p/invokes that is, so we can implement it in the libgles ).
[Touch Cruise ROM Development] rogro82:
NuStrike my process viewer showes that disptools is loaded in gwes.exe and als accessed in Lights.exe
[Touch Cruise ROM Development] NikMel:
let me know if the volume-up trick works for you too
[Touch Cruise ROM Development] bally3:
True Software Acceleration Achieved!

Ive done it!!

Youtube video coming as soon as I make one!

Cylinder spinning at insane speeds!

D3D demo going mad.. its software accelerated but its a huge leap forward.
[Touch Cruise ROM Development] dwaradzyn:
It does refresh when pressing and holding volume-up but is does only aboout 3 fps. It is worse than software rendering.
[Touch Cruise ROM Development] dwaradzyn:
You installed optimized intel software driver (lately referenced as omnia driver)? Yes cylinder does go fluently using omnia driver, but for example billboard.exe is a slide show. All the demos should run blazing fast...
[Touch Cruise ROM Development] bally3:
sorry.. missed the post.. ok so not a hugle leap forward then! but its better than what I've seen so far! :)
[Touch Cruise ROM Development] dwaradzyn:
edit: deleted
[Touch Cruise ROM Development] NikMel:
Omnia software renderer is smooth and fast yes.

We need to patch this dll's from htcclass.... to make them fully work on our device
[Touch Cruise ROM Development] bally3:
So now we are getting somewhere... I'm currently looking at the classaction files and the omnio driver extract..may be some time lol!

btw, if this was known, then how come it hasnt been cooked?
[Touch Cruise ROM Development] dwaradzyn:
I remember there was exactly the same issue (not refreshing until forced some draw operation) some time on kaiser. I cannot find the solution for it...
[Touch Cruise ROM Development] NikMel:
this is the omnia file http://rapidshare.com/files/145874078/D3DMXSc50PB.rar

Just extract and copy extracted dll to the windows dir then change "LocalHook" data to the name of that dll in [HKEY_LOCAL_MACHINE\System\D3DM\Drivers]
[Touch Cruise ROM Development] bally3:
Thanks NikMel, will give this a try. As a side note will you be building the driver into your next release?
[Touch Cruise ROM Development] NikMel:
I think swots and udk done it already
[Touch Cruise ROM Development] bally3:
Well thats good news at least, now from all my digging this week, the one thing I've learnt that it was the ddi.dll file in WM6.1 that seperated progress between the Kaiser and the Polaris.

So assuming that to be correct, any progress in the Kaiser forum should now be possible to replicate in the Polaris.
[Touch Cruise ROM Development] SuperJMN:
So... the improvement is only caused due to optimized SOFTWARE rendering, isn't it?
[Touch Cruise ROM Development] bally3:
The question I have still remains that why was the Kaiser able to render hardware accelerated 3D and the Polaris still cannot - even when the video memory is activated?

Is it simply a case of different ddi.dll files and its dependencies or something else entirely??
[Touch Cruise ROM Development] bally3:
It appears so, funnily I didnt install the samsung omnio driver again when I flashed to 6.1 because I thought it was already built in!

:p
[Touch Cruise ROM Development] NikMel:
well!

I don't want to tuch anyone with this sentenc but localhook is a software rendering and htcclass... is using localhook so I dont think the cab file from htcclass website is doing an hardware rendering!
[Touch Cruise ROM Development] bally3:
Interesting theorum...!

So why does lights say "Using Video Memory" ? is that just something the developer put into the exe file to say if this file is present - say this?? :confused:
[Touch Cruise ROM Development] NikMel:
Its not a theory but a fact http://msdn.microsoft.com/en-us/library/aa919650.aspx
[Touch Cruise ROM Development] bally3:
If they have, it doesnt work half as impressively as doing it cab form!

swtos has the lights program and D3D demo - (incidently the only two that work?!?) built into his rom, but its slow and jerky.

UDK's.. someone give it a try with installing the kaiser cab or the files that NikMel has provided and tell us. I'm not really wanting to reflash again today, I've flashed three times already!
[Touch Cruise ROM Development] bally3:
Hey rogro..! :)

nice to have you back with us.. NuShrike appears to be offline at the mo.. I'm sure he'll resurface soon enough..

What results did you get with that redrawlights.exe? mine just seemed to slow down a tad with your second version.
[Touch Cruise ROM Development] NikMel:
Which libgles are you using rogro82?

Is it named by size:

210 KB (215.552 bytes)

213 KB (218.625 bytes)

317 KB (324.856 bytes)
[Touch Cruise ROM Development] pananza:
I tried to duplicate your findings and document while going. But after copying DDI 3.29 as DDI2 and changeing the registry and soft reseting I get the same symptoms for the omnia driver as with the hca drivers (only update when menu is clicked). I've rechecked that D3D still points to the omnia driver and they do.

If nothing else, this points to DDI 3.29 as a problem source for the non-update problem.
[Touch Cruise ROM Development] bally3:
did either of you run the CA kaiser cabs or just run lights from your sd card?
[Touch Cruise ROM Development] pananza:
I just ran lights.exe from the sd card.
[Touch Cruise ROM Development] NeoS:
*sigh* I can't seem to find the wce_rex.dll from Dutty's dump. Must not be in there. I only have the one from Diamond. Would that suffice for now?
[Touch Cruise ROM Development] NikMel:
Forgot to put online :o
[Touch Cruise ROM Development] NeoS:
It killed my device. Need to hard-reset.
[Touch Cruise ROM Development] NikMel:
As I say earlier DO NOT DO THAT!:(:confused::D

If you even replace with the same file it will not come up.
[Touch Cruise ROM Development] NuShrike:
As stated, my purpose for the test is to check if the OS reads the registry and uses it or not. It's called the negative test and works really to test placebo effect.

There are a few places in the registry that WinCE reads directly from somewhere else during the boot process, not the registry, so I wanted to be sure about this since I don't have a device to test directly.

There is no fallback in the OS as far as I know.

As for RemoteHook/LocalHook, that's an artifact of desktop win32. In WinCE, it's the same thing because drivers are required to implement everything -- they're just allowed to override certain graphics primitives with hardware-accelerated calls.

Rotation is supposed to fail in Lights.exe because the program itself is a sample program and doesn't support resizing its window on rotation. The rotation test is only for standard Today screen with a lot of plugins. Manilia 2D is one item and would not be a good test.

rogro82: which ddi version is your device using where you can trigger updates with a draw-one-pixel? If you can upload a copy, I can find the proper ExtEscape() call, probably...
[Touch Cruise ROM Development] NeoS:
lol. Forgot. :D too eager to get it to work i guess.
[Touch Cruise ROM Development] NuShrike:
The Omnia driver only uses directdraw while HTCCA uses OpenGL, so they do not test the same things.
[Touch Cruise ROM Development] NuShrike:
We can attack both fronts, but I'm more familiar with the frozen-screen (press a button) issue.
[Touch Cruise ROM Development] NeoS:
NuShrike, would it be handy to test OUR disptools on a Kaiser? See what happens?
[Touch Cruise ROM Development] NikMel:
I've to go for now tomorrow is a day again.
[Touch Cruise ROM Development] rogro82:
NuStrike im using 3.28.... I can even make it update using p/invoking coredll.dll's SetPixel.

3d acceleration with a dead pixel inside :D
[Touch Cruise ROM Development] DarkPower:
I confirme the same.

(But I don't use Lights.exe everytime I want to do a call... lol) :confused:
[Touch Cruise ROM Development] bally3:
neos... can you extract the NEW kaiser cab for me please?
[Touch Cruise ROM Development] NeoS:
What files do you need? all?
[Touch Cruise ROM Development] bally3:
yup..all of them please :)

just found something interesting.. I think
[Touch Cruise ROM Development] NeoS:
Here ya go.
[Touch Cruise ROM Development] NuShrike:
Okay, here's a libgles_cm.dll that uses SetPixel to trigger GDI to update the screen

This is a custom libgles_cm.dll that wraps the OEM ogl dll renamed to libgles_cm_ks.dll (KS for KS20). The code is:

::SetPixel(GetDC(NULL), 0, 0, 0);	// Polaris test

Let me know if I'm getting the DC wrong, and how this works...

If this works, I think it's only a stopgap solution because the official way for updating the screen doesn't use this path.

polaris20080924_00.zip (113.0 KB, 20 views)
[Touch Cruise ROM Development] rogro82:
Dont know if its any better ( having so many builds tested the last few hours :D ) but code is cleaned and its using the coredll SetPixel to update te screen....

Give it a try.... Still a reminder that this is not to test performance just to test what makes the screen doesnt want to update and what to do about it in a decent / fast way...

Hopefully NuStrike can find the exact ExtEscape function so i can try that one out.. :cool:
[Touch Cruise ROM Development] bally3:
Son of a gun..!! You did it!!! :D

Lights works - no scrolling whatsoever...

Trying the other apps now...
[Touch Cruise ROM Development] rogro82:
Thnk ill give it a go :D
[Touch Cruise ROM Development] DarkPower:
Is it working ? :confused:

2D mode & 3D mode ?
[Touch Cruise ROM Development] bally3:
erm no.. darkpower... this is 3D only... read the thread title please..
[Touch Cruise ROM Development] bally3:
ok.. billboard works.. so does fractal.. and the drdmapp (cube)

just going to check frame rates..

NuShrike, thank you for this.. so if this works does that mean you have a good enough idea what to do next? :)
[Touch Cruise ROM Development] rogro82:
Bally3 strange thing is its not working for me :confused: U sure you didnt start my tool first?

Im off to bed now... gf is calling for an hour or so :D
[Touch Cruise ROM Development] DarkPower:
My question was to know if it is working both on 3D & 2D (because today we know how to optimize 2D drivers).
[Touch Cruise ROM Development] bally3:
Iii think its not going to work for most of you.. I'll explain tomorrow once Ive figured it out myself but its something I've done tonight.. after asking NuShrine which method to try.. scrolling or none..

This will only work on none scrolling I think..as the scrolling method is being triggered already.
[Touch Cruise ROM Development] NuShrike:
Then thanks to rogro82 for the SetPixel() technique. :) ChainFire came up with the same idea for the KaiserGL drivers too.

For a real complete test, try out GLBenchmark.
[Touch Cruise ROM Development] bally3:
Ok.. I'm getting a steady 2.38052 fps after letting Billboard FPS from Pananza run for about three minutes.

What do you think NuShrike?
[Touch Cruise ROM Development] dwaradzyn:
I'm getting 7-8 fps on software omnia driver.
[Touch Cruise ROM Development] bally3:
Trying it now.. and thanks rogro82 and you too chainfire..

The BillboardFPS.exe is exactly the same as before the libgles NuShrike.. does that mean the code needs optimising or that it may be the extent of the gpu's performance?
[Touch Cruise ROM Development] Rocheau:
Hello

Hello Bally 3. As this thread is starting to be too much large to follow it, I understand that once you will be able to get a stable version you will announce it in the first post of this thread, am I right? Otherwise we will have to read the entire thread. At the moment being it seems to me that still your are making some test and for that reason it would be better not to install anything before you could release a stable version. As I have read that someone had to make a hard reset I would prefer not to install anything for now.

Keep up the good work!
[Touch Cruise ROM Development] NuShrike:
I think it's about the same ~2FPS running BillboardFPS on Kaiser. Probably need somebody on Diamond/Touch Pro to confirm low FPS.

But WAIT, you get readable TEXT with the HTC-CA drivers? We've never gotten readable D3D text before.
[Touch Cruise ROM Development] NeoS:
Hey, don't leave us in the dark here. What's up?
[Touch Cruise ROM Development] bally3:
If you read rogro's post about this method dwaradzyne its not to test the performance of this method:

NuShrke has written into a liblgles_cm file what rogro suggested and made into an app file.
[Touch Cruise ROM Development] bally3:
havent you tried NuShrkes libgles file??
[Touch Cruise ROM Development] NeoS:
Yes, but i've still got the scrolling issue. What file did i miss?
[Touch Cruise ROM Development] NuShrike:
Can you get yourself to the point where the screen doesn't roll, but you get freeze-frame 3D that only updates by StartMenu/ActiveSync? Then try my .dlls.
[Touch Cruise ROM Development] dwaradzyn:
When I tried two "working" driver sets (scrolling screen one and not refreshing the screen one) both of them render only a color bar instead of text. I'm very confident that both test were running more than 5 fps. It was about the same speed as omnia software driver.
[Touch Cruise ROM Development] NeoS:
I can only get there with the use of 2 ddi's AFAIK. Don't know if that's what's supposed to work...

Or maybe the old CA drivers.
[Touch Cruise ROM Development] NeoS:
Nope. Still scrolling. Don't know what you guys did, but I sure hope this isn't just a temporary fix.
[Touch Cruise ROM Development] bally3:
I dont think its a file we missed.. I think its too many files..

ok this is what I did..

I did a hard reset (my 200th odd!)

then Ii copied the 3.28 ddi.

soft reset

Then I copied the apps (ONLY not the dlls) into Windows/Start Menu/Programs/New Folder

then I ran dll checker and copied each file individually to the windows directory that dll checker complained wasnt there.

soft reset... and then I got the frozen lights.exe

Then I simply added the liblgles_cm and liblgles_ks to the windows folder, soft reset....and working!

I think the kaiser cab is adding one or two many files that are overwriting or over-riding (as they reside in the windows folder and WM always looks there first).
[Touch Cruise ROM Development] NeoS:
Aw crap. Now i have to hard reset again, cuz my device is already bloated with .dll's now. (just reset it 2 hours ago...)
[Touch Cruise ROM Development] radem205:
@bally3: what results do you get with glbenchmark?
[Touch Cruise ROM Development] bally3:
I got to wondering when DID we actually have the video memory initialised and the freeze frame and I remembered that it was right back in the beginning.. so we must have added something to the windows directory that suddenly started the scrolling... so I hard reset and started again.. back tracing! :)

(You can tell I used to own a zx-81 and a bbc micro!) :rolleyes:
[Touch Cruise ROM Development] bally3:
not having much luck.. the community one tells me I need to go online to see my benchmarks .. and its just giving me a white screen that crashes..

anyone got one that doesnt go online?
[Touch Cruise ROM Development] NeoS:
Only thing we did in the beginning was change the ddi.dll. Then we suddenly started to use the CA.cab and it worked, with scrolling. NOW I GET WHY THE 2 DDI TRICK MADE THE LIGHTS FREEZE! *hits keyboard with head* It must've used the "old" ddi which didn't use the CA drivers!
[Touch Cruise ROM Development] NeoS:
I have. Give me a sec to *fix* my device.

this is going to be a nighty...
[Touch Cruise ROM Development] dwaradzyn:
Right after rogro you posted that it works. I was having the impression that putpixel method works and forces screen refresh and what you have is full fps. That's why I posted software driver results just after yours.