Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
glassbear
Establishment
Beiträge: 324
Registriert: 08.04.2003, 18:09
Alter Benutzername: Enrico_
Echter Name: Enrico
Wohnort: San Diego
Kontaktdaten:

Re: Jammer-Thread

Beitrag von glassbear »

So langsam versteh ich, warum Code in China Geld kostet: Der ist einfach billig. Im negativen Sinn. Am Ende schauen sich das dann doch 1-2 Leute von uns an und schreiben Teile neu, weil es so nicht ins System passt :?
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Doxygen at its best:

Source:

Code: Alles auswählen

namespace A
{
	class Foo
	{
	};
}

namespace B
{
	using namespace A;
	class Foo
	{
	};
	class Bar : public B::Foo
	{
	};
}
Doxygens Inheritance Diagram:
B::Foo
B::Bar : public A::Foo

Argh :x

Wozu habe ich denn bitte schön Namespaces, wenn ich dann aufgrund des Doku-Tools doch wieder Präfixes brauche?

EDIT: Habe den Reproduziercode mal gefixt, so dass das Problem tatsächlich damit auftritt, und ihn auch simplifiziert . Das Problem ist offensichtlich das "using namespace". Der Compiler hat dagen hingegen keine Probleme.
Im Originalcode ist das using natürlich in einer Sourcedatei, während die Deklarationen in Headern sind, sonst könnt ich mir die namespaces ja gleich sparen.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Ein halber Tag DirectCompute, und schon fangen GPU-beschleunigte Anwendungen (Browser, Plugins) an zu spinnen. :roll:
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Schrompf
Moderator
Beiträge: 4856
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Und es stellte sich heraus, dass eine default-konstruierte std::map eben doch gleich was allokiert. Damit verbietet es sich, dass ich all meinen Objekten eine Sammlung beliebiger Eigenschaften mitgebe - die werden nur selten genutzt, aber wenn selbst die Nicht-Nutzung so teuer ist, kann ich das nicht verantworten.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8244
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Micrsofts Umschreibung für Sie können die Datei nicht überschreiben, da sie in einem anderen Programm gemappt ist.
mapped.png
mapped.png (9.69 KiB) 4758 mal betrachtet
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

sizeof(A::B) ist verboten?!? Und wo wir schon dabei sind, warum gibt es kein offsetof(A::B) ...
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Jammer-Thread

Beitrag von Artificial Mind »

Krishty hat geschrieben:Micrsofts Umschreibung für Sie können die Datei nicht überschreiben, da sie in einem anderen Programm gemappt ist.
Ich würde ja fast sagen, dass das an deiner deutschen Windows-Version liegt. Aber dazu müsste man mit der englischen Meldung vergleichen ;)
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

FormatMessage hat geschrieben:The requested operation cannot be performed on a file with a user-mapped section open.
Ein 08/15-Benutzer kann so wie so weder mit der deutschen noch der englischen Fehlermeldung etwas anfangen. ;)
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Jammer-Thread

Beitrag von Artificial Mind »

eXile hat geschrieben:
FormatMessage hat geschrieben:The requested operation cannot be performed on a file with a user-mapped section open.
Ein 08/15-Benutzer kann so wie so weder mit der deutschen noch der englischen Fehlermeldung etwas anfangen. ;)
Das ist vollkommen richtig, aber die englische Message hätte Krishty mehr geholfen, right?
Benutzeravatar
Krishty
Establishment
Beiträge: 8244
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Eine interessante Frage ist: Würde die Fehlermeldung anders aussehen, falls ich die Datei beim Mappen nicht schließen würde? (Meine File Mapping-Funktion ist ziemlich hoch optimiert.) Gleich mal ausprobieren.

Vorher:
Blah::FooFile foo(reinterpreted<ASCIICharacter>(fileRepository[Text::range("i\\dont.care")])); // warning C4709: comma operator within array index expression
wtf

Nachtrag: Wow; tatsächlich: Wenn geprüft wird, ob eine Datei überschrieben werden kann, wird die Fehlermeldung anhand der User Handles auf die Datei bestimmt; nicht anhand der Kernel Handles. Außerdem beharrt der Explorer bei offenem User Handle darauf, dass es sich bei der Datei um den übergeordneten Ordner handelt:
MappedAndOpened.png
Da sieht man mal wieder, was für bekloppte Konsequenzen es haben kann, wenn man um jedes Handle kämpft.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8244
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

== hat in C++ Vorrang vor bitweisem &
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Jammer-Thread

Beitrag von antisteo »

