Jump to content



Photo
* * * * * 12 votes

Dev thread: Road to DX9


  • Please log in to reply
2087 replies to this topic

#221 teppotee

teppotee

    Enthusiast

  • Members
  • PipPipPip
  • 382 posts
  • Location:Finland

  • Flag: Finland

  • Favorite Pinball: CV

Posted 09 February 2014 - 08:50 AM

Beyond amazing! I just tried the dx9 demo with my Lenovo work laptop (win7, i7, nVidia Quadro FX 880M) which previously did not run VP at all with HW rendering on. Now I got mostly smooth game play even with this crappy GPU!

 

UW's MB that I could not run even in my cab with GTX580 (got around 35FPS) runs around 160 FPS with the laptop. Incredible :)

 

I do get a lot of slowdown with regular interval and CPU hits the max usage for some seconds and then everything is back to smooth again. It's probably just my PC that's really not designed for playing.

 

Anyway the performance with Win7 seems to be so much better that I really hope that you can find a way to make an official VP9 version with dx9 support before moving to VP10 with new additions. Totally surprised how good the backwards compatibility is already.

 

Really appreciate what you have achieved in such a short time!



#222 tttttwii

tttttwii

    Enthusiast

  • Platinum Supporter
  • 300 posts

  • Flag: Germany

  • Favorite Pinball: Attack from Mars

Posted 09 February 2014 - 09:12 AM

Great work!

 

I am running a setup with Core2Quad 9550 @ 2,83 GHz, 4 GB RAM and one GTX 760 with 2 GB on Win7 64bit. There is a major difference! DDRAW=0 is standard setting.

In my setup the two versions are really worlds apart. I strongly looking forward removing the compatability issues. I thought long time about a board and processor upgrade, which

seems to be unessecary now. Thanks a lot!

 

Twillight Zone

DX9 330 FPS

DX7 65 FPS

-> graphical glitch (cylinders on rails)

 

Game Show

DX9 510 FPS

DX7 70 FPS

-> DX9 only runs with dB2S disabled otherwise fatal error
-> Glitches at the flippers

 

AFM (JP Version)

-> computer freezes, hard reset necessary

 

Monster Bash (2.1)

DX9 280 FPS

DX7 51 FPS

-> DX9 only runs with dB2S disabled otherwise fatal error

 

All DX7 tests were performed with dB2S running. In DX9 I disabled dB2S to get it running.

 

Please find attached the screenshots of Twillight Zone and Game Show with the glitches and the error message while having dB2S enables (same at all tables).

Attached Files



#223 mukuste

mukuste

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 854 posts

  • Flag: ---------

  • Favorite Pinball: Centaur

Posted 09 February 2014 - 10:11 AM

Thanks tttttwii, that's very good in-depth information.

  • The TZ glitch is just the fake kicker rendering, that will be resolved in time.
  • The GS glitch looks like the same problem that Scared Stiff has. I assume that that table uses custom wall objects to put some overlays on the flippers? EDIT: Confirmed, it puts those ridges on top of the flippers.

The hard freeze on AFM is... worrying. That should never ever happen. I'll have to try that table when I have time.


Edited by mukuste, 09 February 2014 - 10:16 AM.


#224 bosvrucht

bosvrucht

    Enthusiast

  • Members
  • PipPipPip
  • 410 posts

  • Flag: Netherlands

  • Favorite Pinball: LOTR

Posted 09 February 2014 - 10:45 AM

i tried my windows 8 tablet (toshiba encore, intel atom), because i was curious to see what the difference is on a slow machine that apparantly handles DX7 really well, because it is faster than some i7 computers for some tables.........

 

I take it you started with an older rev, which does not include the touch controls, or the screen rotation prevention?.  Anyway,   I get a fatal error, hresult 88760868 at ......\renderdevice_dx9.cpp:213 when in fullscreen, or when in windowed mode upon screen rotation.

 

i will try it with a bluetooth keyboard tomorrow for some comparisons


