Low performance with vista...

Windows specific forum
User avatar
DoubleDutch
Addict
Addict
Posts: 3220
Joined: Thu Aug 07, 2003 7:01 pm
Location: United Kingdom
Contact:

Post by DoubleDutch »

The problem is the expenses that are now being put on indie developers, especially indie game developers, for FULL compatibility with Vista. Considering I only write freeware, its just not cost effective to spend a couple thousand dollars per game for FULL Vista compatibility.
I really don't know what you are talking about when you say "FULL" compatibility costs a couple of thousand dollars.

Why shouldn't it cost the same as just buying Vista to run on your machine? The SDK is still free.
https://deluxepixel.com <- My Business website
https://reportcomplete.com <- School end of term reports system
SFSxOI
Addict
Addict
Posts: 2970
Joined: Sat Dec 31, 2005 5:24 pm
Location: Where ya would never look.....

Post by SFSxOI »

Brice Manuel wrote:
SFSxOI wrote:in fact I see better performance with Vista then XP ever had with an average increase in frame rates of 10 or more with the exact same hardware that was running with the same games in XP.
This is an unfair statement and you really cannot compare gaming performance of XP and Vista for PB because you are really "not" using the same hardware.

Take a 2D (DirectDraw) game written in PB for an example. Under XP, it will be using DX7 no matter what and it will not be taking full advantage of your video card which will likely be a DX9 or DX8 card. Not to mention under XP, drivers have for years been giving worse performance for older DX7 based stuff as the drivers and hardware are tweaked for DX9 or DX8 performance.

On Vista, that same 2D game will NOT be using DX7 and the api calls are translated at runtime to DX9 calls, and the game will be running as "3D" and it will be taking full advantage of your video card. No matter what version of DX used for older games, they will be running as DX9 and should fly. Unfortunately, due to internal changes in DX over the years, some older 3D stuff does not necessarily have an equivalent in DX9 and instead of being translated to something hardware accelerated, the effect in question can be translated to something in software mode which will degrade performance.

Unfortunately, there are also hideous problems with drivers for some cards, and especially running something DX7 based with certain drivers. Until Nvidia gets their act together, you can sometimes get better performance using OpenGL.
I wish everyone would just boycott Vista.
I am but for different reasons. My main target is now Linux and the only versions of Windows my software will run on is XP and 2000. I won't support Vista, ME, 98, 95.
maybe I don't understand then what you mean. If I take an XP machine, reformat it and install Vista without changing any hardware in the machine, how is this not running Vista with the same exact hardware that was in the machine when XP was installed? How is it not a fair statement to say that? How would I "not" be using the same hardware if the only thing that changed was the OS from XP to Vista? I don't understand what you mean. And...how is it an unfair statement?
Brice Manuel

Post by Brice Manuel »

How is it not a fair statement to say that?
Its not a case of comparing apples to oranges, but more of a case of comparing apples to apple pie.

Think of your graphics card as the apple pie. Under Vista your PB 2D game would be using all of the ingredients necessary to make the apple pie. Under XP, your PB 2D game would only be using the apples which is only one of the ingredients in an apple pie.
If I take an XP machine, reformat it and install Vista without changing any hardware in the machine, how is this not running Vista with the same exact hardware that was in the machine when XP was installed?
As I explained in great detail and using a PB 2D game as an example, on XP running that game you are just not able to use all the capabilities and power of your graphics card. Under Vista, that same game will use all the capabilities and power of your graphics card.

It is not fair to compare the two, because the PB 2D game would be rendered completely differently on XP than on Vista. One would be fully using all of your hardware, one wouldn't.

Current driver issues aside, Vista should be awesome for gaming, especially for older games.
SFSxOI
Addict
Addict
Posts: 2970
Joined: Sat Dec 31, 2005 5:24 pm
Location: Where ya would never look.....

Post by SFSxOI »

Brice Manuel wrote:
How is it not a fair statement to say that?
Its not a case of comparing apples to oranges, but more of a case of comparing apples to apple pie.