CodingCat hat geschrieben:Ein halber Tag DirectCompute, und schon fangen GPU-beschleunigte Anwendungen (Browser, Plugins) an zu spinnen. :roll:
Kein Wunder, wenn du dir das Design einer Grafikkarte anschaust. Die ist einfach nicht für Mehrbenutzer- oder gar Mehrprogrammbetrieb geeignet.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
Lynxeye
Establishment
Beiträge: 145
Registriert: 27.02.2009, 16:50
Echter Name: Lucas
Wohnort: Hildesheim
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Lynxeye »

antisteo hat geschrieben:
CodingCat hat geschrieben:Ein halber Tag DirectCompute, und schon fangen GPU-beschleunigte Anwendungen (Browser, Plugins) an zu spinnen. :roll:
Kein Wunder, wenn du dir das Design einer Grafikkarte anschaust. Die ist einfach nicht für Mehrbenutzer- oder gar Mehrprogrammbetrieb geeignet.
Öhm, doch? Nvidia hat seit Ewigkeiten (Riva TNT) Hardwarekontexte und bei den Radeons gibt es in den letzten Generationen auch mehrere Ringe. Und ein ordentliches Virtual Memory System mit MMU auf der Grafikkarte gibt es seit NV50 bzw. Cayman. Du hast also sehr wohl die Möglichkeit einzelne Prozesse auf Hardwareebene zu isolieren.
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Oxygen kommt echt überhaupt nicht mit namespaces klar:

Code: Alles auswählen

namespace A
{
	class Foo
	{
	};
}

namespace B
{
	class Foo : A::Foo
	{
	};
}

namespace C
{
	class Foo : B::Foo
	{
	};
}

namespace D
{
	class Foo : C::Foo
	{
	};
}
führt mit Option "hide scope names" zu folgendem interessanten Vererbungsgraphen:

Bild
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Krishty
Establishment
Beiträge: 8244
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Die einzige Wirkung, die __declspec(noalias) hat, ist, dass Peephole Optimizations wegfallen und mein Text größer wird, weil überall nutzlose movs zusätzliche Register verschwenden.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8244
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

http://connect.microsoft.com/VisualStudio/feedback/details/668639/c-c4709-when-not-even-using-comma-inside-the-array-index-expression-w4 hat geschrieben:Thank you for reporting the issue to Microsoft. There is indeed a comma in the expression but it's the one the compiler itself generated!
it's the one the compiler itself generated
one the compiler itself generated
Ich versuche mir gerade vorzustellen, wie Visual C++ Quelltext in eine textbasierte Intermediate Representation übersetzt

Bild
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Entbinden von UAVs im Compute Shader:
deviceContext->CSSetUnorderedAccessViews(0, D3D11_PS_CS_UAV_REGISTER_COUNT, NullUAVs, nullptr);

Entbinden von UAVs im Pixel Shader:
deviceContext->OMSetRenderTargetsAndUnorderedAccessViews(0, nullptr, nullptr, 0, 0, nullptr, nullptr);

Und wehe ihr versuchts hiermit, dann crasht euch Parallel NSight gleich mal ohne Fehlermeldung weg:
deviceContext->OMSetRenderTargetsAndUnorderedAccessViews(0, nullptr, nullptr, 0, D3D11_PS_CS_UAV_REGISTER_COUNT, NullUAVs, nullptr);

Der Vollständigkeit halber, folgendes hat absolut keine Wirkung:
deviceContext->CSSetUnorderedAccessViews(0, 0, nullptr, nullptr);
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

meh.png
Der Lohn eines langen Arbeitstages ... Fehler ohne Ende und 1 FPS :cry:

Aber voll "dynamisch"! ;)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Jammer-Thread

Beitrag von Artificial Mind »

Sind das Real-time Reflektionen? xD
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Jammer-Thread

Beitrag von antisteo »

Artificial Mind hat geschrieben:Sind das Real-time Reflektionen? xD
Das Real-Time kannst du streichen
CodingCat hat geschrieben:und 1 FPS :cry:
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
j.klugmann
Establishment
Beiträge: 201
Registriert: 07.07.2010, 13:00
Kontaktdaten:

Re: Jammer-Thread

Beitrag von j.klugmann »

Wenn sie realistisch sind, reicht es auch nur das "-Time" zu streichen. :P
Imaging-Software und bald auch Middleware: http://fd-imaging.com
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: Jammer-Thread

Beitrag von Artificial Mind »

Code: Alles auswählen

Entity::~Entity()	
{	
    mCustomProperties = new QHash<QString, QString>();
}
Dies ist auf mehrere Art und Weisen eklig ...
Ich liebe Studenten-Projekte mit mehreren Mitgliedern :)

Nachtrag:
dazu kommt:

Code: Alles auswählen