Edited by bosvrucht, 09 February 2014 - 10:47 AM.


#225 mukuste

mukuste

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 854 posts

  • Flag: ---------

  • Favorite Pinball: Centaur

Posted 09 February 2014 - 10:56 AM

I take it you started with an older rev, which does not include the touch controls, or the screen rotation prevention?.  Anyway,   I get a fatal error, hresult 88760868 at ......\renderdevice_dx9.cpp:213 when in fullscreen, or when in windowed mode upon screen rotation.

 

The touch stuff should be in, except for the rendering code my branch is up to date with the mainstream VP development.

 

Fullscreen is still known to be glitchy. About screen rotation: do you mean you start the player in normal orientation and then rotate during gameplay? I don't have a tablet so I don't know what latest changes were made to VP in that regard.



#226 tttttwii

tttttwii

    Enthusiast

  • Platinum Supporter
  • 300 posts

  • Flag: Germany

  • Favorite Pinball: Attack from Mars

Posted 09 February 2014 - 12:21 PM

Dear mukuste,

 

hear my 2nd test. I am running a setup with Core2Quad 9550 @ 2,83 GHz, 4 GB RAM and one GTX 760 with 2 GB on Win7 64bit. DDRAW=0 is standard setting.

 

Airborne (JF)

FPS 260 DX9

FPS 65 DX7

-> heavy glitches (see screenshot)

-> even rails and ball affected

-> runs good with DX7

-> apron black

 

Whirlwind

FPS 297 DX9

FPS 60 DX7

-> no major issues, but looks somewhat different

-> with the first shot, ball disaapeared for 0,5 secs (2 secs after launch of first ball) and showed up again, from there on no problems

-> ball runs without stuttering

 

Attack from Mars
-> I disabled dB2S, no more freeze

-> now VPM machine terminated, could not locate rom
-> same table works fine with DX7 version

 

I hope this helps you to tackle some of the issues!

 

Torsten

Attached Files

  • Attached File  ab.png   808.41KB   11 downloads
  • Attached File  ww.png   1.53MB   10 downloads

Edited by tttttwii, 09 February 2014 - 12:22 PM.


#227 unclewilly

unclewilly

    sofa king.....

  • VIP
  • 5,084 posts
  • Location:Baltimore, Maryland

  • Flag: United States of America

  • Favorite Pinball: tz, tom, big hurt, who dunnit



Posted 09 February 2014 - 12:41 PM

I don't have a creeen shot. But one thing I did notice was with the light object. It used to be that a light set to pure black did not render or rendered invisible. Now it actually renders as black, at least on my windows 8 pc.

So tables built using a refresh light to update ramps now show the black light objects.

Don't think this is a bug but something that authors will need to update to the triggersingleupdate for alpha ramps

Thanks for working on this.
Can't wait for vp10

Much appreciated

"it will all be ok in the end, if it's not ok, it's not the end"
 
Monster Bash VP10 WIP https://dl.dropboxus... (vpx)WIP15.vpx

uw2.gif


#228 mukuste

mukuste

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 854 posts

  • Flag: ---------

  • Favorite Pinball: Centaur

Posted 09 February 2014 - 01:01 PM

Thanks again t*wii! Can you tell me where I can download that Airborne table? I'd like to test that myself.

 

@UW: I've noticed that too, on AFM for example. Then again, that table never rendered correctly for me in VP9 either. I think however that it's a bug and I can fix it.



#229 tttttwii

tttttwii

    Enthusiast

  • Platinum Supporter
  • 300 posts

  • Flag: Germany

  • Favorite Pinball: Attack from Mars

Posted 09 February 2014 - 01:10 PM

I downloaded airborne here:

 

http://www.vpforums....s&showfile=8780



#230 randr

randr

    I'm just a hardware guy so...

  • VIP
  • 2,650 posts
  • Location:Minnesota

  • Flag: United States of America

  • Favorite Pinball: Twilight Zone