Think of your graphics card as the apple pie. Under Vista your PB 2D game would be using all of the ingredients necessary to make the apple pie. Under XP, your PB 2D game would only be using the apples which is only one of the ingredients in an apple pie.
If I take an XP machine, reformat it and install Vista without changing any hardware in the machine, how is this not running Vista with the same exact hardware that was in the machine when XP was installed?
As I explained in great detail and using a PB 2D game as an example, on XP running that game you are just not able to use all the capabilities and power of your graphics card. Under Vista, that same game will use all the capabilities and power of your graphics card.

It is not fair to compare the two, because the PB 2D game would be rendered completely differently on XP than on Vista. One would be fully using all of your hardware, one wouldn't.

Current driver issues aside, Vista should be awesome for gaming, especially for older games.
OK, I understand what your saying now. I thought you were indicating that the hardware its self somehow 'magically' changed when Vista was installed.

In context with the reviews on the web that people always point to as so called 'proof' that Vista will be slower for gaming; In reality its not slower, its just different due to the way it addreses memory, hardware, and various aspects of software (including drivers). If the hardware and software being used don't allow Vista to address it properly then yes its going to seem slower due to the 'compatability' things that Vista now needs to do. Its like anything else, if the requirements are satisfied then it works. The same things were said about XP when it was introduced. I've found from day one of my beta testing with Vista and having lived with it for the last two years during the beta and now in production use that Vista manages things much better then any previous MS OS ever did, as long as the requirements are satisfied.
User avatar
Joakim Christiansen
Addict
Addict
Posts: 2452
Joined: Wed Dec 22, 2004 4:12 pm
Location: Norway
Contact:

Post by Joakim Christiansen »

I noticed that 2d drawing functions was really slow, let's test an example I got. Notice how this is really slow on Vista, it gives me like 22fps. Anyone know how to speed such things up on Vista?

Code: Select all

EnableExplicit

;-Constants
#Name      = "The Game"
#Version   = "v1.0 Alpha 1"
#Copyright = "Copyright © 2006 Some Stupid Guy."
#ScreenWidth  = 1024
#ScreenHeight = 768
#ScreenDepth  = 32

;-Enumeration
Enumeration ;Menues
  #mnu_None
  #mnu_Main
  #mnu_SinglePlayer
  #mnu_HostGame
  #mnu_JoinGame
  #mnu_Options
EndEnumeration
Enumeration ;Fonts
  #fnt_Impact_18
  #fnt_Impact_24
  #fnt_Impact_120
EndEnumeration
Enumeration ;Sprites
  #spr_Cursor
  #spr_ScreenShot
EndEnumeration

;-Variables
Global MB_Left, Menu = #mnu_Main

;-Procedures
Procedure DrawTextCentered(X,Y,String$)
  DrawText(X-TextWidth(String$)/2,Y-TextHeight(String$)/2,String$)
EndProcedure
Procedure DrawTextXCentered(X,Y,String$)
  DrawText(X-TextWidth(String$)/2,Y,String$)
EndProcedure
Procedure MB_Left() ;0 = False, 1 = Pressed, 2 = Down, 3 = Released
  If MouseButton(1)
    If MB_Left = 0
      MB_Left = 1
    Else
      MB_Left = 2
    EndIf
  Else
    If MB_Left = 3
      MB_Left = 0
    ElseIf MB_Left = 2
      MB_Left = 3
    EndIf
  EndIf
