yashsingh1/xdaforums huggingface dataset:
[Touch Cruise ROM Development] radem205:
Maybe it is normal, but I also notice that when I start my device the screen is very slow (low fps I think). When I press the Standby key (on top of the device) and press again to activate the screen again everything is going smoother. This thing I have noticed all the time on different roms (shipped rom too). I don't know if this is about the same as pushing start or something to activate 3D.
[Touch Cruise ROM Development] NikMel:
I don't think it will work changing from one to other displlay dll via registry.

You have to make this change in 3 places and if you do that as I can remember it will never boot
[Touch Cruise ROM Development] whitealien:
wce_reF.dll and wce_rex_dm.dll are almost identical. There is difference in two functions:

wce_reF.dll have function RexGetVirtualAddress what wce_rex_dm.dll does not have, but wce_rex_dm.dll have rex_get_timer what wce_reF.dll does not have.

Both dlls have 64 export functions. Only export.

in udK R0 ROM is wce_rex.dll file with size 13688 bytes, but I can not copy it for disassemble as it is locked by system. Could be interesting to see whats inside there.
[Touch Cruise ROM Development] NikMel:
Attached in the zip file som tools to monitor processes on your device to see what process uses which dll.

Change your registry entry to ddi2.dll softreset it then after it bootup and you have an activsync connection run ccpview.exe from this zip file and let me know what dll gwes.exe uses.
[Touch Cruise ROM Development] NikMel:
Place holder:D
[Touch Cruise ROM Development] bally3:
Another job for you Neos2007, since you're a champion of that rom! :)

So does this mean that Polaris has a different method of display to the Kaiser? If so, any advantages , disadvantages?
[Touch Cruise ROM Development] bally3:
Great tip NuShrike!

Ok I can confirm that hklm/display/Built in LCD/ddl

DOES use the other ddi.dll file.. I put ver 3.29 ddi as a renamed file - soft reset - tried lights.. still scrolling.. closed lights - tried screen rotation - could not initialise 3D.. (error that you normally get with lights wth 3.29).

Soft reset and tried the other way round and still same results!

:)
[Touch Cruise ROM Development] whitealien:
I get Class not registered when open program.

Other thing. Inside wce_pmeF.dll only three export functions:

pmem_free

pmem_get_phys_addr

pmem_malloc

Seems it is used to allocate and free video memory.
[Touch Cruise ROM Development] NikMel:
@bally3: to be sure download the zip file I posted in my previous post and run the remote process viewer.

this tools are for windows not windows mobile
[Touch Cruise ROM Development] bally3:
Will do NikMel, btw, to be clear when I said "tried other way" I meant tried lights first and screen rotation second first time, then soft reset and tried and tried screen rotation first, lights second.

Just to clarify the point and avoid confusion!
[Touch Cruise ROM Development] bally3:
To NuShrike:

My friends on here, both active and silent are truly grateful I am sure, that you have accepted our request for help, Chainfire mentioned that this is a difficult process for you as you do not have or have means to a Polaris yourself. I see from your profile that you are in the states, whilst we are more than happy (and competent - hopefully!) to follow instructions, its obviously a lot easier to have one at your disposal.

I make a request then to anyone in the states who is willing to loan a device to NuShrike to come forward should NuShrike feel that it could help him. I accept it would probably have to be someone close enough to drop it off to him and you would have to make arrangements between the two of you buut I dont feel this is a ridiculous request seeing the amount of interest there is in seeing 3D acceleration work on our beloved devices.

.. and of course you'd get your name in the credits.. ;)
[Touch Cruise ROM Development] NeoS:
@Bally3: I did the same with ddi.dll (3.13) and (3.28). Only i renamed the old one to ddi2.dll and copied it next to the new one. Then set HKLM\Drivers\Display\Primary\DisplayDll=ddi2.dll.

When rotating my screen i got an exception.

Secondly, I can't remove it now. So that means it is used by the device :D

(glad my tryout with 2 ddi.dll's wasn't a complete waste of time)
[Touch Cruise ROM Development] bally3:
I get same... "Class not Registered" and it shows disconected below though I'm activesynced.
[Touch Cruise ROM Development] bally3:
Update: Just tried rotation and it works again... does this mean that the system stops using that ddi.dll in hklm/Display if it fails to function?
[Touch Cruise ROM Development] NikMel:
To make the tools work first copy all files from "..\target\wce500\armV4i" to the windows dir on your polaris then run ccpview.exe "..\bin" on your computer
[Touch Cruise ROM Development] bally3:
Still same.. do you have to run anything on on your device?
[Touch Cruise ROM Development] NeoS:
Tip:

Set screen rotation to a hardware button and start D3DMDemo. Then switch a couple of times very quick. it updates your screen and thus turns the cube. The other test .exe's don't work that way.
[Touch Cruise ROM Development] bally3:
cant get it working here.. I'm running vista..dont know whether thats a problem or not.
[Touch Cruise ROM Development] radem205:
It isn't working on my pc (Windows XP) too. Same problem as bally3 described.
[Touch Cruise ROM Development] bally3:
ok.. not getting anywhere fast.. NuShrike.. any ideas what to do next?
[Touch Cruise ROM Development] whitealien:
I guess that we are missing some runtimes what was included in embedded visual basic sdk :(
[Touch Cruise ROM Development] radem205:
See this post: http://jajahdevblog.com/jasmine/?p=40

I think that we miss Visual Studio :)
[Touch Cruise ROM Development] whitealien:
I just downloaded it. Hesitating to install.
[Touch Cruise ROM Development] NikMel:
I've just updated the zip file download it again and try.

In the root of the zip file is a folder called "armV4i" copy the contend of that folder to your polaris then run the remote process viewer.
[Touch Cruise ROM Development] bally3:
Jeeps! you compressed that zip and then some!

16 minutes to unzip :p
[Touch Cruise ROM Development] NikMel:
it's a small thing it should unzip in 2-3 secs:o
[Touch Cruise ROM Development] whitealien:
I did. It did not work. All those exe files uses some class that gets registered during evb installation. Just a guess.
[Touch Cruise ROM Development] radem205:
It doesn't work. I have copied the files in the map you mentioned to the windows directory. But it says: "Class not registred"

Edit: A dwmapi.dll is missing when you open ccpviewer.exe in Dependency Walker
[Touch Cruise ROM Development] bally3:
Same here ... gues you're going to have to tell s what your results are NikMel...

On the pc does it matter where the files are run from?
[Touch Cruise ROM Development] NikMel:
not really no.

I will monitor the process and see if I miss some files:confused:

Maybe we need to register some dll on computer
[Touch Cruise ROM Development] NikMel:
just ignore this **** I'll let you know when this remote process viewer works :rolleyes:
[Touch Cruise ROM Development] bally3:
Also these are .exe and .dll files that you are asking to move into the windows folder.. do they not need a registry edit to make them work?

They wont just turn up as a process if they are placed in the windows folder.. this is what the guys at Kaiser forum struggled with when they kept sticking dll's into the windows directory expecting them to work. They have to be invoked.

I've tried clicking on the .exe files in the windows directory to invoke them but nothing happens.

Try the test and tell us your findings please thats probably best way forward NikMel as I feel we are losing valuable time here.. especially how long we have Chainfire and NuShrikes attention :)
[Touch Cruise ROM Development] NeoS:
I think we should point our attention towards NuShrike's question. Can we make use of 2 ddi's?

I guess it's important to know that, because of the dependancies towards other files. That way, we can "fool" some dll's who are faulting and so stop the progress. If we bypass those, we might be able to run "working" code.

As far as i know, the system makes use of both my ddi's. Where theyé used, i don't know. (yet) It MUST have something to do with the 3D capabilities, since it stops the scrolling, but also stops the screenrefresh.

As posted earlier, my setup is:

ddi.dll (3.28)

ddi2.dll (3.13)

Working 3D but stop-and-go.

Can anyone test it the other way around?
[Touch Cruise ROM Development] rogro82:
modules accessed by gwes.exe
[Touch Cruise ROM Development] bally3:
We need NuShrike to tell us what we're looking for as we've already tried and posted our results on this. My feelings are that apart from testing purposes the two dll method is never going to be any use as an acceleration method as you are simply fooling the device to allow you to boot up and then run the incompatible dll. Proof of the pud is if you use two compatible dlls (3.28 + 3.14 or 3.57) you will notice that the system will happily carry on.. similarly if you rename the same ddi file and place that in there it will also run. The stop and start you reported will probably because the device is having to reload the same ddi twice.
[Touch Cruise ROM Development] NikMel:
We need the same list but after change of registry to ddi2.dll
[Touch Cruise ROM Development] rogro82:
Im now creating the one using the 3.28 ddi... ill have to look if i also have the other one
[Touch Cruise ROM Development] bally3:
Hey rogro..! where yo been hiding?

