Jammer-Thread
-
- Establishment
- Beiträge: 324
- Registriert: 08.04.2003, 18:09
- Alter Benutzername: Enrico_
- Echter Name: Enrico
- Wohnort: San Diego
- Kontaktdaten:
Re: Jammer-Thread
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!
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Doxygen at its best:
Source:
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.
Source:
Code: Alles auswählen
namespace A
{
class Foo
{
};
}
namespace B
{
using namespace A;
class Foo
{
};
class Bar : public B::Foo
{
};
}
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]
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]
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
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
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Jammer-Thread
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.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
Micrsofts Umschreibung für Sie können die Datei nicht überschreiben, da sie in einem anderen Programm gemappt ist.
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
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
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: Jammer-Thread
Ich würde ja fast sagen, dass das an deiner deutschen Windows-Version liegt. Aber dazu müsste man mit der englischen Meldung vergleichen ;)Krishty hat geschrieben:Micrsofts Umschreibung für Sie können die Datei nicht überschreiben, da sie in einem anderen Programm gemappt ist.
Re: Jammer-Thread
Ein 08/15-Benutzer kann so wie so weder mit der deutschen noch der englischen Fehlermeldung etwas anfangen. ;)FormatMessage hat geschrieben:The requested operation cannot be performed on a file with a user-mapped section open.
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: Jammer-Thread
Das ist vollkommen richtig, aber die englische Message hätte Krishty mehr geholfen, right?eXile hat geschrieben:Ein 08/15-Benutzer kann so wie so weder mit der deutschen noch der englischen Fehlermeldung etwas anfangen. ;)FormatMessage hat geschrieben:The requested operation cannot be performed on a file with a user-mapped section open.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
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: Da sieht man mal wieder, was für bekloppte Konsequenzen es haben kann, wenn man um jedes Handle kämpft.
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: Da sieht man mal wieder, was für bekloppte Konsequenzen es haben kann, wenn man um jedes Handle kämpft.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
== hat in C++ Vorrang vor bitweisem &
Re: Jammer-Thread
Kein Wunder, wenn du dir das Design einer Grafikkarte anschaust. Die ist einfach nicht für Mehrbenutzer- oder gar Mehrprogrammbetrieb geeignet.CodingCat hat geschrieben:Ein halber Tag DirectCompute, und schon fangen GPU-beschleunigte Anwendungen (Browser, Plugins) an zu spinnen. :roll:
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
- Lynxeye
- Establishment
- Beiträge: 145
- Registriert: 27.02.2009, 16:50
- Echter Name: Lucas
- Wohnort: Hildesheim
- Kontaktdaten:
Re: Jammer-Thread
Ö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.antisteo hat geschrieben:Kein Wunder, wenn du dir das Design einer Grafikkarte anschaust. Die ist einfach nicht für Mehrbenutzer- oder gar Mehrprogrammbetrieb geeignet.CodingCat hat geschrieben:Ein halber Tag DirectCompute, und schon fangen GPU-beschleunigte Anwendungen (Browser, Plugins) an zu spinnen. :roll:
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Oxygen kommt echt überhaupt nicht mit namespaces klar:
führt mit Option "hide scope names" zu folgendem interessanten Vererbungsgraphen:
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
{
};
}
"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]
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]
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
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.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
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
Ich versuche mir gerade vorzustellen, wie Visual C++ Quelltext in eine textbasierte Intermediate Representation übersetztone the compiler itself generated
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
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);
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
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
Aber voll "dynamisch"! ;)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: Jammer-Thread
Sind das Real-time Reflektionen? xD
Re: Jammer-Thread
Das Real-Time kannst du streichenArtificial Mind hat geschrieben:Sind das Real-time Reflektionen? xD
CodingCat hat geschrieben:und 1 FPS
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
-
- Establishment
- Beiträge: 201
- Registriert: 07.07.2010, 13:00
- Kontaktdaten:
Re: Jammer-Thread
Wenn sie realistisch sind, reicht es auch nur das "-Time" zu streichen. :P
Imaging-Software und bald auch Middleware: http://fd-imaging.com
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: Jammer-Thread
Code: Alles auswählen
Entity::~Entity()
{
mCustomProperties = new QHash<QString, QString>();
}
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();
}
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Jammer-Thread
Das ist nicht nur in China so. Merkt euch: Source nie etwas aus, bei dem der Coder auch mal denken muss...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 :?
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]
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]
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
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
- Schrompf
- Moderator
- Beiträge: 5047
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: Jammer-Thread
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.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Jammer-Thread
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 …
Nachtrag: Ach; klar – jetzt habe auch ich verstanden, warum /O2 besser ist als /Ox …
Re: Jammer-Thread
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.
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.
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Jammer-Thread
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
- dot
- Establishment
- Beiträge: 1745
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: Jammer-Thread
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 ;)
http://www.cs.unc.edu/~olano/papers/2dh-tri/2dh-tri.pdf ;)
Re: Jammer-Thread
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.