Opengl to Direct3d Wrapper trouble

Post your questions here
Post Reply
Shadow
Posts: 2772
Joined: Sun Dec 02, 2007 5:10 pm
Team: FSK
Location: Finland

Opengl to Direct3d Wrapper trouble

Post by Shadow »

So, I tried using an opengl to direct3d wrapper for making the game run on direct3d and being able to enable enbseries on it for some much needed eyecandy, but it doesn't really work. The game starts without trouble and the enbseries does work, but it looks like this.

Image

Anyone feeling to have a look? The opengl to direc3d wrapper is open source and can be found here.
Image
Those who possess strength have also known adversity.
DJ99X
Posts: 15524
Joined: Tue Jan 15, 2008 11:36 am
Location: Land Down Under

Re: Opengl to Direct3d Wrapper trouble

Post by DJ99X »

haha, that is wack

Doesnt look like it likes jlvs shader engine, or his decal system.
DJ99X
Posts: 15524
Joined: Tue Jan 15, 2008 11:36 am
Location: Land Down Under

Re: Opengl to Direct3d Wrapper trouble

Post by DJ99X »

Did you notice that it said it was created for Windows 95-XP. Probably doesnt work properly for Vista and 7
jlv
Site Admin
Posts: 15383
Joined: Fri Nov 02, 2007 5:39 am
Team: No Frills Racing
Contact:

Re: Opengl to Direct3d Wrapper trouble

Post by jlv »

I think that's Kendall Bennett's port of Mesa to Direct3D. IIRC, he wrote that about 10 years ago before OpenGL and Direct3D even had shaders. For the terrain textures, the problem is either a bug in the framebuffer objects or glCopyTexSubImage2D. So try disabling or enabling framebuffer objects to work around it.
Josh Vanderhoof
Sole Proprietor
jlv@mxsimulator.com
If you email, put "MX Simulator" in the subject to make sure it gets through my spam filter.
Shadow
Posts: 2772
Joined: Sun Dec 02, 2007 5:10 pm
Team: FSK
Location: Finland

Re: Opengl to Direct3d Wrapper trouble

Post by Shadow »

Nope, didn't work. Tried disabling shaders, fbo, lens flare and ground mipmaps. No effect.
Here's the gldirect's log file if it's any help. Sure does seem to have a lot of fails.

Code: Select all

GLD: (SYS) -> Logging Started
GLD: (SYS) Driver           : SciTech GLDirect 5.0
GLD: (SYS) Executable       : E:\Pelit\MX Simulator\mx.exe
GLD: (SYS) DirectDraw device: Primary
GLD: (SYS) Direct3D driver  : Direct3D Hardware Renderer
GLD: (SYS) Rendering type   : Direct3D HW
GLD: (SYS) Multithreaded    : Disabled
GLD: (SYS) Display resources: Instanced
GLD: (SYS) Buffer resources : Instanced
GLD: (SYS) Vertex Shader    : 3.0
GLD: (SYS) Pixel Shader     : 3.0
GLD: (SYS) DirectX Version  : 9.0 or above
GLD: (INF) 
GLD: (INF) Pixel Formats:
GLD: (INF)    visual  x  bf lv rg d st  r  g  b a  ax dp st accum buffs  ms
GLD: (INF)  id dep cl sp sz l  ci b ro sz sz sz sz bf th cl  r  g  b  a ns b
GLD: (INF) -----------------------------------------------------------------
GLD: (INF) 0x01 32 wn  . 32  .  r .  .  8  8  8  .  . 16  .  .  .  .  .  . .
GLD: (INF) 0x02 32 wn  . 32  .  r .  .  8  8  8  .  . 32  .  .  .  .  .  . .
GLD: (INF) 0x03 32 wn  . 32  .  r .  .  8  8  8  .  . 32  8  .  .  .  .  . .
GLD: (INF) 0x04 32 wn  . 32  .  r y  .  8  8  8  .  . 16  .  .  .  .  .  . .
GLD: (INF) 0x05 32 wn  . 32  .  r y  .  8  8  8  .  . 32  .  .  .  .  .  . .
GLD: (INF) 0x06 32 wn  . 32  .  r y  .  8  8  8  .  . 32  8  .  .  .  .  . .
GLD: (INF) -----------------------------------------------------------------
GLD: (INF) 
GLD: (SYS) ChoosePixelFormat:
GLD: (INF) Input pixel format for ChoosePixelFormat:
GLD: (INF)    visual  x  bf lv rg d st  r  g  b a  ax dp st accum buffs  ms
GLD: (INF)  id dep cl sp sz l  ci b ro sz sz sz sz bf th cl  r  g  b  a ns b
GLD: (INF) -----------------------------------------------------------------
GLD: (INF)   .  16 wn  . 16  .  r y  .  .  .  .  .  . 16  .  .  .  .  .  . .
GLD: (INF) -----------------------------------------------------------------
GLD: (INF) 
GLD: (SYS) Pixel Format 4 chosen as best match
GLD: (SYS) SetPixelFormat: PixelFormat 4 has been set
GLD: (SYS) gldCreateContext for HDC=2601210C, ThreadId=FAC
GLD: (SYS) gldCreateContextBuffers for HDC=2601210C
GLD: (INF) Input window 270964: w=1920, h=1080
GLD: (INF) OS: Win2000/XP
GLD: (SYS) [DDI Driver Level : 900]
GLD: (INF) [Driver Description: ATI Radeon HD 4800 Series        ]
GLD: (INF) [Driver file: aticfx32.dll 8.17.10.1036]
GLD: (INF) [VendorId: 0x1002, DeviceId: 0x9440, SubSysId: 0x5021002, Revision: 0x0]
GLD: (INF) Can Scissor: Yes
GLD: (INF) Window: w=1920, h=1080 (fullscreen)
GLD: (INF) HW TnL: Enabled
GLD: (SYS) gldCreateContext succeeded for HGLRC=1
GLD: (INF) GetProcAddress: glActiveTextureARB (OK)
GLD: (INF) GetProcAddress: glClientActiveTextureARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord1dARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord1dvARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord1fARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord1fvARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord1iARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord1ivARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord1sARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord1svARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord2dARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord2dvARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord2fARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord2fvARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord2iARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord2ivARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord2sARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord2svARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord3dARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord3dvARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord3fARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord3fvARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord3iARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord3ivARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord3sARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord3svARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord4dARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord4dvARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord4fARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord4fvARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord4iARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord4ivARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord4sARB (OK)
GLD: (INF) GetProcAddress: glMultiTexCoord4svARB (OK)
GLD: (INF) GetProcAddress: glIsRenderbufferEXT (Failed)
GLD: (INF) GetProcAddress: glBindRenderbufferEXT (Failed)
GLD: (INF) GetProcAddress: glDeleteRenderbuffersEXT (Failed)
GLD: (INF) GetProcAddress: glGenRenderbuffersEXT (Failed)
GLD: (INF) GetProcAddress: glRenderbufferStorageEXT (Failed)
GLD: (INF) GetProcAddress: glGetRenderbufferParameterivEXT (Failed)
GLD: (INF) GetProcAddress: glIsFramebufferEXT (Failed)
GLD: (INF) GetProcAddress: glBindFramebufferEXT (Failed)
GLD: (INF) GetProcAddress: glDeleteFramebuffersEXT (Failed)
GLD: (INF) GetProcAddress: glGenFramebuffersEXT (Failed)
GLD: (INF) GetProcAddress: glCheckFramebufferStatusEXT (Failed)
GLD: (INF) GetProcAddress: glFramebufferTexture1DEXT (Failed)
GLD: (INF) GetProcAddress: glFramebufferTexture2DEXT (Failed)
GLD: (INF) GetProcAddress: glFramebufferTexture3DEXT (Failed)
GLD: (INF) GetProcAddress: glFramebufferRenderbufferEXT (Failed)
GLD: (INF) GetProcAddress: glGetFramebufferAttachmentParameterivEXT (Failed)
GLD: (INF) GetProcAddress: glGenerateMipmapEXT (Failed)
GLD: (INF) GetProcAddress: glDeleteObjectARB (Failed)
GLD: (INF) GetProcAddress: glGetHandleARB (Failed)
GLD: (INF) GetProcAddress: glDetachObjectARB (Failed)
GLD: (INF) GetProcAddress: glCreateShaderObjectARB (Failed)
GLD: (INF) GetProcAddress: glShaderSourceARB (Failed)
GLD: (INF) GetProcAddress: glCompileShaderARB (Failed)
GLD: (INF) GetProcAddress: glCreateProgramObjectARB (Failed)
GLD: (INF) GetProcAddress: glAttachObjectARB (Failed)
GLD: (INF) GetProcAddress: glLinkProgramARB (Failed)
GLD: (INF) GetProcAddress: glUseProgramObjectARB (Failed)
GLD: (INF) GetProcAddress: glValidateProgramARB (Failed)
GLD: (INF) GetProcAddress: glUniform1fARB (Failed)
GLD: (INF) GetProcAddress: glUniform2fARB (Failed)
GLD: (INF) GetProcAddress: glUniform3fARB (Failed)
GLD: (INF) GetProcAddress: glUniform4fARB (Failed)
GLD: (INF) GetProcAddress: glUniform1iARB (Failed)
GLD: (INF) GetProcAddress: glUniform2iARB (Failed)
GLD: (INF) GetProcAddress: glUniform3iARB (Failed)
GLD: (INF) GetProcAddress: glUniform4iARB (Failed)
GLD: (INF) GetProcAddress: glUniform1fvARB (Failed)
GLD: (INF) GetProcAddress: glUniform2fvARB (Failed)
GLD: (INF) GetProcAddress: glUniform3fvARB (Failed)
GLD: (INF) GetProcAddress: glUniform4fvARB (Failed)
GLD: (INF) GetProcAddress: glUniform1ivARB (Failed)
GLD: (INF) GetProcAddress: glUniform2ivARB (Failed)
GLD: (INF) GetProcAddress: glUniform3ivARB (Failed)
GLD: (INF) GetProcAddress: glUniform4ivARB (Failed)
GLD: (INF) GetProcAddress: glUniformMatrix2fvARB (Failed)
GLD: (INF) GetProcAddress: glUniformMatrix3fvARB (Failed)
GLD: (INF) GetProcAddress: glUniformMatrix4fvARB (Failed)
GLD: (INF) GetProcAddress: glGetObjectParameterfvARB (Failed)
GLD: (INF) GetProcAddress: glGetObjectParameterivARB (Failed)
GLD: (INF) GetProcAddress: glGetInfoLogARB (Failed)
GLD: (INF) GetProcAddress: glGetAttachedObjectsARB (Failed)
GLD: (INF) GetProcAddress: glGetUniformLocationARB (Failed)
GLD: (INF) GetProcAddress: glGetActiveUniformARB (Failed)
GLD: (INF) GetProcAddress: glGetUniformfvARB (Failed)
GLD: (INF) GetProcAddress: glGetUniformivARB (Failed)
GLD: (INF) GetProcAddress: glGetShaderSourceARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib1fARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib1sARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib1dARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib2fARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib2sARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib2dARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib3fARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib3sARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib3dARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4fARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4sARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4dARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4NubARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib1fvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib1svARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib1dvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib2fvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib2svARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib2dvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib3fvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib3svARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib3dvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4fvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4svARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4dvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4ivARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4bvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4ubvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4usvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4uivARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4NbvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4NsvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4NivARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4NubvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4NusvARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttrib4NuivARB (Failed)
GLD: (INF) GetProcAddress: glVertexAttribPointerARB (Failed)
GLD: (INF) GetProcAddress: glEnableVertexAttribArrayARB (Failed)
GLD: (INF) GetProcAddress: glDisableVertexAttribArrayARB (Failed)
GLD: (INF) GetProcAddress: glBindAttribLocationARB (Failed)
GLD: (INF) GetProcAddress: glGetActiveAttribARB (Failed)
GLD: (INF) GetProcAddress: glGetAttribLocationARB (Failed)
GLD: (INF) GetProcAddress: glGetVertexAttribdvARB (Failed)
GLD: (INF) GetProcAddress: glGetVertexAttribfvARB (Failed)
GLD: (INF) GetProcAddress: glGetVertexAttribivARB (Failed)
GLD: (INF) GetProcAddress: glGetVertexAttribPointervARB (Failed)
GLD: (SYS) gldDeleteContext: Deleting context HGLRC=1, ThreadId=FAC
GLD: (SYS) <- Logging Ended
Would be pretty cool if this can be made to work. Enbseries would pretty up the game significantly until you can get the graphic stuff done.
On a side note, how difficult and time consuming would it be to make the game have on option to use either opengl or direct3d? I remember some older games had an option to choose which one you'd like to use.
Image
Those who possess strength have also known adversity.
DJ99X
Posts: 15524
Joined: Tue Jan 15, 2008 11:36 am
Location: Land Down Under