That hookswitcher proggie you made has been a real time saver :)
[Touch Cruise ROM Development] NikMel:
I can't try it cause I'm at the testing of different rom I make:D
[Touch Cruise ROM Development] rogro82:
GWES using 3.28 ddi
[Touch Cruise ROM Development] bally3:
heres all my collection of ddi's :)
[Touch Cruise ROM Development] rogro82:
Lights.exe using ddi 3.28

Not in the screen ( couldnt resize it any further ) are:

wce_rex.dll

coredll.dll.0409.mui

ole32.dll

mmmap.dll

coredll.dll
[Touch Cruise ROM Development] NikMel:
rogro82,

The test what Neo do is he puts 2 file in the windows directory one named ddi.dll and the other one ddi2.dll.

He starts firts polaris with ddi.dll setted in registry the changes the registry to ddi2.dll and starts again.

What we need to see is that gwes.exe uses ddi2.dll not ddi.dll
[Touch Cruise ROM Development] bvg2006:
Hey guys

sorry to write a useless post :rolleyes:

but i wanted very much to say that you guys are brilliant geniuses and i am following during all the day your posts. This thread is better than any cinema movie :D

Keep on working i believe you guys will find the solution.

I would like to help but i am very useless on that subject :( and i would slow down the progress :o so i will keep following the thread and will not disturb you again

regards
[Touch Cruise ROM Development] NeoS:
Exactly. This way, we can see if GWES.exe uses BOTH files, and what part of them. This could GREATLY help developers in bypassing some issues with different values and instructions which may or may not work.
[Touch Cruise ROM Development] NikMel:
tnx bally3,

well the 3.28 is not NikMel's:D it come from kaiser wwe rom:rolleyes:;)
[Touch Cruise ROM Development] bally3:
side by side those used the same modules.
[Touch Cruise ROM Development] bally3:
Its NikMels as far as I'm concerned buddy.. it was you wo kicked us off with it... btw... how bout giving us the 3.57 to play with... may come up with something interesting.. who knows? ;)
[Touch Cruise ROM Development] NikMel:
did you made the change in registry to ddi2.dll?
[Touch Cruise ROM Development] NeoS:
Wait a minute, so you can "stack" those ddi's? Are they using those modules at the same time?
[Touch Cruise ROM Development] bally3:
nooo.. that was an image of the images rogro gave us put together to show what modules are in each..
[Touch Cruise ROM Development] rogro82:
Ok i added the 3.29 and set up 3.28 ddi as ddi2 and will go and set this in the registry now ;)
[Touch Cruise ROM Development] rogro82:
Device doesnt like the softreset :( will need to restore udk once more :D
[Touch Cruise ROM Development] rogro82:
Can anyone tell which combinations ( and files ) caused the scrolling cause i dont remember after all the tests :D can try that when my device restores...
[Touch Cruise ROM Development] bally3:
3.28 and 3.57 and either kaiser cabs if I remember rightly.
[Touch Cruise ROM Development] rogro82:
One more thing... the not updating problem was also there when i was using an older 6.1 rom in combination with the omnia driver...

The only way I could get them updating was to click on the start button and then they ran a few frames.... but the strange thing was when i started the triangle demo and didnt close it but pressed the x (it would stay opened in taskbar) and then opened one of the d3d samples they ran ok...

Somehow running the triangle file changed something about the focus i think.... maybe this is a thing to look at :rolleyes:

I wonder what has been changed in the new udk images and so on that fixes this problem...
[Touch Cruise ROM Development] NeoS:
Yes, but just ONE ddi.dll. Combined ddi's (either 3.28 or 3.57 as ddi and 3.13 as ddi2) will stop scrolling, but make it stop-n-go.

Alright guys, i'm gonna climb in my coffin for the night ;)
[Touch Cruise ROM Development] NikMel:
Well I'm going to find my bed and see you tomorrow
[Touch Cruise ROM Development] bally3:
I'm afraid this isnt going to solve the issue.. If you look at the text from NuShrike's post:

In layman terms, what the new code does in these files is very similar to pressing buttons to refresh the screen multiple times. The code though using the gpu element UPDATES automatically in essence.

The triangle or any program thats running and keeping the screen refreshed - will make the cylinder in the lights program move but its not proving anything. It will do that with the htc_d3dm.dll or any other file that will allow the program to run.
[Touch Cruise ROM Development] bally3:
Night NikMel.. chin up.. tomorrow is another day :)

I'm out too... night all.. (walks off whistling... "The road is long...." ;)
[Touch Cruise ROM Development] NuShrike:
Okay, some confusion in the tests. It is required you test only the Today screen -- nothing else! Lights.exe does not support rotation, even on Kaiser. This is a program problem, not a driver problem.