Posted 09 February 2014 - 02:14 PM

Here's what UncleWilly's MB looks like on a Mac in VMWare.    Mostly good, just a green blotch.    Pretty freaking impressive!   The more I play with this, the more impressive it is.   Everything mostly works!   Drac pops out and moves smoothly!    IMHO - Forget anything others have said about eschewing VP9 compatibility - you're so close here, it doesn't make sense to drop compatibility, when so many would benefit from this update.

 

In VMWare, the DX7 version doesn't even run.  Your DX9 version not only runs, but runs faster than my cab on WIN7 did.    F11 is showing 130fps in a Win7 x64 VM!     AND IT PLAYS SMOOTHLY!  Wow!

 

mbvmware.png

 

 

I have used Parallels for ever! vp has always worked perfect as does this dx9 test. I do have a 12 core mac pro so that helps. but works fine in Parallels


randr___pinball.png                         


#231 DHogsett

DHogsett

    Hobbyist

  • Members
  • PipPip
  • 14 posts

  • Flag: ---------

  • Favorite Pinball: Any

Posted 09 February 2014 - 02:16 PM

First I would like to say great job on getting the DX9 Port going, I've been following this thread the entire time and have been speechless at the amount of work you can accomplish in such a short period of time.  

 

Second, I found a very weird bug, If you load a table, exit out and change the X or Y scaling of the table when you try and load it again you get an error HRESULT 80004005, what makes this even more odd is the fact that this happens on every table I have tried *EXCEPT* Airborne, I tried  LOTR, TSPP (Which doesnt render Homers Head), and BBB

 

Edit: If I try to run a table with DDRaw off the error is at 8876086c (if that helps)


Edited by DHogsett, 09 February 2014 - 04:11 PM.


#232 vulbas

vulbas

    Enthusiast

  • Members
  • PipPipPip
  • 215 posts
  • Location:villebon sur yvette (essonne)

  • Flag: France

  • Favorite Pinball: medieval madness

Posted 09 February 2014 - 02:46 PM

hello

I just tested this version with monter bash killer pc fs.

before : 50fps

after : 700fps.

 

4gb of ram, core i5 4.5ghz, gtx 660ti, win7 64bit

 

it's awesome. but fullscreen don't work on my pc ;) 



#233 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 683 posts

  • Flag: ---------

  • Favorite Pinball: T2, TOM, AFM

Posted 09 February 2014 - 04:13 PM

Just for the record, here Tipoto's T2 Chrome edition:

 

t2_dx9_zpsf4e26344.png

 

Left: DX9 test

Right: VP 9.2.1

 

Looks like the same texture problem occurring on other tables, just a bit more intense.

 

Keep up the amazing work, I just discovered this thread and was blown away.



#234 Slydog43

Slydog43

    Pinball Wizard

  • Platinum Supporter
  • 3,006 posts
  • Location:Hackettstown, NJ

  • Flag: United States of America

  • Favorite Pinball: Addams Family, All Williams 90's Games

Posted 09 February 2014 - 04:23 PM

reels are not going to work, its been stated before I think.



#235 freezy

freezy

    Member title

  • Members
  • PipPipPipPip
  • 683 posts

  • Flag: ---------

  • Favorite Pinball: T2, TOM, AFM

Posted 09 February 2014 - 04:34 PM

My bad, I had no idea what EM reels are when I read about that.



#236 zany

zany

    3D Beer Drinker

  • VIP
  • 1,644 posts

  • Flag: Sweden

  • Favorite Pinball: Medieval Madness



Posted 09 February 2014 - 05:18 PM

This is totally crazy....in MB PCKiller i get:

DX7:
FPS: 33
AVG: 30

DX9:
FPS: 700
AVG: 600

 

And of course...no stutter at all!!!!

AWESOME!!!!!!!

:D

 


Edited by zany, 09 February 2014 - 05:27 PM.


#237 jimmyfingers