EndProcedure
Procedure SaveScreen()
  Static Number
  Number + 1
  GrabSprite(#spr_ScreenShot,0,0,#ScreenWidth,#ScreenHeight)
  SaveSprite(#spr_ScreenShot,"screenshot"+Str(Number)+".bmp")
  FreeSprite(#spr_ScreenShot)
EndProcedure
Procedure.l DrawMenuButton(X,Y,Text$)
  Protected Pressed, Width = 300, Height = 48
  X - Width/2
  
  Box(X,Y,Width,Height,RGB(0,96,64))
  If MouseX() > X And MouseX() < X+Width And MouseY() > Y And MouseY() < Y+Height
    If MB_Left = 3
      Pressed = #True
      MB_Left = 0
    EndIf
    Box(X+3,Y+3,Width-6,Height-6,RGB(0,184,64))
    FrontColor(RGB(200,0,0))
  Else
    Box(X+3,Y+3,Width-6,Height-6,RGB(0,128,64))
    FrontColor(RGB(100,0,0))
  EndIf
  
  DrawingFont(FontID(#fnt_Impact_24))
  DrawTextCentered(X+Width/2,Y+Height/2,Text$)
  
  ProcedureReturn Pressed
EndProcedure
Procedure.l MainMenu()
  Protected Selected = -1, Frames, TimeWas, FPS
  
  Repeat
    ExamineKeyboard(): ExamineMouse(): MB_Left()
    If KeyboardReleased(#PB_Key_Escape)
      Selected = 4
    ElseIf KeyboardReleased(#PB_Key_F12)
      SaveScreen()
    EndIf
    
    ;Calculate FPS
    Frames + 1
    If ElapsedMilliseconds()-TimeWas >= 1000
      TimeWas = ElapsedMilliseconds()
      FPS = Frames
      Frames = 0
    EndIf
    
    Delay(2): FlipBuffers(): ClearScreen(#Black)
    
    StartDrawing(ScreenOutput())
      DrawingMode(#PB_2DDrawing_Transparent)
      
      DrawText(512,4,Str(FPS),#White)
      
      FrontColor(RGB(0,0,198))
      DrawingFont(FontID(#fnt_Impact_120))
      DrawTextXCentered(#ScreenWidth/2,68,#Name)
      
      FrontColor(RGB(198,0,0))
      DrawingFont(FontID(#fnt_Impact_24))
      DrawTextXCentered(#ScreenWidth/2,240,#Version)
      
      DrawingFont(FontID(#fnt_Impact_18))
      DrawTextXCentered(#ScreenWidth/2,620,#Copyright)
      DrawTextXCentered(#ScreenWidth/2,645,"All rights reserved.")
      
      If DrawMenuButton(#ScreenWidth/2,300,"Single player")
        Selected = 0
      ElseIf DrawMenuButton(#ScreenWidth/2,362,"Host game")
        Selected = 1
      ElseIf DrawMenuButton(#ScreenWidth/2,424,"Join game")
        Selected = 2
      ElseIf DrawMenuButton(#ScreenWidth/2,486,"Options")
        Selected = 3
      ElseIf DrawMenuButton(#ScreenWidth/2,548,"Exit")
        Selected = 4
      EndIf
    StopDrawing()
    
    DisplayTransparentSprite(#spr_Cursor,MouseX()-16,MouseY()-16)
  Until Selected > -1
  
  ProcedureReturn Selected
EndProcedure
Procedure.l Options()
  Protected Selected = -1
  
  Repeat
    ExamineKeyboard(): ExamineMouse(): MB_Left()
    If KeyboardReleased(#PB_Key_Escape)
      Selected = 0
    ElseIf KeyboardReleased(#PB_Key_F12)
      SaveScreen()
    EndIf
    
    Delay(2): FlipBuffers(): ClearScreen(#Black)
    
    StartDrawing(ScreenOutput())
      DrawingMode(#PB_2DDrawing_Transparent)
      
      FrontColor(RGB(0,0,198))
      DrawingFont(FontID(#fnt_Impact_120))
      DrawTextXCentered(#ScreenWidth/2,68,"Options")
      
      FrontColor(RGB(198,0,0))
      DrawingFont(FontID(#fnt_Impact_24))
      DrawTextXCentered(#ScreenWidth/2,240,"Game options")
      
      If DrawMenuButton(#ScreenWidth/2,548,"Back")
        Selected = 0
      EndIf
    StopDrawing()
    
    DisplayTransparentSprite(#spr_Cursor,MouseX()-16,MouseY()-16)
  Until Selected > -1
  
  ProcedureReturn Selected
EndProcedure

;-Initialize and open screen
If Not (InitKeyboard() And InitMouse() And InitSprite())
  MessageRequester("Warning!","DirectX 7 or later not found!",#MB_ICONWARNING)
  End
EndIf
If Not OpenScreen(#ScreenWidth,#ScreenHeight,#ScreenDepth,#Name)
  MessageRequester("Warning!","Can't open a "+Str(#ScreenWidth)+"x"+Str(#ScreenHeight)+" "+Str(#ScreenDepth)+"bit screen!",#MB_ICONWARNING)
  End
EndIf

;-Load resources
;LoadFont(#fnt_Arial_08_Bold,"Arial",8,#PB_Font_Bold)
LoadFont(#fnt_Impact_18,"Impact",18)
LoadFont(#fnt_Impact_24,"Impact",24)
LoadFont(#fnt_Impact_120,"Impact",120)
;Create a crappy mouse cursor
CreateSprite(#spr_Cursor,32,32)
StartDrawing(SpriteOutput(#spr_Cursor))
  DrawingMode(#PB_2DDrawing_Outlined)
  Circle(16,16,16,#Red)
  Circle(16,16,1,#Red)
StopDrawing()

MouseLocate(#ScreenWidth/2,415)

;-Main loop start
Repeat
  ;-Menu handling
  Select Menu
    Case #mnu_Main
      Select MainMenu()
        Case 0: Menu = #mnu_None ;Single player
        Case 1: ;Host game
        Case 2: ;Join game
        Case 3: Menu = #mnu_Options
        Case 4: Break
      EndSelect
    Case #mnu_Options
      Select Options()
        Case 0: Menu = #mnu_Main
      EndSelect
  EndSelect
  If Menu <> #mnu_None: Continue: EndIf
  
  ;-The game...
  Delay(2): FlipBuffers(): ClearScreen(#Black)
  
  StartDrawing(ScreenOutput())
    DrawingMode(#PB_2DDrawing_Transparent)
    FrontColor(RGB(0,0,198))
    DrawingFont(FontID(#fnt_Impact_18))
    DrawTextXCentered(#ScreenWidth/2,100,"You lose! Press escape to continue! (really fun game)")
  StopDrawing()
  
  ExamineKeyboard()
  If KeyboardReleased(#PB_Key_Escape)
    Menu = #mnu_Main
  EndIf
ForEver
I like logic, hence I dislike humans but love computers.
lethalpolux
Enthusiast
Enthusiast
Posts: 171
Joined: Sun Jun 08, 2003 10:50 pm
Location: France
Contact:

Post by lethalpolux »

Fred, what do yo think about all of that???
some persons tell me that for example Lethal Judgment 4 benchmark run slowly on Vista ( 10fps ) but fast on Xp ( 60fps )...
what can we do?
i think i will have a vista pc at work nearly... no more PB games??? :(
Pol.
Intel Core2Duo 6600 - 3Gb DDR2 - Geforce8800Gts - Vista Home Premium 32bits
Fred
Administrator
Administrator
Posts: 18360
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Post by Fred »

If the problem is confirmed (and not a wierd driver related one) we will adapt the DirectX subsystem to support Vista.
lethalpolux
Enthusiast
Enthusiast
Posts: 171
Joined: Sun Jun 08, 2003 10:50 pm
Location: France
Contact:

Post by lethalpolux »

Some people of the french forum have tested my engine ( with lethal 4 benchmark ) with big computer ( coreduo/Geforce7600/2Go ) on vista and the problem of performance is confirmed ( with latest drivers from nvidia )...
10fps on the first scene on vista, 60 on xp....
Pol.
Intel Core2Duo 6600 - 3Gb DDR2 - Geforce8800Gts - Vista Home Premium 32bits
Post Reply