There is only one DDI.dll in use at any time. In order to test which DDI is being used (after regedits and soft-reset and such), please check the speed of rotation on the Today screen.

A WM6.0 DDI updates the Today screen after rotation in small rectangles at a time. You can see it updating which is sloppy, and much slower than a screen rotation on a Palm OS device!

A 3.28+ DDI does some tricks and updates the Today screen after rotation in ONE update. There might be a delay (because it's hiding the updates on a backbuffer), but rotation happens in one "swipe" and you don't see individual rectangles updating. It's good to have a lot of different Today items.

This is the DDI test I use as the cutting line between old DDI and new.

Another test is to point your dll browser at DDI and see if the running version is using disptools.dll. If it is, then it is the new DDI.

From here, it is testing why DDI isn't responding to screen updates which requires a modified libgles_cm.dll, or another program which I will provide.

Meantime, a Polaris loaner would be nice, but sounds like you guys are pretty close already. Please forgive my delay in responses due to timezone, and that I broken my foot recently.. :P
[Touch Cruise ROM Development] SomethingWicked:
NuShrike... just pm'd you bout a loaner polaris

Bally3.... i'll hold you to that :)
[Touch Cruise ROM Development] bally3:
You can too my friend :)

And thanks for the swift response to the request... I'm sure this will help us and NuShrike immensely having an actual Polaris to work on!
[Touch Cruise ROM Development] rogro82:
Ok ive been puzzling today... i created an application to make the lights.exe refresh on a timer... and its working :D

The application gets the DC Handle of lights.exe and clears it so that it will redraw itself....

Make sure to first start the lights.exe and make sure you click away all the popups and then run the redrawLights.exe :)
[Touch Cruise ROM Development] rogro82:
Some refinements... this doesnt clear the whole DC just draws a rectangle 2 pixels so that it forces to update the screen...

Timer is set at 10ms...

Somehow the screen isnt forced to update... Anyone has a clue where to look for now? :)
[Touch Cruise ROM Development] NeoS:
Very nice! It works flawlessly! What instructions did you use? I noticed that when my screen went darker just before it goes to blank, the cilinder spinned less smooth.

This is great. Finally some improvement. Great idea rogro!

by the way, it works on all 3D apps, since they all suffer from this issue. But remember folks: it's still no fix!

I'm gonna eat dinner now, but i'll be chowing it down like a mofo to be back so I can test more stuff out ;)
[Touch Cruise ROM Development] pananza:
With the timer set to 10ms, it should refresh 100 times pr. second, or at 100 Hz. Even if earch render takes 0ms this means a theoretical maks FPS of 100. Still Triangle claims an FPS of over 200.

Something is strange here :) And frankly I cant see the demos running any smoother than with the Omni non-hardware drivers.
[Touch Cruise ROM Development] rogro82:
Settings the timer to 1 ms orso doesnt speed things up because the code also need to hide the actual exe each time and draw something on the dc or clear it....

So the speed you are seeing is not the actual speed it could run... This is just to show everyone "that" it actually runs... and not at 5fps or so...

So dont make any judgements based on this. This was just a thing I had to do when i had my lunch at work :D Got tired of pressing the start button :D

And indeed this is not a fix but it does point us to a direction... Main problem is that somehow the graphics are not invalidated... the actual drawing process happens but it isnt painted to screen. Thats where my app comes in... it drawes something in the same dc and that makes it update the screen.
[Touch Cruise ROM Development] bally3:
cbandarrinha, I apologise unreseveredly my friend..

I did not see the your post as I had already switched off and gone to bed and the excitement and volume of posts yesterday meant I didnt read them all so missed your posting.

We appreciate all the help we can get, and after making an appeal for others to join in I would not want you to think we were ignoring you.

If you are on today, please come back and join in. With regards to the files you asked for, I posted the ddl's in this post yesterday: http://xdaforums.com/showpost.php?p=2682442&postcount=705

It appears now from NuShrike's advice that ver 3.28 is the one we should stick to so I would concentrate on that one.

NikMel posted the kaiser ffiles on here: http://xdaforums.com/showpost.php?p=2681320&postcount=645

NikMel also posted a process viewer you can try to see what the files are doing that may be worth your while trying as we had difficulties getting it to work http://xdaforums.com/showpost.php?p=2681722&postcount=668

Let us know how you get on. I will PM this post to you just to be sure.