std::string Entity::getCustomProperty(std::string id)
{
    return ((QString*) mCustomProperties->find(QString.fromStdString(id).value()))->toStdString();
}
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

glassbear hat geschrieben:So langsam versteh ich, warum Code in China Geld kostet: Der ist einfach billig. Im negativen Sinn. Am Ende schauen sich das dann doch 1-2 Leute von uns an und schreiben Teile neu, weil es so nicht ins System passt :?
Das ist nicht nur in China so. Merkt euch: Source nie etwas aus, bei dem der Coder auch mal denken muss...
Ich finde die WTFs von jeweils intergalaktischen Ausmaßen gerade wieder containerschiffweise.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Erst zwei Wochen echte GPU-Programmierung und schon kann ich sämtlichen Hass der GPU-Rendering-R&D-Community auf die Rendering Pipeline voll und ganz nachvollziehen. Eigentlich ist alles da, man kommt nur nicht ran. Konservative Rasterisierung? Nach dem Clipping ein Kinderspiel, aber sorry, letzter Stop Geometry Shader. Der ist nicht nur unendlich umständlich, und ohne eigene Clipping-Implementierung im Shader gegenüber Near-Plane-Clipping kaum robust zu bekommen, sondern obendrein noch unfassbar lahm (extra Geometrie!). Fertig verarbeitete Geometrie statt in den Pixel Shader in den Compute Shader weiterleiten? Pustekuchen, parallel ist nicht. Mindestens mal riesige temporäre Puffer anlegen. :evil:
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Schrompf
Moderator
Beiträge: 4856
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Never change a running system. Hab mal eben schnell von AngelScript 2.20.3 auf 2.23.1 aktualisiert, weil ich eine kleine Skript-Helferklasse nicht für den alten Stand runterladen wollte. Und jetzt läuft KEIN EINZIGES verdammtes Skript mehr im Spiel. Nach einigen Stunden bin ich zur Erkenntnis gelangt, dass AngelScript anscheinend seit Neuestem alle bisherigen Skripte zerstört, bevor es ein neues Stück Code kompiliert. Demzufolge verweisen alle Code-IDs bis auf die letzte auf ungültigen Code. Tolle Wurst.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8244
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Visual C++’ /Ox (Full Optimization) impliziert nicht /GF (Enable String Pooling). Wenn String Pooling nicht eingeschaltet ist, landen völlig wahllos unreferenzierte Strings in der Exe.

Nachtrag: Ach; klar – jetzt habe auch ich verstanden, warum /O2 besser ist als /Ox …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

Ich hätte tatsächlich schon dreimal beinahe auf deinen Post geantwortet, ob /O2 nicht besser wäre; irgendwie zeigt sich, dass man im Zweifelsfall doch lieber posten sollte, als es zu unterlassen.

Daher direkt mein Nachschlag: /fp:fast verändert auch hier nichts, /arsch:AVX verändert auch nichts (das kriegt man mit der XState-API raus, brandneu für Windows 7 SP1, es gilt tatsächlich (FeatureMask & XSTATE_MASK_AVX) == 0; hier noch beliebigen Rant über die Operatorreihenfolge von & und == einfügen), das Fused-Multiply-Add ist in letzten Sekunde aus dem AVX-Standard geflogen (obwohl es noch in der offiziellen Intel-Doku drin ist, aber es gibt in Visual Studio keine Intrinsics für FMA), und ich darf mich gerade in die Verwendung von RWTexture2Ds und atomare Operatoren reinlesen. Darüber hinaus kann man anscheinend mit MiniMax-Polynomen die Standard-Implementierungen von sin/cos/etc. um einiges schlagen, und hier ist wieder ein grandioses Beispiel, wie ein Blogpost nicht aussehen sollte, ich bastelte an einem eigenen alloca das bisher nur um die Ohren fliegt, und wer eine Begründung haben will, warum Phong/Blinn-Phong der meistüberladene Begriff überhaupt ist, schaut mal hier rein.

Ich weiß nicht, ob das Leben tatsächlich so sein sollte; ich glaube aber schon.
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Ich will die von meiner GPU fertig geclippte Geometrie. Jetzt sofort! :(
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Jammer-Thread

Beitrag von dot »

Wieso denn? Ich bezweifle dass eine GPU überhaupt irgendwas in Richtung Clipping betreibt...

http://www.cs.unc.edu/~olano/papers/2dh-tri/2dh-tri.pdf ;)
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

http://msdn.microsoft.com/en-us/library/windows/desktop/hh404489 hat geschrieben:When you set DepthClipEnable to FALSE, the hardware skips the z clipping (that is, the last step in the preceding algorithm). However, the hardware still performs the "0 < w" clipping.
Antworten