jimmyfingers

    Pinball Fan

  • VIP
  • 832 posts

  • Flag: Canada

  • Favorite Pinball: Comet



Posted 09 February 2014 - 06:49 PM

This is totally impressive and very encouraging about the improvements in Windows 7 especially with the new MB table.  Again a huge thanks and reiteration of the absolute astonishment at where this has come in the extremely short time frame.

 

I'm also starting to think, like others are / have said, that it would be a bit of a shame now to not have an initial version with DX9 but compatibility for the older tables (if possible) as indeed it seems real close right now.  I'm glad to see that the topic about this has been broached and that others as well as you (mukuste) have indicated that maybe this could / should be the new initial release plan.  Whether it's VP9-something or simply that the first version of VP10 is compatible, however the naming, I think it would be great to get the smoothness that looks possible from this port, available to the massive collection of nice VP9 tables that are available.  Again, I suppose that that all depends on what road blocks you may hit or if some can be relatively easily fixed.

 

A couple notes from my initial - somewhat brief - testing (performed with Desktop Composition Disabled as recommended, no forced AA, Windows 7 32-bit, two systems - one with GTX 580ti and the other with GTX 760, driver levels 334.67 and 332.21 respectively):

 

- Light objects (whether GI related or for table lamps) are not working correctly and seems to be related to them being stacked on each other / occupying the same space; Even the general table lights when no GI is present (or refresh lights) are only displaying the top most version so even things like the fading lights routine, which use two lights for each lamp, are just showing one of the light's changes and it appears to be the top most light;  This is having a bigger impact on tables that use larger / table sized lights for plastics and PF GI and especially on GI8 tables which have 8 lights stacked on each other;  In the past, whatever light refreshed last was the one that was graphically updated / seen and unfortunately that characteristic is going to be found in almost every VP9 table as most of them at least have the fading lights routine / objects

 

- Refresh lights (and possibly other black objects) are, like UW pointed out, not really invisible it seems anymore; Some tables where the refresh light is placed high, like Airborne, are showing it worse and affecting more objects as it is having an influence on everything underneath - by the way that was BodyDump's table and not mine, I just got a co-author credit as I helped out in the end (I personally did that with the raised black refresh light on some tables as, for some reason, it made certain table play smoother so I kept it that way); Also, the black light single refresh / flagging function light optimized routine is still arguably one of the most efficient and stutter free / high FPS methods to use for updating alpha ramps

 

- I'm seeing some anomalies with alpha ramps / flashers that appear to look as if ordering is off (but are not) but also may be related to the light objects and issues mentioned above, from the light objects underneath them (for playfield GI and plastic's GI based light objects / functions)

 

- It seems the ball's edge is a little blockier (black border) in some instances; maybe has something to do with the old built-in Ball Anti-alias option?

 

- I have not noticed any real performance issue with Desktop Composition left on or off necessarily, but disabling now seems to still yield tear free flippers, which was the only reason I personally left it on as it can free up a little more performance without it;  One time I did notice a performance difference was actually testing the MB 2.1 FS PCkiller table and it actually got less FPS with Desktop Composition Disabled, which seemed the opposite of what one would expect

 

For  a simple table to test the light objects issue with you can pretty much check any VP9 table with no elaborate / PF sized GI, however, I tested / verified with Black Knight FS 2.2.1 and can be found here:

http://www.vpforums....s&showfile=5377

 

Also, a reasonable GI8 table to witness the more demanding aspects of VP9 based lighting techniques is the Indianapolis 500 GI8 Mod and can be found here:

http://www.vpforums....s&showfile=6871

 

Lastly Mukuste, I've got a beta / release candidate version of an AFM GI8 mod with a few new features and I'll send you the link for it in a PM.

 

Very excited about where this is all going!


Edited by jimmyfingers, 09 February 2014 - 06:50 PM.


#238 mukuste

mukuste

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 854 posts

  • Flag: ---------

  • Favorite Pinball: Centaur

Posted 09 February 2014 - 06:49 PM

 

Second, I found a very weird bug, If you load a table, exit out and change the X or Y scaling of the table when you try and load it again you get an error HRESULT 80004005, what makes this even more odd is the fact that this happens on every table I have tried *EXCEPT* Airborne, I tried  LOTR, TSPP (Which doesnt render Homers Head), and BBB

 

 

Good catch! I isolated the bug and fixed it. Shouldn't happen anymore in the next release.



#239 koadic

koadic

    Pinball Fan

  • VIP
  • 1,363 posts
  • Location:Omaha, NE, USA

  • Flag: United States of America

  • Favorite Pinball: Addams Family/Fish Tales/Medieval Madness



Contributor

Posted 09 February 2014 - 09:25 PM


Second, I found a very weird bug, If you load a table, exit out and change the X or Y scaling of the table when you try and load it again you get an error HRESULT 80004005, what makes this even more odd is the fact that this happens on every table I have tried *EXCEPT* Airborne, I tried  LOTR, TSPP (Which doesnt render Homers Head), and BBB


As far as Homer in TSPP (the most recent day version, and Rudy in the FunHouse night mod as well) are both created with Gates using the .visible flag to cut down on the amount of alpha ramps (I believe these were converted to this before I had discovered the ramp.alpha=0 method)

Also, since I don't believe I have seen it mentioned yet (I may have missed it though) is that I get no exit menu when in full screen... It's there, it just can't be seen, as well as having no framerate displayed with the F11 key... These were some of the quirks I was referring to previously.

Also, I noticed that it also errors out and quits if you change from full screen to windowed mode and then try to start a table. I don't know if it is related to the x/y scaling bug or not, just wanted to mention it as well.

#240 mukuste

mukuste

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 854 posts

  • Flag: ---------

  • Favorite Pinball: Centaur

Posted 09 February 2014 - 09:44 PM

Ah, jimmyfingers, I'm glad you showed up, I think you're my man here. I really need a crash course on the finer details of VP9 table creation so that I could emulate them better. So I have a couple of questions for you or anyone else who has that kind of arcane knowledge:

 

*) I understand from your explanations that the commonly used fading lights routine used several lights placed on top of each other, of which one at a time was "triggered" by changing its state so that it would render its texture. Is that correct? If so, just so that I understand better, why was that approach chosen over an approach where a single light object has its texture swapped out as needed? I'm afraid that the multiple lights approach might be a tad difficult to emulate in the new renderer since now every object is rendered every frame. But I'll think about it and see if I can figure something out.

 

*) Refresh lights: I finally begin to understand how they are used. Basically, they are fully black (and therefore, in the old renderer at least, invisible) objects whose only purpose is to tell the engine to refresh the area they cover; is this correct? I take it this was needed because many objects would not automatically refresh when, e.g., their texture was changed? And the later introduced TriggerSingleUpdate and kin served to address this purpose in a more direct way? Let me propose a workaround. Since in the new renderer, there is no more region system and everything is rendered every frame anyway, no manual update mechanism is needed. Therefore, my heuristic is the following: if a light is pure black AND it has no Off texture AND it has no On texture, do not render this light at all. Would this, in your opinion, take care of the majority of such update lights? I tried this heuristic and it seemed to completely fix the render issues on Airborne and AFM at least.

 

*) You mention other black objects besides lights. Were black objects of any other type than lights commonly exploited? Any examples?

 

*) You often mention "GI". Does that refer to "global illumination", as I would expect? And what exactly is its meaning in VP9 terms? I will check the Indy 500 table, thanks for the reference.

 

*) You mention apparent draw order problems with alpha ramps/flashers. Could you give me an example?

 

*) Ball border: that is very well possible. I'll have to defer that until more pressing issues are sorting out.

 

I'll need a bit more time to absorb all the information in your PM and get to test the table, but thank you already for all the in-depth information! It's immensely helpful.