Seite 1 von 1

3 Monitore und Engine3D, Absturz beim Beenden.

Verfasst: 11.09.2017 14:02
von tft
Hallo,

ich habe da ein Problem entdeckt, das für die meisten eher nicht relevant ist.
Mich aber sehr nervt.

Ich habe 3 Monitore, Monitor 1 ist in der Mitte, Monitor 2 ist rechts und Monitor 3 ist links mit
einem Negativ Offset.

Hier erstmal der Code

Code: Alles auswählen


#EventForce = 1

Global Event,Quit

InitEngine3D() 
InitSprite() 

Procedure DebugLog(t.s)
  
  If DebugLog
    Debug(t)
  EndIf
  
EndProcedure
Procedure Timer()
  
  Select EventTimer()
    Case #EventForce
      ; Dieser Code Teil muss in die TimerEvent Procedure, Weil sonst beim bewegen des Fensters
      ; Das Programm bei WaitEvent stehen bleibt. Ein bekanntes Problem ab W 7 durch die einfürung
      ; des Binding Systems
      
      If RunTest < ElapsedMilliseconds()
        RunTest =  ElapsedMilliseconds()+1000
        debuglog("Main Schleife läuft")
      EndIf
      ;----------------------------------------------------------------------------------------
  EndSelect
  
EndProcedure 

