Game Development Community

ALPHA1 1.1 -- Request for help! DirectX wonkiness?

by Josh Williams · in Torque Game Builder · 11/27/2005 (8:46 pm) · 16 replies

Hello,

This is a request for help. In our builds of T2D 1.1 here in the office, we get some wackadoodle behavior in DX mode. This has been persistent for some time, and we haven't had / made time to debug it in detail.

The particular problems we observe in DX mode include super-laggy mouse input and t2d scrollers refusing to work. I wanted to check whether other people have these issues as well. Please let me know! And if you do have these problems:

1) What hardware do you have?
2) What drivers do you have?
3) Does your console.log report anything strange that it doesn't report in GL mode?
4) Do you notice any other DX-related problems

If, on the other hand, you do not have these problems in DX, it'd be equally interesting to know what hardware and drivers you're on, as that might help give us a clean test bed to compare against.

Finally, for those of you experiencing this problem... have you by chance debugged it? If not... do you want to help? Melv and I are both loathing looking into this one as I think we've both had far more than our fill of graphics debugging in general for quite some time! Please let us know if you are willing and able to help look into these DX problems and what you come up with solution-wise if so.

Note, this problem may be exceedingly trivial to fix, we just haven't had time to look into it much yet (and we're hoping we won't have to, really :). It could be as simple as setting a state in gl that we don't appropriately account for in the dx conversion layer... or maybe it's some other simple thing. Of course, it could be some big, deep hairy bug that crept in and we will end up having to go back and trace over changelogs to hunt it down... but I doubt it. I guess my point is, please don't be afraid to jump in on this one. It's probably not anything too serious and I bet any number of you could have this fixed in a jiffy if you decide to tackle it. It'd be a great convenience for us if we could get some help investigating and problem-solving on this one. :)

Thanks!

#1
11/27/2005 (10:35 pm)
DX with 1.1 runs "OK" here. This is on my laptop (a 1.8 Ghz P4 w/ nVidia GeForce FX GO5200 32/64MB Mobile). In the side scrolling shooter, I notice an occassional bit of choppyness to the frame rate that is non-existant in the OpenGL mode. In the Fish demo, the results are identical between GL and D3D. There is one big advantage to running D3D on my system: In full screen mode, the Windows Start / Task Bar sits on top of my OpenGL window. This doesn't happen in D3D. It's a most irritating issue, but I'm still debugging my game and run in Windowed mode 99% of the time, so I haven't bothered to debug in and fix it.

Once I get my home office development system set up again in a couple weeks (moving rooms in the house), I can help debug this a bit further if this is still being a pain for you guys.
#2
11/28/2005 (12:27 am)
I think they said there was something wrong with DX mode?
I can't elaborate, but I recall it in one of the t2d development threads.
#3
11/28/2005 (1:29 am)
Well my art mod of the scroller was kinda nuts. But I figured I would just work on it later.

Edit: Well sorry there.. I guess this is not related.

Quote:
--------- Initializing MOD: T2D_EGOTRIP ---------
Loading compiled script EgoTrip/client/splashScreen.gui.
Loading compiled script EgoTrip/client/t2d_launchMenu_shooterDemo.gui.
Loading compiled script EgoTrip/client/t2d_exitScreen.gui.
Loading compiled script EgoTrip/client/client.cs.
T2D Engine (v1.1.0) initialized...
Loading compiled script EgoTrip/client/datablocks.cs.
Loading compiled script EgoTrip/client/audioDatablocks.cs.
Loading compiled script EgoTrip/client/scene.cs.
Loading compiled script EgoTrip/client/player.cs.
Loading compiled script EgoTrip/client/enemy.cs.
Loading compiled script EgoTrip/client/spaceScrollerScreen.gui.
t2dSceneObject::loadStream() - Loading Deprecated Version 8! (Save as higher version!)
t2dPhysics::loadStream() - Loading Deprecated Version 2! (Save as higher version!)
t2dSceneObject::loadStream() - Loading Deprecated Version 8! (Save as higher version!)
t2dPhysics::loadStream() - Loading Deprecated Version 2! (Save as higher version!)
t2dTileLayer::loadStream() - Loading Deprecated Version 2! (Save as higher version!)
t2dPhysics::loadStream() - Loading Deprecated Version 2! (Save as higher version!)
t2dPhysics::loadStream() - Loading Deprecated Version 2! (Save as higher version!)
t2dPhysics::loadStream() - Loading Deprecated Version 2! (Save as higher version!)
t2dPhysics::loadStream() - Loading Deprecated Version 2! (Save as higher version!)
t2dPhysics::loadStream() - Loading Deprecated Version 2! (Save

and this...

Quote:oTrip/client/enemy.cs (360): Unable to find function vectorSub2D
EgoTrip/client/enemy.cs (360): Unable to find function vectorNormalise2D
EgoTrip/client/enemy.cs (360): Unable to find function vectorScale2D
t2dSceneObject::setLinearVelocity - Invalid number of parameters!
t2dSceneObject::loadStream() - Loading Deprecated Version 8! (Save as higher version!)
t2dPhysics::loadStream() - Loading Deprecated Version 2! (Save as higher version!)
t2dGraphField::loadStream() - Invalid Stream Header ID!
t2dParticleEffect::loadEffect() - Error Loading Effect/Emitter(s)!
t2dParticleEffect::playEffect() - Cannot Play; no emitters!
t2dSceneObject::loadStream() - Loading Deprecated Version 8! (Save as higher version!)
t2dPhysics::loadStream() - Loading Deprecated Version 2! (Save as higher version!)
t2dGraphField::loadStream() - Invalid Stream Header ID!
t2dParticleEffect::loadEffect() - Error Loading Effect/Emitter(s)!
EgoTrip/client/player.cs (692): Unable to find object: '0' attempting to call function 'getPosition'
t2dSceneObject::setPosition - Invalid number of parameters!
EgoTrip/client/player.cs (693): Unable to find object: '0' attempting to call function 'getLayer'
t2dParticleEffect::playEffect() - Cannot Play; no emitters!
EgoTrip/client/player.cs (902): Unable to find object: '0' attempting to call function 'setPosition'
EgoTrip/client/player.cs (904): Unable to find object: '0' attempting to call function 'setAtRest'
EgoTrip/client/player.cs (906): Unable to find object: '0' attempting to call function 'setEnabled'
Exporting client prefs
Exporting client config
Exporting Particle-Editor prefs
Exporting Tile-Editor prefs
Exporting client prefs
Exporting client config
Shutting down the OpenGL display device...
Making the GL rendering context not current...
Deleting the GL rendering context...
Releasing the device context...
Restoring the desktop display settings (1280x1024x32)...
#4
11/28/2005 (1:44 am)
@Matt: No, that was probably that the "glFinish" was removed; this is another problem.

@Randy: This isn't related at all. Your errors are caused by you just using old calls that don't exist now. Also, you're trying to load stuff that isn't now compatible. From here on it, everything saved should be compatible (or at least outside of alpha).

- Melv.
#5
11/28/2005 (1:54 am)
NP i'll clean it up. I didn't see any problems in DX mode with the stock space scroller.
#6
11/28/2005 (3:44 am)
I don't have any problems running the fish and shooter demos using DirectX on a 2.8 GHz P4, 1GB RAM and a GeForce4 MX 4000.

EDIT: Graphics card drivers version is 5.3.0.3 and are dated 11/17/2003
#7
11/28/2005 (4:45 am)
Probably not much help, but the tilemap seems to work fine while the scrollers do not. I tried both with the same art and tilemaps did the job under all circumstances while the scroller didn't move at all under DX. I haven't looked under the hood any, but I assume they are implemented differently, though fundamentally they do the same thing, so maybe that could lead to a solution.

My Windows machine is running on an ancient Intel 810/810E onboard video card. It often has issues with games, but to Torque's credit it ran fine after I installed recent drivers.
#8
11/28/2005 (6:29 am)
Not related to Alpha 1.1

Hardware:
P4 3.2 ghz
1 gb RAM
MOBILITY RADEON 9600 x86/SSE2 - 128mb
oodles of HDD space
drivers have not been updated in close to a year (ATI Driver version: 6.14.10.6378)

Here are my Console Files for my sidescroller mod. I recorded one for each (D3D and OpenGL). I also included my prefs file just in case that may help.

I notice that the OpenGL runs great except for visible "noise" on the entire playscreen. It isn't a lot of static, but I notice it.

The D3D mode runs VERY herky jerky and I notice a lot of noise around my art assets. This could be that I suck at making art, but I'm not sure.

Hope this helps...

-Tim
#9
11/28/2005 (6:54 am)
Tim,

We were looking at a problem in D3D that relates to the alpha. There are certainly all sorts of problems with ATI cards; lots of which are solved by driver updates. I noticed that the logs contain things like "fxImageMapDatablock2D" which is obviously part of v1.0.2.

Just trying to keep the two seperate. :)

- Melv.
#10
11/28/2005 (7:00 am)
Not related to Alpha 1.1 - Sorry folks

I've found that I solved some of my art issues by adjusting my ATI D3D settings (Performance over Quality). However, the D3D mode is still "slower" than the OpenGL mode. By "slower", I mean the whole game seems slower, not the controls.

I have resolved an issue I was having. I assumed there was something wrong with the controls (in either mode). It seemed there was some sort of lag.... well, through the process of testing out the D3D vs OpenGL I discovered it was a problem with my setup (hardware), not the game itself. I use a KVM switch in my office to switch between my other development platforms and I found that was the cause of my lag in my sidescroller mod. Once I used the laptop keyboard, the controls were smooth ( in both D3D and OpenGL)