Re: Opengl to Direct3d Wrapper trouble

Post by DJ99X »

Thatd mean the game would have to be re-coded in Direct3D though...
Shadow
Posts: 2772
Joined: Sun Dec 02, 2007 5:10 pm
Team: FSK
Location: Finland

Re: Opengl to Direct3d Wrapper trouble

Post by Shadow »

How big of a thing is it? While I was trying to search info about a similar thing as the enbseries for opengl, and afterwards about the opengl to direct3d wrapper, there were several posts/articles about how there's not a lot of things in the code(s) that actually care which API it's using. Also I came upon several apps that would convert GLU to HLSL and vice versa.
I have no knowledge about different graphic engines and I'm asking it purely out of curiosity.

But more importantly, someone smart should look at the source code for the gldirect and make it mxsim work properly on it so we can enable enbseries! :D
Image
Those who possess strength have also known adversity.
jlv
Site Admin
Posts: 15383
Joined: Fri Nov 02, 2007 5:39 am
Team: No Frills Racing
Contact:

Re: Opengl to Direct3d Wrapper trouble

Post by jlv »

There's a somewhat interesting history behind OpenGL vs Direct3D. Here's a pretty good summary. Chris Hecker writes about it here.

Basically, what happened was Microsoft didn't want OpenGL because it was cross platform, which would make it easier for programmers port to their software other platforms. So they invented Direct3D. The only problem was Direct3D was so bad it was almost unusable. Microsoft fought with game developers over it for a while and then finally changed the Direct3D API to be more like OpenGL in DirectX 5. That pretty much removed the technical advantage of OpenGL and that was the end of it. Luckily most of the former SGI guys went to NVidia and kept updating OpenGL which also forces their competitors to do the same.