OpenWindow(0, 0, 0, 640, 480, "Cube example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 0, 0, 0)

; Damit beim Windows Verschieben der Code nicht stehen bleibt.
AddWindowTimer(0, #EventForce , 100)
BindEvent(#PB_Event_Timer, @Timer(), 0)

; Light
CreateLight(#PB_Any, RGB(25, 25, 180), -5, 10, 5, #PB_Light_Point)

; Camera
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 2, 1, 3, #PB_Absolute | #PB_Local)
CameraLookAt(0, 0, 0, 0)

; Erstelle den Würfel und binde ihn an die Szene
CreateCube(0, 1)
CreateEntity(0, MeshID(0), #PB_Material_None)

Repeat 
  
  Repeat
    Event = WindowEvent()
    If Event
      If EventWindow() = 0
        Select Event
          Case #PB_Event_Gadget
            Select EventGadget()
              Case 1   
            EndSelect
            
          Case #WM_KEYDOWN 
            
            Select EventwParam()
              Case #ESC
                Quit = 1
            EndSelect
            
          Case #PB_Event_CloseWindow 
            Quit = 1
          Default
            
        EndSelect
      EndIf
    Else
      Delay(1)
    EndIf
  Until Event = 0
  
  If Quit = 1
    If MessageRequester("Quit Requester","You are quite the programm ",#PB_MessageRequester_YesNo  ) = #PB_MessageRequester_No     
      Quit = 0
    EndIf           
  EndIf
  
  RotateEntity(0, 1, -1, 0 ,#PB_Relative)
  
  RenderWorld()
  FlipBuffers()
  
Until Quit = 1 

CloseWindow(#PB_All)

End
Wenn jetzt das Fenster in den rechten oder linken Monitor verschoben wird. Stürzt die
Engine ab. Was bei einem Programm ende mit einem Fehler endet.

Code: Alles auswählen

[11:05:32] Warte auf den Start des Executable...
[11:05:31] Executable-Typ: Windows - x86  (32bit, Unicode)
[11:05:32] Executable gestartet.
[11:05:39] [ERROR] Main.pb (Zeile: 51)
[11:05:39] [ERROR] Ungültiger Speicherzugriff. (Schreibfehler an der Adresse 359582440)
[11:05:48] Das Programm wurde beendet.
[11:06:34] Warte auf den Start des Executable...
[11:06:34] Executable-Typ: Windows - x86  (32bit, Unicode)
[11:06:34] Executable gestartet.
[11:06:47] [ERROR] Main.pb (Zeile: 25)
[11:06:47] [ERROR] Ungültiger Speicherzugriff. (Lesefehler an der Adresse 8)
[11:07:00] Das Programm wurde beendet.
[11:07:09] Warte auf den Start des Executable...
[11:07:09] Executable-Typ: Windows - x86  (32bit, Unicode)
[11:07:09] Executable gestartet.
[11:07:23] [ERROR] Main.pb (Zeile: 25)
[11:07:23] [ERROR] Ungültiger Speicherzugriff. (Lesefehler an der Adresse 23)
[11:08:09] Das Programm wurde beendet.
[13:48:43] Warte auf den Start des Executable...
[13:48:43] Executable-Typ: Windows - x86  (32bit, Unicode)
[13:48:43] Executable gestartet.
[13:48:50] [ERROR] Main.pb (Zeile: 97)
[13:48:50] [ERROR] Ungültiger Speicherzugriff. (Schreibfehler an der Adresse 4099286488)
Da es sein kann das ich etwas nicht berücksichtige was anderen total klar ist. Schreibe ich es erstmal hier rein.
Bevor ich es als Bug betitle.

Der Absturz erfolgt erst, wenn das Fenster beim Verschieben losgelassen wird.

Gruss TFT

Re: 3 Monitore und Engine3D, Absturz beim Beenden.

Verfasst: 11.09.2017 21:02
von tft
das ist das debuglog vom Ogre

Code: Alles auswählen

20:58:46: Creating resource group General
20:58:46: Creating resource group Internal
20:58:46: Creating resource group Autodetect
20:58:46: SceneManagerFactory for type 'DefaultSceneManager' registered.
20:58:46: Registering ResourceManager for type Material
20:58:46: Registering ResourceManager for type Mesh
20:58:46: Registering ResourceManager for type Skeleton
20:58:46: MovableObjectFactory for type 'ParticleSystem' registered.
20:58:46: OverlayElementFactory for type Panel registered.
20:58:46: OverlayElementFactory for type BorderPanel registered.
20:58:46: OverlayElementFactory for type TextArea registered.
20:58:46: Registering ResourceManager for type Font
20:58:46: ArchiveFactory for archive type FileSystem registered.
20:58:46: ArchiveFactory for archive type Zip registered.
20:58:46: ArchiveFactory for archive type EmbeddedZip registered.
20:58:46: DDS codec registering
20:58:46: FreeImage version: 3.10.0
20:58:46: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
20:58:46: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,koa,iff,lbm,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,dds,gif,g3,sgi,j2k,j2c,jp2
20:58:46: PVRTC codec registering
20:58:46: Registering ResourceManager for type HighLevelGpuProgram
20:58:46: Registering ResourceManager for type Compositor
20:58:46: MovableObjectFactory for type 'Entity' registered.
20:58:46: MovableObjectFactory for type 'Light' registered.
20:58:46: MovableObjectFactory for type 'BillboardSet' registered.
20:58:46: MovableObjectFactory for type 'ManualObject' registered.
20:58:46: MovableObjectFactory for type 'BillboardChain' registered.
20:58:46: MovableObjectFactory for type 'RibbonTrail' registered.
20:58:46: *-*-* OGRE Initialising
20:58:46: *-*-* Version 1.8.2 (Byatis)
20:58:46: D3D9 : Direct3D9 Rendering Subsystem created.
20:58:46: D3D9: Driver Detection Starts
20:58:46: D3D9: Driver Detection Ends
20:58:46: Particle Emitter Type 'Point' registered
20:58:46: Particle Emitter Type 'Box' registered
20:58:46: Particle Emitter Type 'Ellipsoid' registered
20:58:46: Particle Emitter Type 'Cylinder' registered
20:58:46: Particle Emitter Type 'Ring' registered
20:58:46: Particle Emitter Type 'HollowEllipsoid' registered
20:58:46: Particle Affector Type 'LinearForce' registered
20:58:46: Particle Affector Type 'ColourFader' registered
20:58:46: Particle Affector Type 'ColourFader2' registered
20:58:46: Particle Affector Type 'ColourImage' registered
20:58:46: Particle Affector Type 'ColourInterpolator' registered
20:58:46: Particle Affector Type 'Scaler' registered
20:58:46: Particle Affector Type 'Rotator' registered
20:58:46: Particle Affector Type 'DirectionRandomiser' registered
20:58:46: Particle Affector Type 'DeflectorPlane' registered
20:58:46: PCZone Factory Type 'ZoneType_Default' registered
20:58:46: CPU Identifier & Features
20:58:46: -------------------------
20:58:46:  *   CPU ID: GenuineIntel: Intel(R) Core(TM) i5-4670K CPU @ 3.40GHz
20:58:46:  *      SSE: yes
20:58:46:  *     SSE2: yes
20:58:46:  *     SSE3: yes
20:58:46:  *      MMX: yes
20:58:46:  *   MMXEXT: yes
20:58:46:  *    3DNOW: no
20:58:46:  * 3DNOWEXT: no
20:58:46:  *     CMOV: yes
20:58:46:  *      TSC: yes
20:58:46:  *      FPU: yes
20:58:46:  *      PRO: yes
20:58:46:  *       HT: no
20:58:46: -------------------------
20:58:46: D3D9 : Subsystem Initialising
20:58:46: Registering ResourceManager for type Texture
20:58:46: Registering ResourceManager for type GpuProgram
20:58:46: ***************************************
20:58:46: *** D3D9 : Subsystem Initialised OK ***
20:58:46: ***************************************
20:58:46: SceneManagerFactory for type 'OctreeSceneManager' registered.
20:58:46: SceneManagerFactory for type 'BspSceneManager' registered.
20:58:46: Registering ResourceManager for type BspLevel
20:58:46: D3D9RenderSystem::_createRenderWindow "PureBasic Ogre", 640x480 windowed  miscParams: FSAA=0 displayFrequency=0 externalWindowHandle=5507600 vsync=true 
20:58:46: D3D9 : Created D3D9 Rendering Window 'PureBasic Ogre' : 640x480, 32bpp
20:58:47: D3D9: Vertex texture format supported - PF_A8R8G8B8
20:58:47: D3D9: Vertex texture format supported - PF_B8G8R8A8
20:58:47: D3D9: Vertex texture format supported - PF_FLOAT16_RGB
20:58:47: D3D9: Vertex texture format supported - PF_FLOAT16_RGBA
20:58:47: D3D9: Vertex texture format supported - PF_FLOAT32_RGB
20:58:47: D3D9: Vertex texture format supported - PF_FLOAT32_RGBA
20:58:47: D3D9: Vertex texture format supported - PF_R8G8B8A8
20:58:47: D3D9: Vertex texture format supported - PF_DEPTH
20:58:47: D3D9: Vertex texture format supported - PF_FLOAT16_R
20:58:47: D3D9: Vertex texture format supported - PF_FLOAT32_R
20:58:47: D3D9: Vertex texture format supported - PF_FLOAT16_GR
20:58:47: D3D9: Vertex texture format supported - PF_FLOAT32_GR
20:58:47: D3D9: Vertex texture format supported - PF_PVRTC_RGB2
20:58:47: D3D9: Vertex texture format supported - PF_PVRTC_RGBA2
20:58:47: D3D9: Vertex texture format supported - PF_PVRTC_RGB4
20:58:47: D3D9: Vertex texture format supported - PF_PVRTC_RGBA4
20:58:47: D3D9: Vertex texture format supported - PF_R8
20:58:47: D3D9: Vertex texture format supported - PF_RG8
20:58:47: RenderSystem capabilities
20:58:47: -------------------------
20:58:47: RenderSystem Name: Direct3D9 Rendering Subsystem
20:58:47: GPU Vendor: nvidia
20:58:47: Device Name: Monitor-3-NVIDIA GeForce GTX TITAN
20:58:47: Driver Version: 22.21.13.8205
20:58:47:  * Fixed function pipeline: yes
20:58:47:  * Hardware generation of mipmaps: yes
20:58:47:  * Texture blending: yes
20:58:47:  * Anisotropic texture filtering: yes
20:58:47:  * Dot product texture operation: yes
20:58:47:  * Cube mapping: yes
20:58:47:  * Hardware stencil buffer: yes
20:58:47:    - Stencil depth: 8
20:58:47:    - Two sided stencil support: yes
20:58:47:    - Wrap stencil values: yes
20:58:47:  * Hardware vertex / index buffers: yes
20:58:47:  * Vertex programs: yes
20:58:47:  * Number of floating-point constants for vertex programs: 256
20:58:47:  * Number of integer constants for vertex programs: 16
20:58:47:  * Number of boolean constants for vertex programs: 16
20:58:47:  * Fragment programs: yes
20:58:47:  * Number of floating-point constants for fragment programs: 224
20:58:47:  * Number of integer constants for fragment programs: 16
20:58:47:  * Number of boolean constants for fragment programs: 16
20:58:47:  * Geometry programs: no
20:58:47:  * Number of floating-point constants for geometry programs: 0
20:58:47:  * Number of integer constants for geometry programs: 0
20:58:47:  * Number of boolean constants for geometry programs: 0
20:58:47:  * Supported Shader Profiles: hlsl ps_1_1 ps_1_2 ps_1_3 ps_1_4 ps_2_0 ps_2_a ps_2_b ps_2_x ps_3_0 vs_1_1 vs_2_0 vs_2_a vs_2_x vs_3_0
20:58:47:  * Texture Compression: yes
20:58:47:    - DXT: yes
20:58:47:    - VTC: no
20:58:47:    - PVRTC: no
20:58:47:  * Scissor Rectangle: yes
20:58:47:  * Hardware Occlusion Query: yes
20:58:47:  * User clip planes: yes
20:58:47:  * VET_UBYTE4 vertex element type: yes
20:58:47:  * Infinite far plane projection: yes
20:58:47:  * Hardware render-to-texture: yes
20:58:47:  * Floating point textures: yes
20:58:47:  * Non-power-of-two textures: yes
20:58:47:  * Volume textures: yes
20:58:47:  * Multiple Render Targets: 4
20:58:47:    - With different bit depths: yes
20:58:47:  * Point Sprites: yes
20:58:47:  * Extended point parameters: yes
20:58:47:  * Max Point Size: 8192
20:58:47:  * Vertex texture fetch: yes
20:58:47:  * Number of world matrices: 0
20:58:47:  * Number of texture units: 8
20:58:47:  * Stencil buffer depth: 8
20:58:47:  * Number of vertex blend matrices: 0
20:58:47:    - Max vertex textures: 4
20:58:47:    - Vertex textures shared: no
20:58:47:  * Render to Vertex Buffer : no
20:58:47:  * DirectX per stage constants: yes
20:58:47: DefaultWorkQueue('Root') initialising on thread main.
20:58:47: Particle Renderer Type 'billboard' registered
20:58:47: Can't assign material Cube to SubEntity of E67373144 because this Material does not exist. Have you forgotten to define it in a .material script?


Re: 3 Monitore und Engine3D, Absturz beim Beenden.

Verfasst: 14.09.2017 19:26
von GPI
Kann ich bestätigen, Win10, PB3.61
Es scheint, das beim verschieben auf einen anderen Monitor sämtliche OGRE-Resourcen freigegeben werden, ohne das es PB mitbekommt. Das versucht bei End selbiges nochmal und schmiert ab.

Erstell mal ein Bugreport in Englischen Forum.