I hope these insights at least help a little...

-Tim
#11
11/28/2005 (7:01 am)
Melv... sorry... I thought I was testing the 1.1... *dizzy*

I assume 1.1 is CVS only??...

-Tim
#12
11/28/2005 (8:54 am)
Everything gets choppy with D3D in windowed mode. In fullscreen the demos run smooth.
But I think it was the same 1.0.2 too, so maybe that's not what you are looking for. I tried to update my drivers to see if that would solve the problem but it didn't work (the standard ones refuse to install and my notebook vendor uses old ones from may 2004).

Hardware:
Intel Centrino 1.5 GHz
ATI Mobility Radeon 9700
Driver Version 6.14.10.6451

In windowed mode everything seems to jump at constant intervals, like skipping 10 frames every 50 frames or something like that.

Nothing suspecious in console.log
#13
11/28/2005 (9:00 am)
@Tim - You can download the 1.1 Alpha it's listed below the current build. Check the recent post about it for more info. Can't miss it, it's a big post.
#14
11/28/2005 (6:35 pm)
Quote:Everything gets choppy with D3D in windowed mode. In fullscreen the demos run smooth.
But I think it was the same 1.0.2 too, so maybe that's not what you are looking for.

I can confirm what Michael said. Frame rate drops to unstable (10-14 fps) in windowed mode and when I switch to full screen it goes to normal. I've spotted something strange in my console log too.

Here OpenGL mode:
Video Init:
   Accelerated OpenGL display device detected.
   Accelerated D3D device detected.
   Voodoo 2 display device not detected.

Activating the OpenGL display device...
Activating the OpenGL display device...
Setting screen mode to 800x600x32 (w)...
Creating a new window...
Acquiring a new device context...
Pixel format set:
  32 color bits, 24 depth bits, 8 stencil bits
Creating a new rendering context...
Making the new rendering context current...
OpenGL driver information:
  Vendor: ATI Technologies Inc.
  Renderer: MOBILITY RADEON 7500 DDR x86/SSE2
  Version: 1.3.1006 WinXP Release
OpenGL Init: Enabled Extensions
  ARB_multitexture (Max Texture Units: 3)
  EXT_compiled_vertex_array
  EXT_texture_env_combine
  EXT_packed_pixels
  EXT_fog_coord
  ARB_texture_compression
  EXT_texture_compression_s3tc
  (ARB|EXT)_texture_env_add
  EXT_texture_filter_anisotropic (Max anisotropy: 16.000000)
  WGL_EXT_swap_control
OpenGL Init: Disabled Extensions
  EXT_paletted_texture
  NV_vertex_array_range
  3DFX_texture_compression_FXT1
  NPatch tessellation

And here D3D mode (using Option dialog to switch mode):
Deactivating the previous display device...
Shutting down the OpenGL display device...
Making the GL rendering context not current...
Deleting the GL rendering context...
Releasing the device context...
Activating the D3D display device...
Releasing the device context...
Destroying the window...
Setting screen mode to 800x600x32 (w)...
Creating a new window...
Acquiring a new device context...
Pixel format set:
  32 color bits, 32 depth bits, 0 stencil bits
Creating a new rendering context...
Making the new rendering context current...
OpenGL driver information:
  Vendor: Microsoft Corp.
  Renderer: Direct3D
  Version: 1.1
OpenGL Init: Enabled Extensions
  ARB_multitexture (Max Texture Units: 2)
  EXT_compiled_vertex_array
  EXT_texture_env_combine
  EXT_fog_coord
OpenGL Init: Disabled Extensions
  EXT_paletted_texture
  NV_vertex_array_range
  EXT_packed_pixels
  ARB_texture_compression
  EXT_texture_compression_s3tc
  3DFX_texture_compression_FXT1
  (ARB|EXT)_texture_env_add
  EXT_texture_filter_anisotropic
  WGL_EXT_swap_control
  NPatch tessellation

My hardware:
IBM Labtop with P4M Centrino 1.4 Ghz
ATI MOBILITY RADEON 7500 64 MB
Driver version: 6.14.10.6546 (latest driver from IBM)

I have also test this issue with 1.02 and it have a problem too. Frame rate goes choppy and screen flickering all the time even console window is on. I have to type quit(); command to quit the app.

Hope this help.
#15
11/29/2005 (2:01 am)
Thanks for all the info everyone!

- Melv.
#16
11/29/2005 (11:21 am)
@Melv,

After downloading 1.1 Alpha...

I simply unzipped it and ran the sidescroller mod.... and everything works fine for both modes for me. Nothing "wonky" at all.

-Tim