In my opinion, both OpenGL and Direct3D have become too big and complicated to be reliable. I'd be much happier using OpenCL or CUDA for the newer more general purpose GPU's.
Josh Vanderhoof
Sole Proprietor
jlv@mxsimulator.com
If you email, put "MX Simulator" in the subject to make sure it gets through my spam filter.
ddmx
Posts: 5383
Joined: Sun Apr 20, 2008 3:36 pm
Location: Midland MI

Re: Opengl to Direct3d Wrapper trouble

Post by ddmx »

From the dead.

Any updates on whether or not anyone has successfully gotten something of this nature to work, or if it will ever even be possible?
Shadow
Posts: 2772
Joined: Sun Dec 02, 2007 5:10 pm
Team: FSK
Location: Finland

Re: Opengl to Direct3d Wrapper trouble

Post by Shadow »

Probably not. I don't doubt that it would be possible, but that'll require someone who knows their stuff.
I remember seeing a vid in youtube of someone using a dll hookup to achieve similar effects as enbseries to an opengl engine. Tried it for mxsim but of course it wouldn't work. I'll see if I can find the vid.


Here's the vid: http://www.youtube.com/watch?v=gai5yLqpg3U

Can't find the download link though. :?
Image
Those who possess strength have also known adversity.
Post Reply