Anti-Jammer-Thread
Re: Anti-Jammer-Thread
Muhaha, ich hab es geschafft :D
Ich hab es endlich geschafft!!!! Es ist erwacht!! Mein Meisterwerk ist zum Leben erwacht!! *hysterisches lachen*
----------------------------------
Ich fange mit einer kleinen Frage an: Wenn ihr mit einer Kopierfunktion einer Fremdbibliothek arbeitet, würdet ihr bei einem Laufzeitfehler davon ausgehen, dass diese eine verdammte Kopierfunktion einen Fehler beinhaltet? Und das, obwohl der Debugger an eine ganz andere Stelle zeigt? Und auch nur dann eintritt, wenn man mehrere Instanzen einer kommunikativen Klasse (verwendet massenhaft IPC-Nachrichten) parallel laufen lässt?
Ich musste nur eine einzige verdammte Zeile teilweise in Kommentare setzen, dann lief es auf einmal wie am Schnürchen! Das kommt davon, wenn man sich als unerfahrerer Programmierer auf Debugger und andere Werkzeuge verlässt. Das Gehirn können sie (noch) nicht ersetzen.
Gruß, tejio
Ich hab es endlich geschafft!!!! Es ist erwacht!! Mein Meisterwerk ist zum Leben erwacht!! *hysterisches lachen*
----------------------------------
Ich fange mit einer kleinen Frage an: Wenn ihr mit einer Kopierfunktion einer Fremdbibliothek arbeitet, würdet ihr bei einem Laufzeitfehler davon ausgehen, dass diese eine verdammte Kopierfunktion einen Fehler beinhaltet? Und das, obwohl der Debugger an eine ganz andere Stelle zeigt? Und auch nur dann eintritt, wenn man mehrere Instanzen einer kommunikativen Klasse (verwendet massenhaft IPC-Nachrichten) parallel laufen lässt?
Ich musste nur eine einzige verdammte Zeile teilweise in Kommentare setzen, dann lief es auf einmal wie am Schnürchen! Das kommt davon, wenn man sich als unerfahrerer Programmierer auf Debugger und andere Werkzeuge verlässt. Das Gehirn können sie (noch) nicht ersetzen.
Gruß, tejio
- kimmi
- Moderator
- Beiträge: 1405
- Registriert: 26.02.2009, 09:42
- Echter Name: Kim Kulling
- Wohnort: Luebeck
- Kontaktdaten:
Re: Anti-Jammer-Thread
Nun ja, die Debug-Symbole hängen in der Regel auch von Dingen wie aktivierten Optimierungen und dergleichen ab. Sind Optimierungen aktiviert, werden teilweise DInge geinlined, Variablen wegoptimiert und dergleichen. Das kann der Debugger im Source dann nicht mehr korrekt wiedergeben.
Hattest du das auf dem Zettel, diese abzustellen und neu zu bauen?
Gruß Kimmi
Hattest du das auf dem Zettel, diese abzustellen und neu zu bauen?
Gruß Kimmi
- Krishty
- Establishment
- Beiträge: 8268
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Ich beschäftige mich gerade mit dem Reverse Engineering eines alten Programms mit Polygongrafik. Als das rauskam, waren GPUs noch für nichts anderes da als für Rasterisierung – es gab kein Batching, keine Tiefenpufferung, nichts. Und ich will an die 3D-Modelle kommen. Das ist aber nicht so einfach:
Wie rendert man komplexe Polygonmodelle ohne Tiefenpufferung? Tröpfchenweise mit einem BSP-Baum. Von mir aus. Also haben die ihre Modelle in BSP-Bäume kompiliert.
Das war aber nicht genug, nein. Die haben nicht einfach die BSP-Bäume auf die Platte geschrieben: Die haben ihre Modelle in Skripte mit eigenem Befehlssatz und Maschinentext kompliliert, inklusive Flags, Sprüngen, Funktionen und Stapelspeicher, auf dem Positionsdaten, Texturkoordinaten, Farben, Texturen und Render-States landen. Und das hat die Engine dann ausgeführt.
Wo sie eh schon Sprünge drinhatten, konnten sie auch direkt Detailabstufungen einbauen. Und alles mit möglichst nerviger Endianness krönen. KISS ftw.
Nun musste ich erstmal den Text in den Unmengen von Dateien und Daten finden und alle Befehle parsen und zur lesbaren Endianness konvertieren. Dann habe ich eine VM gebaut, die das alles runterknattert und dabei alle Indizes und Verweise auf Flags, States und Stapelobjekte auseinanderpfriemelt und an eine getürkte Rendering-API weiterleitet, die dann Dreieck für Dreieck entgegennimmt und speichert. Und da das Resultat von Blickrichtung, Entfernung usw. abhängig ist, musste ich den gesamten Programmverlauf durchgeschoben kriegen um die in der falschen Rendering-API gesammelten Daten am Ende zum ursprünglichen Modell zu verschmelzen.
Der Großteil der fundamentalen Entdeckungen (allein, dass es Maschinensprache ist und keine verschlüsselten/komprimierten Daten) gehen auf die Konten anderer, aber nicht viele waren bisher weiter als dass die Schohse bei ihnen nur aus Glück funktionierte. Das ist mein heutiges Geantijammer.
Wie rendert man komplexe Polygonmodelle ohne Tiefenpufferung? Tröpfchenweise mit einem BSP-Baum. Von mir aus. Also haben die ihre Modelle in BSP-Bäume kompiliert.
Das war aber nicht genug, nein. Die haben nicht einfach die BSP-Bäume auf die Platte geschrieben: Die haben ihre Modelle in Skripte mit eigenem Befehlssatz und Maschinentext kompliliert, inklusive Flags, Sprüngen, Funktionen und Stapelspeicher, auf dem Positionsdaten, Texturkoordinaten, Farben, Texturen und Render-States landen. Und das hat die Engine dann ausgeführt.
Wo sie eh schon Sprünge drinhatten, konnten sie auch direkt Detailabstufungen einbauen. Und alles mit möglichst nerviger Endianness krönen. KISS ftw.
Nun musste ich erstmal den Text in den Unmengen von Dateien und Daten finden und alle Befehle parsen und zur lesbaren Endianness konvertieren. Dann habe ich eine VM gebaut, die das alles runterknattert und dabei alle Indizes und Verweise auf Flags, States und Stapelobjekte auseinanderpfriemelt und an eine getürkte Rendering-API weiterleitet, die dann Dreieck für Dreieck entgegennimmt und speichert. Und da das Resultat von Blickrichtung, Entfernung usw. abhängig ist, musste ich den gesamten Programmverlauf durchgeschoben kriegen um die in der falschen Rendering-API gesammelten Daten am Ende zum ursprünglichen Modell zu verschmelzen.
Der Großteil der fundamentalen Entdeckungen (allein, dass es Maschinensprache ist und keine verschlüsselten/komprimierten Daten) gehen auf die Konten anderer, aber nicht viele waren bisher weiter als dass die Schohse bei ihnen nur aus Glück funktionierte. Das ist mein heutiges Geantijammer.
-
- Establishment
- Beiträge: 201
- Registriert: 07.07.2010, 13:00
- Kontaktdaten:
Re: Anti-Jammer-Thread
Habe heute mal etwas an meiner POSIX-asynchrone Lib gebastelt, läuft mittlerweile doch recht gut. :)
Imaging-Software und bald auch Middleware: http://fd-imaging.com
Re: Anti-Jammer-Thread
Und jetzt duerfen wir alle raten, was die macht? Widme ihr doch einen Thread....
-
- Establishment
- Beiträge: 201
- Registriert: 07.07.2010, 13:00
- Kontaktdaten:
Re: Anti-Jammer-Thread
Die implementiert den POSIX Standard 1.3b für Asynchrone IO. Bis jetzt habe ich leider noch nicht alle Vorgaben erfüllen können, aber insgesamt läuft es schon recht gut. Baut komplett auf POSIX-Threads auf, das war mir in dem Fall wichtig. Ich denke mal, dass ich noch ein paar Wochen dran werkeln werde, da ich vor allem nur sehr sprunghaft an dieser Lib arbeite. Immer wenn ich mal nichts anderes zu tun habe, eigentlich stammt das Projekt aus dem März, habe es bis gestern nicht mehr angerührt. Naja, mal sehen. :P
Imaging-Software und bald auch Middleware: http://fd-imaging.com
- Krishty
- Establishment
- Beiträge: 8268
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Guckt mal, was Visual C++ 2010 zwecks ::std::tr1-Type Traits so Schönes implementiert: http://msdn.microsoft.com/de-de/library/ms177194
__is_pod( type )
__has_nothrow_copy( type )
__is_enum( type )
Und jetzt guckt mal, zu wessen Erweiterungen die identisch sind: http://gcc.gnu.org/onlinedocs/gcc/Type-Traits.html
Gonna optimize the shit outta mah stuff
(Danke, Cat)
__is_pod( type )
__has_nothrow_copy( type )
__is_enum( type )
Und jetzt guckt mal, zu wessen Erweiterungen die identisch sind: http://gcc.gnu.org/onlinedocs/gcc/Type-Traits.html
Gonna optimize the shit outta mah stuff
(Danke, Cat)
-
- Establishment
- Beiträge: 201
- Registriert: 07.07.2010, 13:00
- Kontaktdaten:
Re: Anti-Jammer-Thread
Seit heute läuft endlich auch Tesselation, jedenfalls nachdem ich 4 Stunden lang den Fehler gesucht habe. Fehler gefunden:
* Die Methode, die den Source des Shaders liefert, hat keine Exceptions für Fehler eingebaut.
* Folglich konnte ich den Shader nicht richtig laden, da ich einen falschen Dateinamen eingegeben hatte.
* Eine Exception habe ich da natürlich auch nicht bekommen.
Jetzt läuft's aber. :)
* Die Methode, die den Source des Shaders liefert, hat keine Exceptions für Fehler eingebaut.
* Folglich konnte ich den Shader nicht richtig laden, da ich einen falschen Dateinamen eingegeben hatte.
* Eine Exception habe ich da natürlich auch nicht bekommen.
Jetzt läuft's aber. :)
Imaging-Software und bald auch Middleware: http://fd-imaging.com
-
- Establishment
- Beiträge: 201
- Registriert: 07.07.2010, 13:00
- Kontaktdaten:
Re: Anti-Jammer-Thread
Gerade erst gemerkt, dass das hier ja der Anti-Jammer-Thread ist. *oups*
Imaging-Software und bald auch Middleware: http://fd-imaging.com
Re: Anti-Jammer-Thread
@Krishty: Nur aus Interesse: Um welches Programm ging es bei diesen Modellen? Irgendwelche Bilder?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
- Krishty
- Establishment
- Beiträge: 8268
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
HxD hat eine Export to C-Funktion, die eine Binärdatei sofort als unsigned char data[42] = { 0xDE, 0xAD, … }; in eine C-Datei schreibt
Quality of life significandly improved
Quality of life significandly improved
- Krishty
- Establishment
- Beiträge: 8268
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Wow
Ich wollte gerade anfangen, Geometrie in meine Engine zu laden … und wie ich das Drahtgitter vor mir sehe, strahlt es in diesem wunderbaren Glare
Ich habe ihn nicht danach gefragt
Er ist einfach nur da
Immer
Für mich
~<3
Ich wollte gerade anfangen, Geometrie in meine Engine zu laden … und wie ich das Drahtgitter vor mir sehe, strahlt es in diesem wunderbaren Glare
Ich habe ihn nicht danach gefragt
Er ist einfach nur da
Immer
Für mich
~<3
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Anti-Jammer-Thread
Ich habe für meinen Uni-Kurs "Frankreich heute" soeben die Hausaufgabe eines französischen Dialogs / einer Präsentation über die frei erfundene Geschäftsstrategie eines fiktiven Parfum-Herstellers fertiggestellt. Nach anfänglicher Unlust auf diese Absurdität, unter anderem mangels jeglichen persönlichen Bezuges zu diesem Thema, hatte ich beim Schreiben so viel Spaß wie lange nicht mehr bei irgendwas, und gehe nun glücklich und zufrieden schlafen. Die Welt ist doch voller Überraschungen...
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Krishty
- Establishment
- Beiträge: 8268
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Texture Arrays sind klasse. Ich rendere sechs Millionen Dreiecke mit 160 verschiedenen Texturen (wenn auch gleich großen, das ist halt die Einschränkung) Brute Force in einem einzigen Draw-Call – und die GPU zuckt nicht einmal. Das hätte man viel früher haben müssen.
Was mir nur aufstößt ist, dass ich bisher keine Möglichkeit gefunden habe, den Textur-Index pro Dreieck anzugeben statt pro Vertex. Verschwendung im zweistelligen MiB-Bereich.
Was mir nur aufstößt ist, dass ich bisher keine Möglichkeit gefunden habe, den Textur-Index pro Dreieck anzugeben statt pro Vertex. Verschwendung im zweistelligen MiB-Bereich.
Re: Anti-Jammer-Thread
Pro Dreieck: Manueller fetch ueber Primitive-ID?
Re: Anti-Jammer-Thread
Wenn man diesem Post eine Überschrift geben sollte, dann wohl the current state in realtime path tracing. Warum ich im Anti-Jammer-Thread poste, und nicht wie schon früher im Jammer-Thread? Weil endlich ein Ergebnis veröffentlicht wurde, von welchem ich sagen kann, dass es fundiert ist und keine Augenwischerei ist. Bei allen anderen, mir bekannten Bildern und Videos wurde immer mit akkumulierenden Verfahren (d.h. neue Farbwerte wurden zur bestehenden Samplemenge hinzugefügt) gearbeitet, wenn sich der Viewport nicht geändert hat (siehe z.B. hier). Natürlich ist das so kein passender Vergleich: Wenn sich der Viewport einmal ändern, kann man die ganze Samplemenge wegschmeißen. Dass sie das bisher nicht getan haben, sieht man am starken Ghosting bewegter Objekte, z.B. hier.
Der Mann hinter dem Ganzen ist Jacco Bikker, von der NHTV Breda University of Applied Sciences, und in diesem Falle ganz besonders seine Studenten. Deren Ergebnis findet sich hier. Endlich etwas, mit dem man was anfangen kann: Das ist der aktuelle Stand. Jacco Bikker und seine Studenten haben hierfür meinen Respekt. (via.)
Der Mann hinter dem Ganzen ist Jacco Bikker, von der NHTV Breda University of Applied Sciences, und in diesem Falle ganz besonders seine Studenten. Deren Ergebnis findet sich hier. Endlich etwas, mit dem man was anfangen kann: Das ist der aktuelle Stand. Jacco Bikker und seine Studenten haben hierfür meinen Respekt. (via.)
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Anti-Jammer-Thread
Ich konnte gestern eines meiner ältesten Probleme, die Implementierung abstrakter Klassenhierarchien durch implementierende Klassenhierarchien, unvermittelt elegant mit Templates lösen. Bisher lag die einzige Lösung, die ich finden konnte, darin, auf virtuelle Vererbung zurückzugreifen, das sah dann in etwa so aus:
Da C zwangsläufig mehrfach von IA erbt, kommt man auf diese Weise um eine oder mehrere hässliche virtuelle Ableitungen nicht herum.
Mit minimaler Template-Magie lässt sich die Implementierungshierarchie jedoch komfortabel linearisieren, wie sich herausgestellt hat:
In dieser Version kommt jedes Interface und jede Implementierung nur ein einziges Mal in der jeweiligen Ableitungskette vor, auf virtuelle Vererbung kann gänzlich verzichtet werden. Beachtet werden sollte jedoch, dass das Template bei der Code-Generierung zu Code-Duplizierung pro implementierender Klasse führt, es könnte also je nach Umfang ratsam sein, die tatsächliche Funktionalität aus den Basis-Klassen in Template-unabhängige Funktionen herauszufaktorisieren.
Möglicherweise war diese Lösung für den einen oder anderen schon immer offensichtlich, ich habe sie bis heute nirgends gefunden.
Code: Alles auswählen
IA <- A
/ \ \
IB IC <- C
Mit minimaler Template-Magie lässt sich die Implementierungshierarchie jedoch komfortabel linearisieren, wie sich herausgestellt hat:
Code: Alles auswählen
template <class Base>
class A : public Base
{
...
};
Code: Alles auswählen
IA <- A<IA>
/ \
IB IC <- A<IC> <- C
Möglicherweise war diese Lösung für den einen oder anderen schon immer offensichtlich, ich habe sie bis heute nirgends gefunden.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Re: Anti-Jammer-Thread
Schau dir mal im Effects11-Framework die Datei 'EffectVariable.inl' an. Kannte ich davor auch nicht.
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Anti-Jammer-Thread
Tatsache, die machen das genauso. Interessanterweise ist es nicht mal erforderlich, die Sandwich-Templates (hey, ist das ein guter Name? :P ) vollständig im Header zu definieren - virtuelle Methoden erzwingen (zumindest in der Praxis) eine sofortige implizite Instanziierung ihrer selbst, bei Definition der virtuellen Methoden in einer einzigen Übersetzungseinheit werden deshalb bereits alle virtuellen Methoden kompiliert und anschließend in allen Übersetzungseinheiten vom Linker korrekt aufgelöst.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
- Krishty
- Establishment
- Beiträge: 8268
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Ja klar m]Jörg hat geschrieben:Pro Dreieck: Manueller fetch ueber Primitive-ID?
Und ich habe ohne Witz schon versucht, jedes Dreieck als Instanz zu verarbeiten und den Textur-Index als PER_INSTANCE_DATA zu setzen :D
Re: Anti-Jammer-Thread
Da es hier keinen Link-Thread gibt, kommt's eben in den Anti-Jammer-Thread:
http://www.danielmoth.com/Blog/C-Accele ... elism.aspx
Integration in Visual Studio ähnlich wie OMP? Benutzung wie die STL? Offene Spezifikation? HAL? Ja. Me Gusta. (Mal sehen, was da am Ende rauskommt. Und ob man kein hardwarespezifisches Tuning benutzen muss, um eine anständige Performance zu erreichen.)
http://www.danielmoth.com/Blog/C-Accele ... elism.aspx
Integration in Visual Studio ähnlich wie OMP? Benutzung wie die STL? Offene Spezifikation? HAL? Ja. Me Gusta. (Mal sehen, was da am Ende rauskommt. Und ob man kein hardwarespezifisches Tuning benutzen muss, um eine anständige Performance zu erreichen.)
- Krishty
- Establishment
- Beiträge: 8268
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
http://www.danielmoth.com/Blog/C-Accelerated-Massive-Parallelism.aspx hat geschrieben:9. builds on DirectX (and DirectCompute in particular) which offers a great hardware abstraction layer that is ubiquitous and reliable.
builds on […] DirectCompute […] which offers a great hardware abstraction layer that is […] reliable.
DirectCompute
great hardware abstraction
reliable
Naja gut, wenn es nun über C++ läuft statt über diesen unsäglichen HLSL-Compiler, ist schonmal die Hälfte der Bugs weg. Aber der Gedanke an AMDs Treiber jagt mir immernoch kalte Schauer durch die Speiseröhre. Achja: Warum haben die eigentlich in den letzten sechs Monaten keine Aktualisierung für den GPU Shader Analyzer freigegeben?
- Lynxeye
- Establishment
- Beiträge: 145
- Registriert: 27.02.2009, 16:50
- Echter Name: Lucas
- Wohnort: Hildesheim
- Kontaktdaten:
Re: Anti-Jammer-Thread
Tja, das hat auch AMD inzwischen eingesehen. Die nächste Generation von AMD Hardware wird wieder auf skalare Shader Einheiten setzen, statt dem VLIW Kram, den sie nie voll unter Kontrolle gebracht haben.
Aber wieso landet sowas schon im Anti-Jammer-Thread?
Aber wieso landet sowas schon im Anti-Jammer-Thread?
Re: Anti-Jammer-Thread
Wie gesagt, ich hätte es in einem wie auch immer gearteten Linkthread gepostet, aber es gibt hier keinen (vielleicht wäre aber einer ganz sinnvoll, eben als Mittelweg zwischen Jammer- und Anti-Jammer-Thread). Extra einen aufmachen wollte ich aber nicht. (Wenn die Moderatoren das anders sehen, einfach oben abtrennen.)Lynxeye hat geschrieben:Aber wieso landet sowas schon im Anti-Jammer-Thread?
Warum ich das ursprünglich in den Anti-Jammer-Thread gepostet habe, ist doch klar: Zumindest kocht jetzt nicht mehr jeder sein eigenes Süppchen. Und die aufgeführten Punkte sehen ganz viel versprechend aus -- was hinten raus kommt, ist natürlich eine andere Frage.
Wenn jemand mehr dazu lesen möchte, habe ich hier einen etwas weiterführenden Blogpost gefunden. Das nächste Informationshäppchen wird wohl erst kommen, wenn das Video von der Keynote auf Channel 9 kommt.
- Krishty
- Establishment
- Beiträge: 8268
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Wow! Soo viele bunte Punkte kann man jetzt berechnen … aber am meisten hat mich beeindruckt, dass der auf Knopfdruck alles schneller gemacht hat! Krass, was man heute alles machen kann!
Nein, im Ernst: Die Minute, in der tatsächlich über die Implementierung in C++ geredet wurde, klang erstmal nicht verkehrt. Mal weiterverfolgen.
Nein, im Ernst: Die Minute, in der tatsächlich über die Implementierung in C++ geredet wurde, klang erstmal nicht verkehrt. Mal weiterverfolgen.
Re: Anti-Jammer-Thread
For your convenience habe ich mal den ganzen Code abgetippselt.
Und drei zusätzliche Bilder gibts hier.
Code: Alles auswählen
void MatrixMult( float* C, const vector<float>& A, const vector<float>& B,
int M, int N, int W )
{
for (int y = 0; y < M; y++)
for (int x = 0; x < N; x++) {
float sum = 0;
for(int i = 0; i < W; i++)
sum += A[y*W + i] * B[i*N + x];
C[y*N + x] = sum;
}
}
Code: Alles auswählen
void MatrixMult( float* C, const vector<float>& A, const vector<float>& B,
int M, int N, int W )
{
array_view<const float, 2> a(M, W, A), b(W, N, B);
array_view<writeonly<float>, 2> c(M, N, C);
parallel_for_each(c.grid, [=](index<2> idx) restrict(direct3d) {
float sum = 0;
for(int i = 0; i < a.x; i++)
sum += a(idx.y, i) * b(i, idx.x);
c[idx] = sum;
});
}
Re: Anti-Jammer-Thread
Scheint ne interessante Sache zu sein...
MyAntiJammerBeitrag:
Ich freu' mich einfach mal, weil das end- und aussichtslose "rumgehacke" anscheinend langsam mal ein Ende hat! :P
MyAntiJammerBeitrag:
Ich freu' mich einfach mal, weil das end- und aussichtslose "rumgehacke" anscheinend langsam mal ein Ende hat! :P
Re: Anti-Jammer-Thread
Keynote online!
http://channel9.msdn.com/Events/AMD-Fus ... 11/KEYNOTE
Nachtrag: So, gerade angeschaut. Extreme Anschauempfehlung. Auch wenn mir die GPU-Cloud doch Sorgen bereitet hat ;)
http://channel9.msdn.com/Events/AMD-Fus ... 11/KEYNOTE
Nachtrag: So, gerade angeschaut. Extreme Anschauempfehlung. Auch wenn mir die GPU-Cloud doch Sorgen bereitet hat ;)