OpenGL Driver - Touch CDMA Windows Mobile ROM Development

This is an unfinished project. These have been worked on and found to be the best for the Vogue and closest to OpenGL. I'm wondering if we could put our heads together we could get this thing fixed and be able to use all these OpenGL programs.
Here are some external links to the DLL:
http://www.megaupload.com/?d=DSXUMM2S
ftp://up.ppcgeeks.com/Vogue/Users/Whosdaman/opengl_ppc_software.zip
http://download.ppchaven.com/CDMA Devices/HTC Vogue/Users/Whosdaman/opengl_ppc_software.zip
http://rapidshare.com/files/243963650/opengl_ppc_software.zip
All you have to do is put the file into "Windows" folder on your device.
Here is the GLBenchscore:
Code:
OpenGL ES Environment Variables
GL_VENDOR Hybrid Graphics, Ltd.
GL_VERSION OpenGL ES-CM 1.1
GL_RENDERER Gerbera 2.0.6 (non-commercial)
GL_EXTENSIONS GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_read_format GL_OES_query_matrix GL_OES_compressed_paletted_texture GL_OES_matrix_palette GL_OES_point_sprite GL_OES_point_size_array GL_OES_draw_texture GL_OES_matrix_get GL_OES_swap_control GL_OES_render_texture
GL_RED_BITS 8
GL_GREEN_BITS 8
GL_BLUE_BITS 8
GL_ALPHA_BITS 0
GL_DEPTH_BITS 16
GL_STENCIL_BITS 0
GL_SUBPIXEL_BITS 4
GL_MAX_LIGHTS 8
GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 6408
GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 5121
GL_MAX_CLIP_PLANES 6
GL_MAX_MODELVIEW_STACK_DEPTH 16
GL_MAX_TEXTURE_STACK_DEPTH 2
GL_MAX_PROJECTION_STACK_DEPTH 2
GL_MAX_TEXTURE_SIZE 1024
GL_MAX_TEXTURE_UNITS 2
GL_MAX_PALETTE_MATRICES_OES 9
GL_MAX_VERTEX_UNITS_OES 4
GL_MAX_VIEWPORT_WIDTH 2048
GL_MAX_VIEWPORT_HEIGHT 2048
GL_NUM_COMPRESSED_TEXTURE_FORMATS 10
GL_ALIASED_LINE_WIDTH_MIN 1
GL_ALIASED_LINE_WIDTH_MAX 64
GL_ALIASED_POINT_SIZE_MIN 1
GL_ALIASED_POINT_SIZE_MAX 64
GL_SMOOTH_LINE_WIDTH_MIN 1
GL_SMOOTH_LINE_WIDTH_MAX 1
GL_SMOOTH_POINT_SIZE_MIN 1
GL_SMOOTH_POINT_SIZE_MAX 1
EGL Native Platform Graphics Interface
EGL Vendor Hybrid Graphics, Ltd.
EGL Version 1.1
EGL Extensions
EGL Selected Configuration EGL_CONFIG_ID: 53
EGL_BUFFER_SIZE: 32
EGL_ALPHA_SIZE: 0
EGL_BLUE_SIZE: 8
EGL_GREEN_SIZE: 8
EGL_RED_SIZE: 8
EGL_DEPTH_SIZE: 16
EGL_STENCIL_SIZE: 0
EGL_CONFIG_CAVEAT: 0
EGL_LEVEL: 0
EGL_MAX_PBUFFER_HEIGHT: 2048
EGL_MAX_PBUFFER_PIXELS: 4194304
EGL_MAX_PBUFFER_WIDTH: 2048
EGL_NATIVE_RENDERABLE: 0
EGL_NATIVE_VISUAL_ID: 0
EGL_NATIVE_VISUAL_TYPE: 0
EGL_SAMPLES: 1
EGL_SAMPLE_BUFFERS: 0
EGL_SURFACE_TYPE: 7
EGL_TRANSPARENT_TYPE: 12344
EGL_TRANSPARENT_BLUE_VALUE: -1
EGL_TRANSPARENT_GREEN_VALUE: -1
EGL_TRANSPARENT_RED_VALUE: -1
Device Information
Device Name VOGU100
Device ID 413838374631
Platform Name PocketPC
Platform ID 3
OS Windows Mobile
OS Build 20748
OS Version Major 5
OS Version Minor 2
CPU Vendor SAMSUNG
CPU Name
CPU Core MSM7500-400MHz
CPU Instruction Set 0
CPU Type 2577
Reported CPU Architecture 5
Number of CPUs 1
Total Memory 101556224
Memory Page Size 4096
Screen size 240 x 320
System Color Bits 16
System Colors 65536
Original Post: http://forum.xda-developers.com/showthread.php?t=440758&highlight=opengl+vogue

