Aktuelle Zeit: 11.12.2018 02:30

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Bugs wan Oger wan purebasic ? (windows10)(pgreScharedPtr.h)
BeitragVerfasst: 26.09.2018 10:05 
Offline

Registriert: 13.08.2016 12:53
Moin,
ich hoffe hir ist die frage richtig...

da ich mir nicht sicher bin wollte ich mal fragen wo genau purebasic aufhört / wo ogre 3d anfängt.

meine Vermutung ist aktuell das die Engine3D.dll purebasic der richtige Kontakt ist ... aber wann ist dann ogre der richtige Kontakt?

den aktuell habe ich diverse Probleme und frage mich ob es evtl dafür Lösungen gibt die ich nicht einfach finde .....

z.b. ein Fehler beim nutzen von 3D Sachen (aber nur manchmal (gefühlt zufällig) beim gleichen code...)...

Code:
titel: Microsoft Visual C++ Runtim Library
typ: X (erreor logo)

Programm: C:\Programm Files\PureBasic\compilers\engine3D.dll
File:
c:\purepasic\svn\v5.60\ogre\ogremain\...\pgreScharedPtr.h
Line: 160

Expression: pRep

......


dazu habe ich den link gefunden ...
(nutzen auf eigen Gefahr) https://www.purebasic.fr/english/viewto ... 13&t=68413
da ich aber Windows 10 habe mit dx 12 und das grade überprüft habe so wie aktuelle Treiber usw ...

hilft mir das irgendwie nicht

dazu habe ich im bereich Threads Probleme das die 3D Sachen in Thread´s ignoriert werden


nun habe ich zusätzlich noch das problem ... das ich mich frage habe ich den Fehler geschaffen durch ein Fehler im code oder wie kommt der zustanden (wobei mich dabei irritiert das ms Visual C++ da im titel steht)

und das Datei unter File bei mir nicht existiert...

da bei Bugs wenn ich das richtig verstandenen habe gewisse angaben gemacht werden sollten... (z.b. falls es verschoben werden sollte oder falls es hilft ...)


PB-Version: PureBasic(demo) 5.62(x64) (auf windows )
OS: Windows 10 64bit
Compilereinstellungen:
[x] InlineASM Syntax-Einfärbung einschalten
[?] Unicode-Executable erstellen
[x] Thread-sicheres Executable erstellen
[x] OnError-Unterstützung einschalten
[x] Moderne Themen-Unterstützung aktivieren (für Windows XP und höher)
[ ] Administrator-Modus für Windows Vista und höher anfordern
[ ] User-Modus für Windows Vista und höher anfordern (keine Virtualisierung)
Library Subsystem:[leeres Feld]

Error taucht nicht bei jeden starte auf aber gefühlt jedes 2te mal ....
Laut Darstellung (was der Debugger anzeigt an eingefärbten Daten (ich glaube aber nicht das es das problem ist))