In life sometimes in the pursuit of ones goals, we forget the ones who helped achieve them. Let us strive not to be one of them.
[Touch Cruise ROM Development] bally3:
oh ye none-believer pananza :p

you wont be happy until we have Halo 3 rendering smoothly on the Polaris will you? lol
[Touch Cruise ROM Development] bally3:
Rogro, a class act.. you definitely get my vote for the most spontaneously creative thinker here... (but I dont think we have an Oscars for xda-dev ... maybe we should) :p

I'm testing this now, looks like you're on the right track though.. let me do a few tests and I'll post my thoughts...
[Touch Cruise ROM Development] NeoS:
I'm removing the ddi2.dll from my Polaris, since it somehow triggers my device's screen to wake up. Does anyone experience the same?
[Touch Cruise ROM Development] bally3:
I dont think anyone is doing that anymore..if you are then you should remove the second file.

Noes2007, any luck with the Dutty rom? I wanted to see what files are in there.. dont forget the xip and the wce_rex.dll file.
[Touch Cruise ROM Development] NeoS:
Well, i dumped the Rom, but i can't seem to find the wce_rex.dll nor the XIP. Any idea where i should look for when dumping the ROM?
[Touch Cruise ROM Development] bally3:
NikMels your man for the rom.. Wonder where he is.. <shouts> NIKKK......
[Touch Cruise ROM Development] NuShrike:
We tried that on the Kaiser. Doing InvalidateWindow() will do it too but causes that fierce white flickering (as in the first Triangle Youtube) if you have a window background/color brush set.

Try this: ExtEscape(GetDC(NULL), 0x186ab, 0, NULL, 0, NULL);

First param should be DC of the target app's window: NULL if app itself, or your way to get it externally.

This is a direct call to the 3.28+ DDI to force an update independent of an IRQ. We baked it into a libgles_cm.dll at the eglSwapBuffers() point for the first HTC-CA driver. This results in high FPS, but then slows down a lot later (from GLBenchmarks).

I'm still waiting for a response about if DDI.dll is using disptools.dll, but I'm going to assume it true if you are using the htc_d3dm.dll driver and not the Omnia driver.

NeoS2007: I think the Kaiser has LCD wakeup or shutdown issues, so that behavior may be normal.
[Touch Cruise ROM Development] NikMel:
Hello there :)

Which version of dutty's rom do we have to download?

At the moment I have Duttys_Diamond_Rom_Ruu_Signed_5.2.1588_1.65.16.25_V1.zip
[Touch Cruise ROM Development] NikMel:
The original ddi.dll and the ddi.dll 3.28 both using disptools.dll and in both cases (htc_d3dm.dll driver and Omnia driver)
[Touch Cruise ROM Development] NeoS:
Me too, and dumped. But where do i find the XIP?

@ NuShrike: the ddi's were both used. Don't know for sure it was disptools.dll who used both though. Isn't the dependancy list helping with that? Dependacy walker says it's used by ddi.dll v3.28.
[Touch Cruise ROM Development] NikMel:
I'll dump the xip too in a minute
[Touch Cruise ROM Development] bally3:
Rogro, hope you getting this mate..
[Touch Cruise ROM Development] bally3:
Hi NuShrike, Looks like Rogro's gone offline.. are you able to do something here please?

I assume the instructions above need to be added to the code in the redraw file which is well outside our experience I'm afraid.
[Touch Cruise ROM Development] NeoS:
Well, i guess you'll have to edit libgles_cm.dll and rename it to libgles_cF.dll, then edit the registry at all dependancies for it to work. Right?
[Touch Cruise ROM Development] NikMel:
dumped rom and xip but the only hard think is to include the xip in to polaris.
[Touch Cruise ROM Development] NikMel:
NeoS2007 its not a registry think but driver should be made dependent of the new dll.
[Touch Cruise ROM Development] bally3:
Sounds about right.. but we still dont know whether its the wce_rex.dll in Polaris thats causing this... NikMel, what would happen if you replaced the Kaisers/KS520 wce_rex.dll with the Polaris one?
[Touch Cruise ROM Development] NikMel:
First I have to fully port xip of kaiser to polaris then we can tell.
[Touch Cruise ROM Development] bally3:
So what does that entail?

I was thinking along this line last night after you told me about xip and the polariis having a wce_rex.dll file.

is it simply a case of copying the required files into the Polaris xip and renaming as required?
[Touch Cruise ROM Development] NikMel:
No:)

This file must have the right memory address.

And this is dificult because the file size is not the same