Jump to content



Photo
* * * * * 12 votes

Dev thread: Road to DX9


  • Please log in to reply
2087 replies to this topic

#1581 unclewilly

unclewilly

    sofa king.....

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

  • Flag: United States of America

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



Posted 25 March 2014 - 09:49 PM

I guess I need to play with that.

Just wanted to say thanks again for the work on this. The dx9 test 11 is working really sweet with my mb update

"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


#1582 fuzzel

fuzzel

    spaghetti code

  • VP Dev Team
  • PipPipPipPipPip
  • 2,818 posts

  • Flag: Germany

  • Favorite Pinball: yes I have

Posted 25 March 2014 - 09:50 PM

I've been watching this thread for some time, and I have what may be a silly question:  When this is ready for an official release, will it completely REPLACE the DX7 version of VP on our cabs?  Or will we have to use the DX7 version on tables that haven't been updated to run on the DX9 version?  If I'm skipping way ahead, feel free to punch me. 

 

Also I'd like to add that the progress being made day-by-day to get VP to DX9 is amazing to watch.  Many thanks to mukuste and all that are involved.

 

I wish I knew more about programming and debugging and could offer some help, but I'm just a simple hack.

It will take some weeks to finalize the first DX9 version so be patient ;) And yes the DX9 version will replace the DX7 version once it is released but you can already try the latest DX9 version. The majority of tables play fine with it but there are some quirks here and there on some tables.



#1583 DJRobX

DJRobX

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 941 posts
  • Location:Valencia, CA

  • Flag: United States of America

  • Favorite Pinball: F14 Tomcat

Posted 25 March 2014 - 10:28 PM

I've been watching this thread for some time, and I have what may be a silly question:  When this is ready for an official release, will it completely REPLACE the DX7 version of VP on our cabs?  Or will we have to use the DX7 version on tables that haven't been updated to run on the DX9 version?  If I'm skipping way ahead, feel free to punch me.

 

The intent is yes, that it should replace DX7.   There are some very minor differences here and there (which is truly an amazing feat by Mukuste, given how radically different the back-end is).   The glitches we see remaining are often more appropriate to fix on the tables themselves given the amount of effort it would require to duplicate the DX7 version's qurks.      There will be a period where table authors will fix these things, so you may want to keep DX7 handy for a while even after the release.      T2 Chrome edition is a good example of a table that the Dx9 port will likely not run 100% properly unless Tipoto makes adjustments to it (it requires a very exacting environment, even in DX7). 

 

I've already made the Dx9 port the my main VP player.   You have to look really hard to spot the problems at this point, the increased smoothness is worth it compared to graphical issues that pop up.



#1584 mukuste

mukuste

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 854 posts

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

  • Favorite Pinball: Centaur

Posted 25 March 2014 - 11:13 PM

Interesting - Mine is not set to invisible.  Both it, and RIghtEjectHole are set to "KickerCup" in the version of the table that I have.  

 

Well that would explain it! I have the 1.2 FS mod, so as far as I know I'm up to date and will disregard this glitch until proven otherwise. It may be Z fighting between the kicker "lid" and the light.



#1585 DJRobX

DJRobX

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 941 posts
  • Location:Valencia, CA

  • Flag: United States of America

  • Favorite Pinball: F14 Tomcat

Posted 25 March 2014 - 11:25 PM

Well that would explain it! I have the 1.2 FS mod, so as far as I know I'm up to date and will disregard this glitch until proven otherwise. It may be Z fighting between the kicker "lid" and the light.

Works for me. :)   There's a good chance this code would change with an eventual fix to the "kicker cuts ball in half" problem anyhow. 


Edited by DJRobX, 26 March 2014 - 01:01 AM.


#1586 vampirolatino2

vampirolatino2

    Pinball Fan

  • Members
  • PipPipPipPip
  • 1,430 posts

  • Flag: Spain

  • Favorite Pinball: Medieval Madness

Posted 26 March 2014 - 01:42 AM