(minimaler Code(glaube nicht das es das echte problem ist )
Code:
For i=1 To map_kacheln
  For ii=1 To map_kacheln
    Debug "mi1"
    LockMutex(map_loc)
    Debug "mi2"
    UnlockMutex(map_loc)
  Next
 Next


ps: tut mir leid wenn der text schwer zu verstehen ist ich versuche es so gut wie möglich (ich bin leider nicht so gut in der Schreibweise) (warum ich das nicht unter Bugs schreibe? ... ich weis nicht ob es zu pb gehört ... und ich weis nicht ob es reichen würde das dann in diesem Forum zu schreiben...?) des weitern kann man eigentlich irgendwo sehen ob der bug behoben worden ist ? wenn man einen findet (gibt es ein Version´s log oder so? )?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugs wan Oger wan purebasic ? (windows10)(pgreScharedPtr
BeitragVerfasst: 26.09.2018 12:42 
Offline
Benutzeravatar

Registriert: 21.08.2006 17:39
Hi,

ich tippe ganz stark auf ein Problem durch die Threads.
Leider musste ich in der Vergangenheit auch feststellen,
dass ogre nur im Hauptthread lauffähig ist.
Sobald Threads ebenfalls ogre Funktionen nutzen,
kommt es im Speicher manchmal zu Schreibkollisionen.
Das äußert sich dann durch zufällige Absturze.

MFG
MIB

_________________
(hab alles, kann alles, weiß alles!!^^)

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugs wan Oger wan purebasic ? (windows10)(pgreScharedPtr
BeitragVerfasst: 30.09.2018 18:26 
Offline

Registriert: 13.08.2016 12:53
vielen dank man in black
(soory das ich erst jetzt antworte )


das ist, finde ich, echt traurig...

ich hatte wenigstens gehofft das der Netzwerk bereich bei 3D Sachen nicht im haupt bereich laufen müsste so wie die Eingabe abfrage...



gibt es schon irgendwelche Information wann es sich ändert ? (muss ich das noch mal wo schreiben in einem Forum oder so ... )

und gibt es eine stelle wo ich den status dazu sehen kann ( oder wenigstens wenn es fertig ist ?)?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugs wan Oger wan purebasic ? (windows10)(pgreScharedPtr
BeitragVerfasst: 30.09.2018 20:26 
Offline

Registriert: 13.08.2016 12:53
hi,
ergänzend zu den anderen da mir das grad erst wider eingefallen ist ....

zu einen anderen Engiene3D.dll error Meldung...
habe eine Lösung (falls wer braucht....)

Code:
titel: Microsoft Visual C++ Runtim Library
typ: X (erreor logo)

Programm: C:\Programm Files\PureBasic\compilers\engine3D.dll
File: OgreTerrainQuadTreeNode.cpp
Line: 101

Expression: lod ==(ownLod -1) && "The lod passed in
schould reflect the number of "" lods in a leaf"

......


(dies ist ein anderer error wo ich eine Lösung zu nenne kann als der erste Eintrag)
ich konnte den error mit line 101 beheben in dem ich die Terrain Größe geändert habe ... z.b. 8 geht 9 geht nicht(eine ide oder debugger error Meldung die das verständlicher macht wäre mir lieber gewesen ..)

ps: ich hoffe es hilft wem ...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugs wan Oger wan purebasic ? (windows10)(pgreScharedPtr
BeitragVerfasst: 30.09.2018 22:08 
Offline
Benutzeravatar

Registriert: 21.08.2006 17:39
Hi,

alles, was nichts mit ogre zu tun hat,
kannst du in Threads auslagern (network, ... ).
Du müsstest dir nur für die ogre-befehle ein workaround überlegen. ;)

MFG
MIB

_________________
(hab alles, kann alles, weiß alles!!^^)

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugs wan Oger wan purebasic ? (windows10)(pgreScharedPtr
BeitragVerfasst: 01.10.2018 09:28 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Aus dem Thread mit PostEvent befehle an dem MainScope schicken.
So in der Art wie mein ThreadToGUI...

Struktuell könnte es so aussehen...
Code:
;-TOP

CompilerIf #PB_Compiler_Thread = 0
  CompilerError "Use Compiler-Option ThreadSafe"
CompilerEndIf

Enumeration CustomEvent #PB_Event_FirstCustomValue
  #MyEventOgre
EndEnumeration

Structure udtOgreData
  signal.i
  s1.s
  v1.i
  v2.i
EndStructure

Structure udtThreadData
  ThreadID.i
  Exit.i
  ; Data
EndStructure

Procedure DoEventOgreData()
  Protected *data.udtOgreData
  *data = EventData()
  If *data
    With *data
      Debug \s1
      Debug \v1
    EndWith
    If *data\signal
      SignalSemaphore(*data\signal)
    Else
      FreeStructure(*data)
    EndIf
  EndIf
EndProcedure

Procedure thWork(*data.udtThreadData)
  Protected *send.udtOgreData 
  Debug "Start Thread..."
  While Not *data\Exit
    *send = AllocateStructure(udtOgreData)
    *send\s1 = "ThreadID " + *data\ThreadID
    *send\v1 = Random(100)
    PostEvent(#MyEventOgre, 0, 0, 0, *send)
    Delay(500)
  Wend
  Debug "Stopped Thread."
EndProcedure

Procedure thWorkSignal(*data.udtThreadData)
  Protected *send.udtOgreData 
  Debug "Start Thread with Signal..."
  *send = AllocateStructure(udtOgreData)
  *send\signal = CreateSemaphore()
  While Not *data\Exit
    *send\s1 = "ThreadID with Signal" + *data\ThreadID
    *send\v1 = Random(100)
    PostEvent(#MyEventOgre, 0, 0, 0, *send)
    WaitSemaphore(*send\signal)
    Delay(1000)
  Wend
  FreeSemaphore(*send\signal)
  Debug "Stopped Thread with Signal."
EndProcedure

Global th1.udtThreadData
Global th2.udtThreadData

Procedure Main()
  Protected ExitTime
 
  BindEvent(#MyEventOgre, @DoEventOgreData())
 
  th1\ThreadID = CreateThread(@thWork(), th1)
  th2\ThreadID = CreateThread(@thWorkSignal(), th2)
 
  If OpenWindow(0, 100, 100, 400, 240, "Test", #PB_Window_SystemMenu)
   
    Repeat
      Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          Break
      EndSelect
    ForEver
   
  EndIf
 
  ; Stop Thread
  If IsThread(th1\ThreadID)
    th1\Exit = 1
  EndIf
  If IsThread(th1\ThreadID)
    th2\Exit = 1
  EndIf
  ExitTime = ElapsedMilliseconds()
  Repeat
    WaitWindowEvent(100)
    If ElapsedMilliseconds() - ExitTime > 1500
      Break
    EndIf
  ForEver
  ; Kill blocking Thread
  If IsThread(th1\ThreadID)
    KillThread(th1\ThreadID)
  EndIf
  If IsThread(th2\ThreadID)
    KillThread(th2\ThreadID)
  EndIf
 
EndProcedure : Main()


P.S.
Um ein Rückgabewert an dem Thread zu übergeben habe ich irgendwann ein SendEvent geschrieben
viewtopic.php?f=8&t=26219

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugs wan Oger wan purebasic ? (windows10)(pgreScharedPtr
BeitragVerfasst: 01.10.2018 13:17 
Offline

Registriert: 13.08.2016 12:53
soory das wieder erst so spät antworte (ich hoffe das ist nicht schlimm)

@man in black
vielen dank man in black ,leider tauchen bei mir die Probleme auch in nicht 3d Threads auf(und dort vermutlich nur wenn ich ich die 3d engien initialisiere... wo for oder debug Elemente drin sind die etwas größer sind (vermutlich <c.a 50MB ) und das gefühlt auch erst wenn ich in einer for schleife auf die Größe komme.... (ich vermute das mein problem mit der ram Verwaltung zutun hat... so das ogre versuch aus dem falschen speicher zu lesen.... oder feste Parameter die in pb nicht beachtet werden ...)(es war mein erster versuch alles in andere Threads bis auf ogre zu setzen ... was leider nichts gebracht hat... ich glaube ich muss das ganze Projekt aus einer ganz anderen Sicht angehen ... (da ich auch in anderen bereichen festgestellt habe (z.b. beim server script .... das ich da einiges mit mehr Performance machen kann)

@mk-soft
vielen dank für die Antwort aber
:oops: tut mir leid, ich glaube ich habe dich nicht verstanden. :oops:
ich vermute aber das du damit eine art berechnen, der Logical oder andere Sachen meinst; und im Hauptteil dann nur 3d Sachen (beim Server und bei allen anderen test varianten lief sowas super weswegen ich das auch verwendet habe nur leider nicht mehr mit ogre ... (das ist bei mir die erste variante gewesen war bevor ich etwas in die 3d engien geladen hatte) aber ich glaube ich habe dich nicht verstanden magst du das noch einmal genauer erklären ? :oops:

@all wieder ...

ich würde zwar gerne wissen was ich machen könnte
aber ich glaube es ist das beste wenn ich das ganze Projekt mit einer anderen Sicht anfange :cry:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugs wan Oger wan purebasic ? (windows10)(pgreScharedPtr
BeitragVerfasst: 01.10.2018 14:00 
Offline
Benutzeravatar

Registriert: 21.08.2006 17:39
Hi,

um die Sache abzukürzen: Lass mal jemand anderes in den Code gucken.
Das ist aktuell alles nur rumgerate. Ich unterstelle dir zwar nicht, Fehler gemacht zu haben,
aber oftmals sind es die kleinen Flüchtigkeitsfehler, die den Ärger machen. ;)

MFG
MIB

_________________
(hab alles, kann alles, weiß alles!!^^)

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugs wan Oger wan purebasic ? (windows10)(pgreScharedPtr
BeitragVerfasst: 03.10.2018 12:28 
Offline

Registriert: 13.08.2016 12:53
vielen dank man in black

da der code naja ... :oops: aussieht...

und da mir grad noch neue Probleme im 3d bereich aufgetreten sind (z.b. 1 weißer flecken eindimensional in der Mitte der tile ) würde ich dir lieber das ganze per pn oder Chat oder so senden (so das man sich schneller austauschen kann ..und direkt ( und das nicht unbedingt jeder ... ... lacht wegen der Schreibweise... :oops: )

wäre so was möglich ?

ps/edit: ich habe nun heraus bekommen das der weise flecken von den WorldShadows kommt ...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Bugs wan Oger wan purebasic ? (windows10)(pgreScharedPtr
BeitragVerfasst: 07.10.2018 14:15 
Offline
Benutzeravatar

Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg
Noch nen kleiner Zusatz am Rande:
Welche DX12 Version deine Grafikkarte als höchste Unterstützt spielt keine Rolle, wenn die Software nur DX9.0c kann.
PureBasic-OGRE unterstüzt aktuell kein höheres DX und genau daraus ergibt sich das Problem mit den Threads.
Als Faustregel gibt: alle Grafik-Funktionen müss im selben Thread aufgerufen werden. Vom Initialisieren bis schließen, wenn du so willst.
Das ist eine Limitierung von DX9.

Wenn du mit Threads noch nicht viel am Hut hast, würde ich dir Raten erst mal dich mit dem Thema allein zu beschäftigen.
PureBasic-OGRE hat sehr viele Fallstrike, die für sich schon anstrengend genug werden können :D

MFG PMV

_________________
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye