Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

11

20.07.2010, 15:09

Sauberer Code allerdings verlässt sich nicht darauf dass das OS eh aufräumt sondern sorgt dafür dass er seinen Müll selber korrekt recycled.
Dann ist eine Vielzahl von Unix-Software also unsauberer Code ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

12

20.07.2010, 15:09

dot
Das ist korrekt dot. Bei In-Process-Server würde man theoretisch kein Release benötigen.

Jetzt kommt aber der Knackpunkt DirectX: Spätestens seit Vista (Vorher nur über Treiber, speziell nVidia) ist der Desktop über Direct3D für Effekte Hardware-beschleunigt. Würde man jetzt 2 DirectX-In-Process-Server starten, so würden deren Chains konkurrieren. Dieses Problem lässt sich nur über den Local-Server lösen bzw. Remote-Server.

Ich glaube aber die letzte DirectX-API die Remote-Server unterstützte war DirectDraw7, but anyway. Da es sich dann um einen Local-Server handelt, ist das Verhalten des "Garbage-Collector" eines In-Process-Servers nicht mehr gegeben. Deshalb muss dem Local-Server mitgeteilt werden ob eine Textur nicht mehr verwendet wird oder sonst etwas aus COM was auf einem Local-Server läuft.

BlueCobold
UNIX-Code ist sehr häufig frickelig, da man bei den dort benutzen Compilern einstellen kann, das Variablen automatisch mit 0 initialisiert werden - was sehr unschön ist.
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.'
[ bing | not'a'tric | germangamedev | Fragen richtig stellen ]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

20.07.2010, 15:19

Jetzt kommt aber der Knackpunkt DirectX: Spätestens seit Vista (Vorher nur über Treiber, speziell nVidia) ist der Desktop über Direct3D für Effekte Hardware-beschleunigt. Würde man jetzt 2 DirectX-In-Process-Server starten, so würden deren Chains konkurrieren. Dieses Problem lässt sich nur über den Local-Server lösen bzw. Remote-Server.

Könntest du das etwas näher erläutern ich versteh das Problem nicht ganz. Direct3D als Local oder Remote Server laufen zu lassen wär doch der Todesstoß für jegliche Performance!? oO
Außerdem wär ein Local Server eine exe und ich kenn nur ne d3d11.dll und keine d3d11.exe...

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

14

20.07.2010, 15:33

Ob *.exe oder *.dll ist uninteressant, genau so wie die minimalen "Performance-Einbußen". Das Problem ist, dass wenn jede DirectX-Anwendung einen In-Process-Server starten würde, das diese dann Exkusiv-Rechte vom Treiber anfordern würden.

Treiber haben aber kein Rechtemanagement und wüsste nicht: "Okay, ist jetzt Anwendung A Chain A oder Anwendung B Chain A".

Krasses Beispiel: 2 Programme beanspruchen beide den Frontbuffer - Es gibt aber nur einen und der Treiber weiß nicht welche Anwendung grade Zugriff haben darf und welche Daten benötigt.

Ist die Schnittstelle jedoch als Local/Remote-Server angesprochen, so kümmert sich COM um diese Verwaltung der Zuordnung, egal ob ein Treiber darunter liegt oder etwas anderes.
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.'
[ bing | not'a'tric | germangamedev | Fragen richtig stellen ]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

20.07.2010, 15:39

Hast du da irgendwelche Quellen dazu, das klingt mir alles ein wenig komisch. Warum sollte es nur einen Frontbuffer geben und was genau meinst du mit "Rechte Management"!? Ich hör was derartiges jedenfalls zum ersten Mal...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

16

20.07.2010, 15:48

unsigned long, keine einzige App bekommt wirklich den Frontbuffer. Alle gerenderten Inhalte aller Apps landen in Backbuffern, bzw. in Texturen, die dann vom WDM benutzt werden um wiederum die Fenster und deren gerenderte Inhalte anzuzeigen. Jedenfalls seit D3D für den Desktop benutzt wird.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

17

20.07.2010, 15:54

Patti spinnt sich halt wieder mal einen ab.

@dot: Es ging ja eben nicht um perfekten Code, sondern um schlampigen. Oder einer der abstuerzt oder abgebrochen wird, was man bei Debugen auch ziemlich haeufig tut. Da wird jedem Prozess so gut wie moeglich hinterhergeraeumt. Man soll natuerlich moeglichst selbst alles aufraeumen, es geht aber auch nichts kaputt wenn aus irgend einem dummen Grund das mal nicht passiert. Genau so muss man sich bei fehlendem delete keine neuen Speicherchips kaufen. ;-)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

20.07.2010, 15:57

Genau so muss man sich bei fehlendem delete keine neuen Speicherchips kaufen. ;-)
Doch, wenn man den Hersteller deswegen anschreibt und er als Antwort gibt, dass man dann halt mehr Speicher kaufen müsse ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

19

20.07.2010, 17:05

dot
Inside Distributed COM - Guy Eddon
Microsoft Press Corp.
ISBN10: 157231849X

Brauchbares Buch. ;)

BlueCobold
Das weiß ich auch das man den richtigen Frontbuffer nicht mehr bekommt, aber den Chain 0. Wenn zwei Programme den Chain 0 für sich beanspruchen kommt es zum Problemen. Das Wort Frontbuffer war da mehr als Falsch gewählt, gebe ich zu.

TGGC
Ich weiß wir haben unsere persönlichen Differenzen, aber langsam reichen mir deine Provokationen wirklich. Wie lange möchtest du dieses herablassende Verhalten fortführen? Ich sag ja auch nicht (mehr) öffentlich meine negative Meinung über dich. Willst auch du nicht langsam etwas reifer werden in Bezug auf respektvolles und faires Verhalten?

Bitte nenne mich auch nicht Patti, ich empfinde das als Beleidigung. Du hast ja sicherlich auch "Kosenamen" die dir nicht passen.
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.'
[ bing | not'a'tric | germangamedev | Fragen richtig stellen ]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

20.07.2010, 17:13

Mag sein dass in dem Buch viel über COM drinsteht, darum gings mir aber nicht. Mich interessieren eher deine Behauptungen bezüglich Direct3D, Grafiktreiber und Vista die nämlich irgendwie allem widersprechen was ich bisher zu wissen glaubte...

Werbeanzeige