The above posted OpenGL driver is not hardware accelerated. Its all software based. Like many already know I'm working on getting Hardware accelerated OpenGL + D3DM on our Vogues.
What I've got done so far:
1. Have the chipset documents including software interface manual
2. Written ddi wrapper to fill missing functions
3. Ported needed libraries
What I need:
1. CDMA Debug Tools (WDM is trying to get ahold of them)
2. The more help I can get the faster this will get done (device driver programmers)

We also need the Verizon Diamond Stock ROM....
If someone is willing to go into a dealer, test the phone out and dump the rom....we can rearange it to make it as easy as possible.
(Or even buy the phone dump it then take it back.)

no diamonds available in any of the stores around me :-(....will scour the web today to see if i can find anything.

Nice to see ya around Whosdaman. Its been a while.

Yea, I'm sorry....I use PPCgeeks most of the time and I only look in development section here :'(
But I think I'm going to start balancing out the 2 now

Hey I dont know much about device driver for mobile products, but I have done device driver programming for linux/windows (Nvidia mostly) but willing to help out if I can understand.

If anyone has a contract renewal, the whole vogue community would be greatly appreciated if someone can go and get the Verizon Touch and post the rgu.
I know you will probably end up wanting the pro, and Verizon will allow you to exchange the phone for a couple weeks... so you could literally go there, get the phone, get the rgu, and then take it back to the store and exchange it at no cost.

Sorry to sound a little bit ignorant. I tried to do some digging on my own but was not able to find a suitable answer.
I know that the driver which HTC included with the vogue was extremely insufficient. However...
How is the OpenGL driver better?
and in Whosdaman's first post he states that we would be able to use "all these OpenGL programs"
What are some opengl programs ....
Thanks
Focusedonsound

focusedonsound said:
Sorry to sound a little bit ignorant. I tried to do some digging on my own but was not able to find a suitable answer.
I know that the driver which HTC included with the vogue was extremely insufficient. However...
How is the OpenGL driver better?
and in Whosdaman's first post he states that we would be able to use "all these OpenGL programs"
What are some opengl programs ....
Thanks
Focusedonsound
Click to expand...
Click to collapse
1. TouchFlo 3D (M2D uses 2d rendering)
2. Lots of games (any requiring 3d accelleration)
3. Opera 9.7
4. Will help video playback ******* We need QTV for this to realize it's full potential, but one thing at a time
PLEASE only post here from now on if you have something to add to the thread
The purpose of this is too provide NFSFAN with help so he doesn't have to be a "one man army" trying to get this to work.
If you have questions about what OpenGL is or what it would do for our device........use google!!!!! There is LOTS of information out there. Or check out the video of NFSFAN's TouchPro.

NFSFAN
Is this what you need?
Tile: MSM72xx chipset-level configuration tools
http://forum.xda-developers.com/showthread.php?t=451646
EDIT: These are for GSM, the user said he has the toolkit for CDMA, I asked him to post it in that thread (see page 2)
quote:
there is CDMA debugtools set, grab it from any cdma beta rom (maybe posted on ppcgeeks, if not, i can upload it here), similar to gsm but for example the AT tool differs (UNI_AT will not work on CDMA) etc etc.
Click to expand...
Click to collapse

jblade said:
If anyone has a contract renewal, the whole vogue community would be greatly appreciated if someone can go and get the Verizon Touch and post the rgu.
I know you will probably end up wanting the pro, and Verizon will allow you to exchange the phone for a couple weeks... so you could literally go there, get the phone, get the rgu, and then take it back to the store and exchange it at no cost.
Click to expand...
Click to collapse
No, not the rgu, the drivers (DLLs)

margosmark said:
Hey I dont know much about device driver for mobile products, but I have done device driver programming for linux/windows (Nvidia mostly) but willing to help out if I can understand.
Click to expand...
Click to collapse
That be great, send me a PM. Mobile device driver programming is very similar to PC driver programming.

Prolly a dumb question, but did ya'll put a request for the stock vzw diamond rom in the diamond upgrading or development section of the forum?

We have requested the Verizon ROM, and Cross off CMDA Debug Tools cause we got them

Whosdaman said:
We have requested the Verizon ROM, and Cross off CMDA Debug Tools cause we got them
Click to expand...
Click to collapse
Hopefully off the forum I asked for on!! (Just so I feel useful, WDM your always 1/2 a day ahead of me.
Here are the cdma tools incase anyone else can put them to good use:

, I look all over
UPDATE: NFSFAN is writing the wrapper for the ddi, we are hoping that works, if it does not there is another route, but it is harder....
Still in search for more developers and Verizon Diamond ROM

http://forum.xda-developers.com/showthread.php?t=238945&highlight=msl+grabber
This is how to dump on the go

IMPORTANT: It seems that someone is impostering me to NFSFAN. He added NFSFAN on MSN and threatened him and said some very weird things. I want this person to know that I know why he wants to imposter me, (of course who wouldn't, I'm da man ), but going as low as to threaten a very good friend of mine and say it's me doing it is just not cool at all. This was a failed attempt on your part to try to turn me and NFSFAN against each other. His msn was [email protected], so if this person talks to anyone and says they are me, they are lieing. It seems that they are saying they are DZO then later sayingt hey are really me, then he is trying to frame NFSFAN for stealing everyone elses stuff and being the reason why OpenGL hardware acceleratation for the Vogue is being delayed while this is the most untrue thing becaus ehe is the only one keeping this alive by being able to write drivers for our device. I am just helping him to my full extent. So please stay away....
Thank you,
Korey

It's a conspiracy......

Related

.Net CF and SDE

Has anyone ever successfully installed a .NetCF on an XDA?
Am i so stupid and the XDA is one of the new .Net-build-in PPC's?
also i tryed for a whole day to connect to my XDA with my VS.Net2003 via activesync, as you may have guessed without any luck.
I dont want to use eVC, when the next generation of Languages(C#) and IDE's is already at hand
OK,
i spend the last 3 days looking for a solution and i think i finally found the reason. As far as i understand Microsoft, the Phone edition of PocketPC 2002 does not support the .NetCF. :x
But, n developer conference 2002 in London i know that i was in a "hands-on-lab", where i had a first look at the .NetCF - with a Phone-PPC (prototype by Compaq, if i remember correctly)
P.S.: Could please anybody say something about that, even if it is: "Yes, Ur right - no .Net for XDA" or (better) "You are just to stupid to install.."
thanks
Now i'm even more confused:
I took a look at my PPC-Version string and it say's:
3.0.11171 Build 11178
witch means, that it's no Phone-Edition (has Version number 3.0),
that means it should be compatible to install .NetCF.
Yet i was not able to install and im getting a little angry (but cannot decide if i should be angry over me or O2 or Microsoft).
I really was looking forward to an opportunity to use C# in a real application and not just that sample-code-then-garbage projects.
Frost_28 said:
Now i'm even more confused:
I took a look at my PPC-Version string and it say's:
3.0.11171 Build 11178
witch means, that it's no Phone-Edition (has Version number 3.0),
that means it should be compatible to install .NetCF.
Yet i was not able to install and im getting a little angry (but cannot decide if i should be angry over me or O2 or Microsoft).
I really was looking forward to an opportunity to use C# in a real application and not just that sample-code-then-garbage projects.
Click to expand...
Click to collapse
Shouldn't be a problem to use .Net CF on the XDA. A friend of mine has been doing it for months. Seems like you have a really old ROM though, ever thought about upgrading?
thanks for the reply.
My rom version is 3.14.16 GER, this should be the latest (German) Version.
I did it! Huhu, yeah!
For everyone else having problems:
with Visual Studio.Net 2003(BETA) installed,
take these files:
C:\Programm Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\arm\*.CAB
and copy them to the Temp directory on your device, then simply execute them.
It's as easy as this and i can't imagine, why i had problems in the first place
That's odd - the VS.Net 2003 beta just downloaded the .NetCF CAB direct my XDA the first time I hit deploy with the Pocket PC selected instead of the emulator - no problem, no fuss.
However, note this: I just tried downloading the official .NetCF deployable runtime from the MS site and when I run it, it says that my device (the XDA) isn't supported.
However, I see you've already found the solution - just copy the ARM CAB to the XDA and execute it - it installs in seconds with not so much as a single question.
Good luck with the CF - we've been using it for months and it's brilliant!
MikeS.
Thank you - and you're right: it is great!
I work with it for about 2 weeks now and have already achieved more with it, than i would have with eVC in 1 month. Also is C# a really cool language. It's fun to use it.
However, that VS2003Beta didn't deploy the CF to my XDA automatically is because i (still) can't get the connection over ActiveSync work. That also means, that i can debug only with the emulator - without a radio.
Until now it was no real problem, i just started with the non-phone-part of my App. Right now i started the development of the Phone-part and i have to guess some functionality or just use so many try catch-blocks that it slows my development a bit down.
Any suggestions what i could do to get the connection running?

Delphi and WM5

I was looking for an answer for few months, and i'm confused right now...
Question is, would it be possible to develop an application for WM5 using Delphi, if so, which version of delphi i need, what kind of additions and any important info for me...
It looks like an easy topic but after going through many forums and so, i don't really know an answer, some people claim it's not possible, some talk about some foggy solutions... i just need a clear answer and i believe some of you guys know it... please share
latest delphi would prob support .net2 using compactframework for wm2005
i'm trying to get delphi8 or 2005, just wasn's sure it makes any sense. woult delphi itself do it, or any additional software is needed?
1 of 2 platforms need to be supported by delphy for it to work
1 is arm cpu
other is .net compact framework
no other way for delphi to make bins which works on a pocketpc
finally I'm getting somewhere so delphi CAN support arm directly;] how do i make sure of it? is it a matter of delphi itself or come plugins for a compiler, etc...? thanks, I already feel more confident about it
Current versions of Delphi (BDS2006 or Turbo Delphi) can produce native code only for 32 bits x86 CPUs, so it does not natively support ARM CPU.
On the other hand it has (limited) support for .NET Compact Framerwork 1.x so it can be used to develop applications that runs on Windows Mobiles.
Next release will add (better) support for NET Compact Framerwork 2.
This is an application I developed using BDS2006:
http://forum.xda-developers.com/showthread.php?t=275577
More information:
http://bdn.borland.com/article/33507
http://bdn.borland.com/article/33798
oruam57 said:
Current versions of Delphi (BDS2006 or Turbo Delphi) can produce native code only for 32 bits x86 CPUs, so it does not natively support ARM CPU.
On the other hand it has (limited) support for .NET Compact Framerwork 1.x so it can be used to develop applications that runs on Windows Mobiles.
Next release will add (better) support for NET Compact Framerwork 2.
This is an application I developed using BDS2006:
http://forum.xda-developers.com/showthread.php?t=275577
More information:
http://bdn.borland.com/article/33507
http://bdn.borland.com/article/33798
Click to expand...
Click to collapse
Ok, so i menaged to get myself delphi 2005 and i try to create my first hello world app for ppc. what do i need? I go for Delphi .NET projects > Windows forms application, is it correct? when i compile, it will run on wizard, but create error message. Could you point me to some guide for guys like me? thanks...

OpenGL / D3D attn:NFSFAN

Hi all, I have been following HTCclassaction etc and have done extensive googling to find out the state of an open GL driver for our Vogue (MSM 7500).
The closest hope I had is NFSFAN's roms and post's at PPCHaven.
NFSFAN, you stated you are working on this, any updates so far? Also when (not if, I greatly respect your amount of talent) you finally come up with a workable driver will you release it to the comunity as a whole as well as in your ROMS?
Thanks for the update, and thank you very much for all your work to date. It is very much appreciated.
I found this document on BREW forums (Qualacom). It is about software solutions for msm7500 chipsets regarding openGL es.
It's a little over my head but maybe someone on here can use it.
I can't upload it because it is over the forums limits. I've never used rapidshare or megaupload before but i'll try. Here is some previews of the header so you know what it's about:
3D Performance
Optimization
Angus Dorbie
Staff Engineer (3D)- Gaming Technologies Group
MSM7500 – Major Carriers FFAs NOW
MSM7500 Graphics Pipeline Overview
• Licenced integrated OpenGL® ES solution
• Hardware accelerated vertex and pixel processing
• Integrated in MSM processor
• OpenGL ES 1.0 Common profile + all major 1.1 features
• Extension: OES_vertex_buffer_object,
EGL_QUALCOMM_color_buffer, ATI_TC Compression, Texture
Combiners, Texture Crossbar, Alternative Texture
Coordinate Formats, Matrix Palette, DrawTexture, Point
Sprites
• Java JSR-184, D3D, SKT’s GIGA, HI’s V4, Superscape’s
Swerve APIs support implemented on top of OpenGL ES
pipeline
etc etc,
shows some neat graphics of what can be attained, detailed analysis of the chipset etc.
Well that was easy, here it is:
http://http://rapidshare.com/files/182666655/Prog-401_Dorbie_v05.pdf.html
Couldnt open the page. Can you try again?
Ooops, first time radipshare user mistake.
edited the link, it should work now I just tested it myself.
I reached the d/l limit so I will try in about 15 minutes. I am not a developer, but I am really interested in getting 3d workiong on our phones and am feeling inclined to learn alot and then perhpas get involved via htcclassaction.org. I'm more of an activitst than anything else! But I do really appreciate everything that people do on here and am more than happy to be a guinnea pig with my phone.
No, fully accelerated Hardware Direct3D is not possible on the Vogue. The DDI doesn't have the required calls it takes for Hardware Accelerated D3D. The closest I ever got was porting standalone OpenGL and a faster Software Accelerated D3D driver, but it is nowhere near the performance of a true Hardware D3D driver.
"The closest I ever got was porting standalone OpenGL and a faster Software Accelerated D3D driver"
That's still closer than most people have ever gotten. The only phone htcclassaction has a driver for is the Kaiser. You seem to be the only one that was able to develop this for the Vogue. The effort is appreciated, I remember when you were the only Dev interested in releasing Bell ROMS.
Any chance of releasing the 2 (your stand alone OpenGL and software driver) to the community as cab files?
Thanks again
Jason
You will need a patched XIP with a diamond wce_rex.dll and mmmap.dll. Then you will need clkregim.dll in the ROM. I can't release a community pack, because I doubt any other vogue rom that you will find other than mine has these files.
Thanks for the reply,
Guess I might have to flash again sometime soon.....Darn!!

Thoughts on Unlocking custom GPU programs...

Hey,
Currently I've been working on a game for the Windows Phone but a couple things have really irritated me during porting, one of which is they don't allow custom GPU programs...which is very stupid considering there basiceffect class is completely useless.
The Windows Phone has some awesome hardware and it sucks that its being restricted by the dev team.
So right now I'm looking at microsoft.xna.framework.graphics in reflector(the GAC version not the reference version). The effect class itself is NOT marked as security critical, but the constructor is(because it requires compiled GPU bytecode to be passed down), so the logical why would be to load it via the contentmanager, but the damn thing spits out("You are unable to compile custom effects for winphone7).
My question is does anyone know where that error is actually located?
It looks like XNA is using a custom content importer to import some kind of template called "BasicEffectReader" , and "BuiltInEffectReader" . I don't know if I'm allowed to post reflected code on here, but if you open up BasicEffectReader.cs youll find that it creates a "cloned effect" from the BuiltInEffectReader.
My other questions are, is the bytecode for Windows Phone 7 different from the 360/Windows(I'd assume so), and if so is XNA actually compiling bytecode on the fly, is it using a template for basiceffect?
If it is requires its own bytecode, what kind of methods do you guys think would be feasible to be able to create custom effects? The graphics card on the phone should follow the DX9 specs, unless its a 9.5 hybrid like the 360.
EDIT3:
Alright it looks like if you compile it on another platform, strip out the contentmanager stuff at the start of the file, it will load(passes all the header checks) but it fails because UnsafeNativeMethods.Effect.GetGlobal(graphicsDevice).CreateEffect(pEffectCode, ((uint) effectCode.Length) - num2, graphicsDevice.pComPtr, out effect_desc); returns a invalid handle...
Very surprised they don't let you use custom GPU shader programs.
Yeah I know :/ anyway I kind of got a custom program loaded, but I'm not sure about the OpCodes, so I don't know how to customize it yet.
_effect = new Effect(device, Code);
static byte[] Code = new byte[] {
0xcf, 11, 240, 0xbc, 12, 0, 0, 0, 0, 0, 0, 0, 1, 9, 0xff, 0xfe,
0x62, 0x61, 0x73, 0x69
};
Click to expand...
Click to collapse
First Int(4 bytes) are the XNA header magic number,
Next Int(4bytes) byte offset to the code(from start of the buffer).
(Offset 12) - 1, 9, 0xff, 0xfe - FX Magic Number dx9 i believe.
Next 4 bytes are the IDENTIFIER for the effect. basi <-- basiceffect, skin <-- skinable effect etc.
Click to expand...
Click to collapse
Also what version of Direct3D is the phone running? Is it a 10/11 hybrid? cause in XNAFrameworkCore.dll it references D3D11CreateDeviceAndSwapChain and it also references CreateDXGIFactory1
Has anyone got PInvoke to work? The only way to get access to the HLSL compiler for the phone is through non-exposed API's in XnaFrameworkCore.dll.
When it creates the effect it looks for the unique four byte effect iden to create the shader internally(D3D_Effect_CreateHandle in XnaFrameworkCore.dll). So to get access to the HLSL compiler and compile our own effects it looks like we have to call some of the non-exported API's from the DLL. Which shouldn't be a problem if someone has found out how to get PInvoke to work( Not the COM dll hack but actually calling PInvoke. ).
EDIT
For anyone thats interested here are the different ID's(remember the hex is actually in reverse order):
.text:1003DF68 mov eax, [ebp+var_4]
.text:1003DF6B cmp eax, 69727073h
.text:1003DF70 jz loc_1003E086
.text:1003DF76 cmp eax, 69736162h
.text:1003DF7B jz loc_1003E05F
.text:1003DF81 cmp eax, 6C617564h
.text:1003DF86 jz loc_1003E038
.text:1003DF8C cmp eax, 6D766E65h
.text:1003DF91 jz short loc_1003E009
.text:1003DF93 cmp eax, 6E696B73h
.text:1003DF98 jz short loc_1003DFD7
.text:1003DF9A cmp eax, 74736574h
.text:1003DF9F jnz loc_1003E0B5
Click to expand...
Click to collapse
crozzbreed23 said:
Has anyone got PInvoke to work? The only way to get access to the HLSL compiler for the phone is through non-exposed API's in XnaFrameworkCore.dll.
Click to expand...
Click to collapse
A number of us have tried to do it, but have failed. The correct path is probably '\Windows\X.dll.' I haven't tried that yet. It's probably worth mentioning that even if you do get it working, Microsoft has sworn to reject any app that uses PInvoke.
I know the app would be rejected, I only want to build a portfolio project that I can take with me to a job interview.
Even though a lot of the HLSL code is in XnaFrameworkCore.dll, there is a d3dcompiler dll(which is compiled against D3D10). I know this is probably something that has been answered before, but is there a method for opening up the WM ARM dll's in IDA?
My thinking is this, we can launch executables but to get access to the OS dll's we have to build valid OS libraries. I wanted to try the COM dll method, but I don't have the phone yet and the emulator obviously won't load COM dll's.
If we can get as far as calling LoadLibrary than we can call:
D3D11CreateDeviceAndSwapChain
and
CreateFactory1
Click to expand...
Click to collapse
Than ASSUMING D3DCompiler.dll works(its not referenced in the XNAFrameworkCore except for loading in the HLSL sig), we can load custom GPU programs(that are HLSL based not effect based which is just fine...) as well as exposing more of the Direct3D API.
The only reason why I want all the graphics API's is so I don't have to create a portfolio project with baked lightmaps with bumpmapping built in. Its such a shame that the GPU on the phone is going to waste because they designed a very restrictive effect interface :/.
Its a pain but it has been but there are lots of reason why they are doing that. for one when the chassis requirements where released the minimum requirement is that the gpu had to do opengl. xna is built for direct x and hence the problem, some stuff had to be ported to opengl for it to work properly, the problem wiht this is that the new chips now have directx gpus with them, and i am not sure but i believe none of the wp7 phones that have been released has any of the directx acceleration. Becuase of this and compatibility with the later phones (atleast up to next year) some stuff had to go, custom shaders for one. But i believe if you work close with microsoft they actually give you the the ability to create custom shader. I have not played much with xna for windows phone, just on xbox so i am not to sure what i can do and not do. But your post was enlightening and i will go back to it after i finish my few apps.
Yeah your right. I just read up that they are using the ADRENO 200 GPU(http://developer.qualcomm.com/dev/gpu/processors), which supports opengl es, and "Direct3D Mobile" whatever that means. But that still doesn't explain why they didn't allow custom GPU programs because everything is still being compiled down to bytecode. If the GPU can do per-pixel lighting it is more than capable of bump mapping that reacts to lighting which is why I really want to see if I can maybe extend one of the .net effect classes, but I still haven't figured out if that would mess with any of the internal core functions.
But as I did with the XNA 360 code, I got access to the UnsafeNativeMethod classes inside the framework dll that expose all the native interfaces to the core. So basically I just skip passed all the XNA init code. The only thing that creates a problem with on the phone is that they use a "messaging service" to communicate with the framework, they build a byte[] array in the .NET code and pass it to the framework which parses it and does whatever it needs to do. On the phone, pointers aren't allowed, but I might just be able to use reflection to get the messaging code.
Also I thought of something, sense the GPU supports OpenGL ES and I know that someone has been able to create a window(the FS example on Chris's site), I wonder if we create a COM dll and link against the OpenGL ES library that we can just use OpenGL rather than the "non finished" d3d api? I would try that myself but I'm not going to be able to get the phone for a couple weeks and I havent found a way to get COM dll's to work in the emulator :/
Yeah your right. I just read up that they are using the ADRENO 200 GPU(http://developer.qualcomm.com/dev/gpu/processors), which supports opengl es, and "Direct3D Mobile" whatever that means. But that still doesn't explain why they didn't allow custom GPU programs because everything is still being compiled down to bytecode. If the GPU can do per-pixel lighting it is more than capable of bump mapping that reacts to lighting which is why I really want to see if I can maybe extend one of the .net effect classes, but I still haven't figured out if that would mess with any of the internal core functions.
But as I did with the XNA 360 code, I got access to the UnsafeNativeMethod classes inside the framework dll that expose all the native interfaces to the core. So basically I just skip passed all the XNA init code. The only thing that creates a problem with on the phone is that they use a "messaging service" to communicate with the framework, they build a byte[] array in the .NET code and pass it to the framework which parses it and does whatever it needs to do. On the phone, pointers aren't allowed, but I might just be able to use reflection to get the messaging code.
Also I thought of something, sense the GPU supports OpenGL ES and I know that someone has been able to create a window(the FS example on Chris's site), I wonder if we create a COM dll and link against the OpenGL ES library that we can just use OpenGL rather than the "non finished" d3d api? I would try that myself but I'm not going to be able to get the phone for a couple weeks and I havent found a way to get COM dll's to work in the emulator :/
You can pretty much give up on that one, the COM dlls for the phone are ARM assembly, but the emulator runs on x86. Not likely to work.

Info about the Current state of Java and OpenGL on Windows RT (8/8.1)

Hello my name is Filiph Sandström but you can call me filfat. in this thread we are going to talk about the current state of Java and OpenGl on Windows RT(8/8.1),but before we start i just want to say thank you for clicking on this thread and if it helped you remember to click the "Thanks" Button! Alright with that cleared out, lets start! :laugh:
Updated: 2013-11-18
Java
Java is a programming langue that develops by Oracle with the idea of one similar langue for all electronics like a dishwasher or a Microwave.
Currently java does NOT exist on Windows RT, but there is a workaround available. The workaround is called Ikvm.
Ikvm is a Java emulator developed in .NET/C# to migrate an existing Java database application to .NET langue.
however to our advantage it can be used to run *almost* any Java application that doesn't require a 3rd-part library like "lwjgl" or similar.
I'm sure that there's a lot of guides out there on how to run application but i will give you a example anyways:
Run_Java.bat
Info:
Code:
This Example executes the jar file "helloworld.jar"
Code:
Code:
@ECHO OFF
ikvm -jar helloworld.jar
To Summarize: We now have basic Java application's running on our Windows RT device, but what if we want to play a game,
or do something that require OpenGL. well here is where the OpenGL section steps in.
OpenGL
OpenGL is a way of rendering not just 3D things but about everything, it is currently the most widespread 2D and 3D API(application programming interface).
It is used in many games and application. Sadly Windows RT do not have support for this as the desktop mode was never intended to use to other things then Office and well, maybe paint .
So what do we do in a situation like this, where most of the games and applications doesn't run because of OpenGL.
We write a OpenGL to DriectX Warpper*. so in short running games like Minecraft is possible BUT it require a OpenGL to DriectX Wrapper which currently does not exist. so you CANNOT run Minecraft or any other Game/Application that require OpenGL yet...
To Summarize: We do know a possible way to run OpenGL on Windows RT however no one as of yet have taken that mission and started working on a OpenGL to DriectX Wrapper. We would also need to modify Ikvm to be able to load external library's but that's a whole other story.
Ending
Thank you for reading, and as I said in the beginning of the post "if it helped you remember to click the "Thanks" Button!".
Also, i will be adding more info when I got time or when things gets release. See Ya! :laugh:
*When i say wrapper I mean a translator that translate OpenGL code to DirectX code for the CPU
Comming Soon...
Reserved
Sources
Sources
Java
Ikvm
OpenGL
A Word To A Moderator
if you think this thread is useful consider making it a sticky
I thought we already had an OpenGL wrapper for RT. At least that's what I believe is used to make Quake 1 and 3 run:
http://forum.xda-developers.com/showthread.php?t=2312019
http://forum.xda-developers.com/showpost.php?p=42338198&postcount=1
Yeah, there already is an OpenGL>DX wrapper. It wasn't used for quake 1 though, the quake 1 RT port is based on DirectQ which had its renderer rewritten for DirectX, was used in Quake 3 I think.
IKVM cannot load LWJGL or other similar libraries on x86. ARM isn't the limitation, OpenGL with the wrapper potentially wouldnt be the limitation either. IKVM itself is. Its an old project and if it was ever going to get native code execution it would have by now.
Although I think java applications on IKVM can make use of .NET extensions which in turn can make use of native code so one could potentially write an IKVM port of LWJGL which on the java side exposes the same API so minecraft etc couldnt tell the difference, but under the hood taps into .NET for rendering. That would probably result in a bit of a mess which may not actually run in the first place. The efforts put into making and debugging such a thing would be better put into porting the jvm itself.
Unless we got a native JVM on RT, I dont think we will see minecraft. Even if you could get LWJGL running, IKVM is just way too slow either way and as it is, the surface is quite a slow device, minecraft on a real JVM on ARM will still be laggy.
Just tossing this out there but what about compiling OpenJDK for arm? It's a pretty active project
http://openjdk.java.net/
I'm a software developer and will try and give this a shot over my Thanksgiving / Christmas downtime. I have an Asus VivoTab still on Win 8 while I wait for the 8.1 jailbreak. Guess Im starting to get bored and kind of ticked that the microsoft store sucks.
Edit:
Added info for reference later
Minecraft Ubuntu ARM
Edit 2:
Build Instructions
http://lwjgl.org/
Webos running guide
Thexfactor2011 said:
Just tossing this out there but what about compiling OpenJDK for arm? It's a pretty active project
http://openjdk.java.net/
I'm a software developer and will try and give this a shot over my Thanksgiving / Christmas downtime. I have an Asus VivoTab still on Win 8 while I wait for the 8.1 jailbreak. Guess Im starting to get bored and kind of ticked that the microsoft store sucks.
Click to expand...
Click to collapse
Then check developement forum and forget about it. There's no mingw/gcc targetting windows/arm. I think that this should be posted sticky on both RT forums.

Categories

Resources