yea i set mine to 1.1 or 1.2 on all my tables... I like it :)

 

Gonna try that, thanks!



#1587 tsdico

tsdico

    Neophyte

  • Members
  • Pip
  • 2 posts

  • Flag: United States of America

  • Favorite Pinball: addams family

  • 360 Gamer Tag: coldfrostybrew

Posted 26 March 2014 - 02:52 AM

LOVING the new version in every way!

 

question - is there a common location to find the latest releases?  or something I should search the forum for to find it quickly?

 

searching for Download VP9_DX9 returns 0 results...

 

Thanks!



#1588 frankrizzo2

frankrizzo2

    Hobbyist

  • Members
  • PipPip
  • 11 posts

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

  • Favorite Pinball: Ali

Posted 26 March 2014 - 02:56 AM

LOVING the new version in every way!

 

question - is there a common location to find the latest releases?  or something I should search the forum for to find it quickly?

 

searching for Download VP9_DX9 returns 0 results...

 

Thanks!

 

Just go to the first page of this thread and the new dx9 tests are there



#1589 BananaBoat

BananaBoat

    Enthusiast

  • Members
  • PipPipPip
  • 228 posts

  • Flag: Australia

  • Favorite Pinball: Tron LE

Posted 26 March 2014 - 02:56 AM

yea i set mine to 1.1 or 1.2 on all my tables... I like it :)

 
Gonna try that, thanks!


Is this done per table or amended globally? Where do I find this setting?

Sent from my HTC_PN071 using Tapatalk



#1590 slashbot

slashbot

    Enthusiast

  • Members
  • PipPipPip
  • 337 posts
  • Location:Ghent

  • Flag: Belgium

  • Favorite Pinball: Scared stiff on vp,Highspeed 2,Fish Tales,T2,Circus Voltaire,Congo

  • 360 Gamer Tag: slashbot

Posted 26 March 2014 - 04:22 AM

Just would like to say that the gfx glitch in four million bc is fixed in test12a



Sent from my iPad using Tapatalk HD

r0sqir-4.pngslashbot.jpgttzReplay.gif

Cabinet Bally Radical - setup 40'' Sony Led for playfield, 32''Led LG for Backglass, LCD screen for DMD, running LEDwiz32 12v setup with DOF and boosterboard to power toys 2x Siemens contactors for flipper feedback -2e audiocard + subwoofer setup to emulate VP flippersounds and vibration in cab (sounds fantastic) 1x red police light flasher.Lots of 5050 RGB Ledstrips bottom,back,top. 1x HUD-G for digital nudge all

Check my Visual Pinball cabinet highscores: HERE

TPA artwork resources gallery here


#1591 mukuste

mukuste

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 854 posts

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

  • Favorite Pinball: Centaur

Posted 26 March 2014 - 09:15 AM

Download VP9_DX9_test13 here: Attached File  VP9_DX9_test13.zip   679.22KB   331 downloads
Important: instead of fullscreen mode, run in "windowed fullscreen" mode.

If you get flicker, please disable 4xMSAA.

Try the frame limiter, e.g. at 120 fps, for smoother gameplay!

Table compatibility spreadsheet (thanks to gtxjoe): https://docs.google....EPwri8/viewform

 

We've built up a nice list of bugfixes, so I think it's time to get a new version out!

 

Changes since Test12:

  • fixed bug introduced in Test12 where solid ramps were not transparent if the texture used an alpha channel
  • light maps from "Enable lighting" now only apply to the top part of walls; this fixes ugly dark streaks on many billboard walls, e.g., Roadshow.
  • the case where multiple overlapping lights all change state in the same frame is now handled properly (thanks to DJRobX for the idea and initial code). Should fix Monopoly, skillshot on LW3, and others.
  • fixed collision bug on WCS'94 and possibly others due to degenerate triangles

Known general issues:

*) textboxes don't work
*) EM reels only work in Image Reel mode, not Text Reel
*) text decals don't work
*) kickers cut the ball in half
*) Stereo 3D only works on NVIDIA so far
*) AA hardwired to 4xMSAA, flickers
*) textures aren't preloaded, can lead to stutter in some cases
*) screen shake doesn't work
*) adaptive vsync always falls back to normal vsync (can only be supported if we drop XP)
*) stereo3D parameters are different
*) "real" full screen mode doesn't work with VPM/B2S. Instead, use "Windowed fullscreen" mode.
*) lost devices aren't handled properly (real fullscreen issue only)
 

Known specific table issues:

https://docs.google....p=sharing#gid=0

 
Happy testing!


#1592 BananaBoat

BananaBoat

    Enthusiast

  • Members
  • PipPipPip
  • 228 posts

  • Flag: Australia

  • Favorite Pinball: Tron LE

Posted 26 March 2014 - 09:28 AM

No, on top of the layback settings. For MB for instance, I keep all angle + layback values, and just slightly change the z to 1.1 or a bit more.
It helps to make the objects "pop" from the screen.
 
It's such an easy change that I'm wondering why we don't see it in recent releases.

You mean the Z scale option in the layback settings. This feature came with 9.2.1 and it's main purpose is to add depth to already released tables ;)


Can someone explain how to do this please?

Sent from my HTC_PN071 using Tapatalk



#1593 mukuste

mukuste

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 854 posts

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

  • Favorite Pinball: Centaur

Posted 26 March 2014 - 10:16 AM

I've added a list of issues to the SVN repository which I consider essential to be fixed before the official DX9 release. (I might have forgotten something, let me know if I did.) I'll also post it here so that people can get an idea how far off we are:
  • fix textboxes
  • fix text reels
  • fix text decals
  • fix kickers cutting the ball in half
  • add video option for "Max prerendered frames" (currently hardcoded to 2)
  • add checkbox to use software vertex processing (fixes rendering on some Intel chipsets)
  • disable MSAA until we fix the flickering
  • improve GUI for vsync/frame limiting (very unintuitive right now)
  • remove true fullscreen options completely?
  • change registry key to be distinct from DX7 versions?
  • nice to have: multi-monitor support; but probably later

Most of these are small things. Let this also be a challenge to all devs to focus on these blockers so that the official DX9 version of VP can become a reality!  :pokey:  :dblthumb:



#1594 unclewilly

unclewilly

    sofa king.....

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

  • Flag: United States of America

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



Posted 26 March 2014 - 10:41 AM

Wow . Not much left to do.

Then we'll be full swing on vp10

Outstanding work.

Thanks to all the devs
Wow . Not much left to do.

Then we'll be full swing on vp10

Outstanding work.

Thanks to all the devs

"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


#1595 JohnnyDoe

JohnnyDoe

    Enthusiast

  • Platinum Supporter
  • 238 posts

  • Flag: Sweden

  • Favorite Pinball: White Water

Posted 26 March 2014 - 11:19 AM

 

 

 

No, on top of the layback settings. For MB for instance, I keep all angle + layback values, and just slightly change the z to 1.1 or a bit more.
It helps to make the objects "pop" from the screen.
 
It's such an easy change that I'm wondering why we don't see it in recent releases.

You mean the Z scale option in the layback settings. This feature came with 9.2.1 and it's main purpose is to add depth to already released tables ;)

 


Can someone explain how to do this please?

Sent from my HTC_PN071 using Tapatalk

 

Open table, click backdrop-button on lefthand menu, change z scale to 1,1 or 1,2.


Edited by JohnnyDoe, 26 March 2014 - 11:32 AM.


#1596 OuchTilt

OuchTilt

    Enthusiast

  • Members
  • PipPipPip
  • 198 posts
  • Location:Essex

  • Flag: United Kingdom

  • Favorite Pinball: Elvira and the Party Monsters

Posted 26 March 2014 - 12:13 PM

The ball cut in half problem,

 

I take it this is linked the the ball completely disappearing when entering the kicker cup on tables such as nitro ground shaker and the original Star Trek table?


blackfx2_cr.jpg  Username:- dallaker


#1597 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 26 March 2014 - 01:16 PM

I would like this very much to ensure backward compatiblity.

  • change registry key to be distinct from DX7 versions?


#1598 DJRobX

DJRobX

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 941 posts
  • Location:Valencia, CA

  • Flag: United States of America

  • Favorite Pinball: F14 Tomcat

Posted 26 March 2014 - 03:10 PM

Reviewing the code for the triggered lights...

m_alreadyAddedLights.clear();
       for (unsigned i = 0; i < m_triggeredLights.size(); ++i)
       {
           Hitable * cur = m_triggeredLights[i];
           if (m_alreadyAddedLights.find(cur) == m_alreadyAddedLights.end())       // not yet added?
           {
               m_vLights.push_back(cur);
               m_alreadyAddedLights.insert(cur);
           }
      

I don't think this is going to work 100%.   You want the most recently changed lights at the end.   The "only once" code here will prevent the order from being preserved completely, because it will only put a light at the end of the vector the first time it's triggered, we want to move only the LAST instance of a triggered light.

 

Consider if I code stacked lights like this:

 

A2 off

A1 on

A1 off

A2 on

 

The top light should now be A2.    This code will put A1 on top, because it already moved A2 once. 

 

The second implementation that I posted changes the vector to a list, and simply moves the light to the end of the list each time it's triggered.   I added indexing so it should be very fast, you don't need to re-search or re-sort the light vector each frame.    


Edited by DJRobX, 26 March 2014 - 03:12 PM.


#1599 mukuste

mukuste

    Pinball Fan

  • VP Dev Team
  • PipPipPipPip
  • 854 posts

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

  • Favorite Pinball: Centaur

Posted 26 March 2014 - 04:02 PM

Reviewing the code for the triggered lights...

m_alreadyAddedLights.clear();
       for (unsigned i = 0; i < m_triggeredLights.size(); ++i)
       {
           Hitable * cur = m_triggeredLights[i];
           if (m_alreadyAddedLights.find(cur) == m_alreadyAddedLights.end())       // not yet added?
           {
               m_vLights.push_back(cur);
               m_alreadyAddedLights.insert(cur);
           }
      

I don't think this is going to work 100%.   You want the most recently changed lights at the end.   The "only once" code here will prevent the order from being preserved completely, because it will only put a light at the end of the vector the first time it's triggered, we want to move only the LAST instance of a triggered light.

 

This is true. It only fails if the same light is triggered multiple times though, which I don't think happens very often. I haven't had time to test this solution thoroughly; how does it work on the known problem cases?

 

A simple fix would be, I think, to process the vector from the back, only adding the last triggered light? The order has to be reversed of course.

 

I'm wary of lists since I don't know how much dynamic allocation they incur, something I like to avoid as much as possible, and since they're bad for cache locality. Also, changing to a list would have made it necessary to change multiple places, whereas I could localize this fix to the one place where the lights are reordered.



#1600 Sunskift

Sunskift

    Enthusiast

  • Gold Supporter
  • 96 posts

  • Flag: Sweden

  • Favorite Pinball: TBD

Posted 26 March 2014 - 07:33 PM

Hi and thanks for a great job !

 

Trying Test13 on AbraCaDabra_B2S_2.0.0, I'm getting a script error "access denied" line 1078 just when pressing START. This is new to Test13 (at least from Test11).

The VPM tables I tried (Taxi and CFTBL) played well.  I wonder however if the ball isn't a bit more "nervous" - I wouldn't call it stutter.....??

 

Thanks again !

 

I will be moving back to Test11 again - which plays all tables I've tried really well.


46", 32", PinDMD2-Vishay DMD, MK MSI Z87-G43 ATX Motherboard, Intel Core i7 4770K 3,5 GHz Processor, 16GB, ASUS GTX760 for the Playfield, ASUS GT610 for the Backglass (driver 334.89), Intel 530 SSD 240GB, Windows 7 x64, VirtuaPin Digital Plunger Kit. VP 9.9.0a and PinballX 1.84