block control block control
We Do It 4 Our Dreams
Login
Username:

Password:

Remember me



Lost Password?

Register now!

Hauptmenü
Bereiche
Home
PD News
PC News
BeOS News
Berichte
Community
Case Gallery
Power Pics
Forum
Downloads
Links
Informationen
Seitenübersicht
Hilfe / FAQ
Partnerseiten
Sponsoren
Kontakt

Websiteinfo's
Webmaster (O.M.A.)
Krobi
Krobi
Gonzo
Gonzo
V(i)P's
MASTER-STYX
MASTER-STYX
Mario
Mario


Herzlich Willkommen

_MB_INCBLOCKS_WELCOME

Wenn du auch einen coolen PC dein Eigen nennst, dann kannst du die Bilder deines PC's bei uns vollkommen kostenlos hochladen und der Welt präsentieren.
 


ATI's TRUFORM _MD_POPULAR 

_MD_WRITTENBY Skilled_sniper
_MD_DATE Sun, 06.06.2004
_MD_HITS 1048

_MD_RATINGC  (_MD_RATING)

Vorwort

Das ATI-Feature TRUFORM gehört zum festen Bestand der Radeon 8500, 9000, 9100, 9200, 9500, 9600, 9700, 9800er –Karten.
Da es noch in einigen Foren umdiskutiert wird, möchte ich hierzu einen ausführlichen Bericht schreiben. Die Hauptvorgänge innerhalb der GPU (im Zusammenhand mit TRUFORM) werden hiermit detailliert erklärt.

Inhalt

Bei einem Grafikwettbewerb zwischen Nvidia und ATI im Jahre 2001 trat der zweite Hersteller mit der Grakifkarte Radeon 8500 an. Diese, für damalige Verhältnisse, sehr leistungsfähige Karte lag taktmäßig klar hinter der GeForce 3 Ti 500 zurück, setzte aber eine vielversprechende Technologie namens TRUFORM ein.

Ähnlich wie die neuere „Hidden-Surface-Removal“ Technologie des Kyro Chips versprach TRUFORM eine wesentliche Steigerung der Bildqualität ohne Performance-Verluste. Dies sollte durch die besonders rationale Verteilung der Berechnungsaufgaben auf die GPU gewährleistet werden.

Trotz hervorragender Erfolgschancen wurde die Vermarktung des Kyro Chips(auch KyroII) und der dazugehörigen HSR zu einem Missmarkt: die Grafikkarte war für ihren Preis nicht nur lahm und untertaktet. Die „neue“ Grafiktechnik brachte erhebliche Schwierigkeiten mit sich, denn längst nicht alle „unsichbaren“ Flächen trugen zur Qualitätserhaltung bei. Das beste Beispiel ist hier die „Need for Speed“-Reihe. Jedem Kyro-Besitzer stank, dass der Boden und die Karosserie des Fahrzeugs überhaupt nicht gerendert wurden.

Dummerweise war dieses HSR hardwäremäßig als Grafikfeature eingebaut und ließ sich überhaupt nicht abschalten. Die Versuche des Herstellers eifrig neue Treiber und Patches zu entwickeln führten nur noch zu weiteren Fehlern und Bugs…

„TRUFORM“ ist keinesfalls eine reine ATI-Entwicklung. Bereits die Konsole N64 (1996) und die PSone benutzten eine relativ simple geometrische Interpolation, d.h. eine bestimmte Beleuchtung der Polygonenebenen. Vor allem die N64 beeindruckte durch neuartige Effekte: die Fernseherauflösung lag bei 640x480 oder sogar bei 800x600…..doch die Ausgabe betrug lediglich 320x240. Das Endbild wurde auf PAL-Breite „gestreckt“. Die dadurch entstehenden Macken verschwanden durch Guro-Lighting, Full-Screen-Antialising und bis zu 8 Farbenquellen . Dazu kam noch das Multi-Texturing und angeblich auch ein einfacherer bilinärer Filter (wahrscheinlich 2x). Im Prinzip handelt es sich hier um nichts anderes als heutzugtage recht verbreitete MipMap-Interpolation, der Zwischentexturen inklusive

Kein Wunder also, dass die schwächliche N64 solche Grafikwunder hervorzauberte. Die Konsolen waren den PC-Systemen meilenweit voraus (grafisch, versteht sich). Dieses alte System ist eine krasse Bestätigung.

Nun zu TRUFORM selbst. Der Grundgedanke der Technik besteht darin, aus einer Ebenen eine glatte und gewölbt wirkende Fläche herzustellen. Nun, das klingt zunächst sehr einfach. Tatsächlich aber sind mehrere GPU-Altgorithmen nötig um solch ein Ergebnis auszugeben.
Die Spiele-3D-Grafik bestehen bekanntlich aus Polygonen (Dreiecken, die dynamisch miteinander verbunden sind). Je mehr Dreiecke eine Figur, Umwelt etc. besitzt, desto
flüssiger erscheint sie. Ein kleines Beispiel:

Resized Image
Resized Image
Resized Image
4 Segmente
12 Segmente
100 Segmente

Ein beliebiges Objekt mit mehr Polygonen erscheint schöner und realistischer. Wie man leicht bemerken kann, hat die 100er Kugel einen lebensecht wirkenden Glanz, die 12er dagegen nur eine fälschliche Darstellung. Dieser Effekt kommt durch die Schattierung der Polygone – je mehr Segmente eine Kugel hat, desto mehr Dreiecke hat sie, desto kleinere Schatte werfen die auf die benachbarten Dreicke. Eine Sphäre mit 1000 Segmenten würde dementsprechend einen noch realistischeren Glanz wiedergeben. Der hohe Detailgrad wird durch die Krümmung offensichtlich. Beeindruckende Filme wie „Toy Story“, „Shrek“, „Final Fantasy“ auf der Weise der Überkrümmung, d.h. ein täuschend echten Krümmung, realisiert. Selbstverständlich lässt sich dies auch in der Spieleindustrie anwenden.

Ein beliebiger Polygon „trägt“ stets 6 Informationen mit sich, die seine Lage und sein Aussehen unverwechselbar defenieren: Das sind 3 Höhen des Dreiecks und die 3 dazugehörigen Shading-Masken (Normals). Normalerweise fängt der Pozessor an, die Masken aufzulegen und zu belichten um so einen Polygon zu schattieren – aber nicht bei TRUFORM.

TRUFORM analsiert zunächts Resized Imagedie Polygonenstrukturen; ihre Anzahl, ihren Index etc. Nachdem die GPU die Informationen erhalten hat, fängt sie an N-Patches zu kreieren. Die N-Patches sind ein Bestandteil des DirectX 8.1. Daraus bildet sich ein N-Patches-Netz. Das N-Patches-Netz sind dots und Kanten auf der Grundfläche des bearbeiteten Dreiecks. Um einen N-Dot herzustellen werden über dem Dreieck 2 Kontrollpunkte festgelegt. Dadurch entstehen 6 neue Höhen. Jeder N-Dot steht winkeltreu zu der Shading-Maske. Die Kontrollpunkte der N-Dot werden entsprechend der Shading-Maske ausgerichtet. Auf dem Bild sieht man den Kontrollpunkt b210, senkrecht zum Normal N1.

Durch das N-Patches-Netz entstehen somit Resized Imageweitere Punkte, die die Schwerpunkte eines neuen N-Dreiecks sind. N-Dreicke sind (immernoch) flache Scheindreicke die durch die N-Dots entstanden sind (im Beispiel 9 N-Dreicke). Zu den berechneten x- und y-Koordinaten der N-Dots kommen die z-Koordinaten der Shading-Masken, so dass ein räumliches Gitter aus 9 Einzeldreicken entseht.

Die einst ebene Fläche wird mit Hilfe der Tesselation (Splitting) in mehrere gleichmäßige Dreicke aufgeteilt und diese anschließend interpoliert. Die Aufteilung kann theoretisch so oft passieren wie man möchte. Da dieser Vorgang von der Transform & Lighting- Engine übernommen wird, dürfte es (ebenfalls theoretisch) kein Leistungsverlust geben. Durch die Tesselation sollte es zu realistischeren Oberflächen kommen.

Resized Image

Natürlich sollte die frisch-entstandene Resized ImageFläche belichtet werden. Ein N-Patch wird, wie erwähnt, durch 10 Punkte festgenagelt. Durch die ursprünglichen Normals würden fälschliche Schattierungen entstehen, da das Dreieck ja nach Guro beleuchtet sein würde. Wenn man jeden einzelnen Polygonpixel beleuchten würde (Fong-Lighting), würde eine täuschend echte Krümmung mit unnerreichter Genauigkeit entstehen. Da aber so eine Beleuchtung ein Rechenenaufwand ist (jeder Pixel muss beleuchtet werden), wird diese Aufgabe heutzutage gewöhnlich von den Pixel-Shader-Einheiten übernommen. Doch die N-Patches von TRUFORM erlauben ein weiteres, sehr fongnahes Lighting. TRUFORM bildet neue Shading-Masken, die senkrecht zu den Seiten sind.

Während ein 3D-Objekt bereits tesserliert worden ist, wird es gleichzeitig natürlicher beschattet. Das Resultat sieht oft spektakulär aus:

ohne TRUFORM
mit TRUFORM
Resized Image
Resized Image


Fazit:

Eigentlich sollte TRUFORM die Spielewelt revolutionieren. Um Fehler zu vermeiden sollten 90° zueinander stehende Flachen NICHT tesseliert werden. Doch ATI hat gravierende Fehler gemacht. So wurden die TRUFORM-Algorithmen nur teilweise im T&L-Bereich abgelagert. Das führte zu Performanceeinbußen. Ursprünglich plante ATI einen Treiber mit Regelung des Tesselationslevels herauszubringen um die TRUFORM-Leistung manuell zu optimieren. Doch auch diese Idee wurde weggeworfen. Schließlich endete diese Technologie mit Potential als ein kleiner Schalter im unteren Treiberbereich…...

Bei Fragen oder Kommentaren
HIER GEHTS INS FORUM

_MD_RATETHIS | _MD_PRINTTUT  
PD-Members
User online: 1
Guests: 1
Members: 0

more...
Members: 423
Today: 0
Yesterday: 0

Latest: LELO_05

Werbung

Partner


0.065 seconds - 50 queries
None All Errors (75) Deprecated (1) Queries (50) Blocks (9) Extra (2) Timers(6)
Errors
Warning: mysqli::__construct(): Persistent connections are disabled. Downgrading to normal in file /class/database/mysqldatabase.php line 64
Warning: preg_match(): Unknown modifier '/' in file /home/www/old.pd/pd_lib/modules/protector/class/protector.php line 1194
Warning: Use of undefined constant _MI_POLLS_NAME - assumed '_MI_POLLS_NAME' (this will throw an Error in a future version of PHP) in file /modules/xoopspoll/xoops_version.php line 28
Warning: Use of undefined constant _MI_POLLS_DESC - assumed '_MI_POLLS_DESC' (this will throw an Error in a future version of PHP) in file /modules/xoopspoll/xoops_version.php line 30
Warning: Use of undefined constant _MI_POLLS_BNAME1 - assumed '_MI_POLLS_BNAME1' (this will throw an Error in a future version of PHP) in file /modules/xoopspoll/xoops_version.php line 72
Warning: Use of undefined constant _MI_PARTNERS_NAME - assumed '_MI_PARTNERS_NAME' (this will throw an Error in a future version of PHP) in file /modules/xoopspartners/xoops_version.php line 31
Warning: Use of undefined constant _MI_PARTNERS_DESC - assumed '_MI_PARTNERS_DESC' (this will throw an Error in a future version of PHP) in file /modules/xoopspartners/xoops_version.php line 34
Warning: Use of undefined constant _MI_PARTNERS_NAME - assumed '_MI_PARTNERS_NAME' (this will throw an Error in a future version of PHP) in file /modules/xoopspartners/xoops_version.php line 54
Warning: Use of undefined constant _MI_PARTNERS_DESC - assumed '_MI_PARTNERS_DESC' (this will throw an Error in a future version of PHP) in file /modules/xoopspartners/xoops_version.php line 55
Warning: Use of undefined constant _MI2_sponsors_NAME - assumed '_MI2_sponsors_NAME' (this will throw an Error in a future version of PHP) in file /modules/sponsors/xoops_version.php line 31
Warning: Use of undefined constant _MI2_sponsors_DESC - assumed '_MI2_sponsors_DESC' (this will throw an Error in a future version of PHP) in file /modules/sponsors/xoops_version.php line 34
Warning: Use of undefined constant _MI_CONTACT_NAME - assumed '_MI_CONTACT_NAME' (this will throw an Error in a future version of PHP) in file /modules/contact/xoops_version.php line 28
Warning: Use of undefined constant _MI_CONTACT_DESC - assumed '_MI_CONTACT_DESC' (this will throw an Error in a future version of PHP) in file /modules/contact/xoops_version.php line 30
Warning: Use of undefined constant _ALBM_MYALBUM_NAME - assumed '_ALBM_MYALBUM_NAME' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 34
Warning: Use of undefined constant _ALBM_BNAME_RANDOM - assumed '_ALBM_BNAME_RANDOM' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 63
Warning: Use of undefined constant _ALBM_BNAME_RECENT - assumed '_ALBM_BNAME_RECENT' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 72
Warning: Use of undefined constant _ALBM_BNAME_HITS - assumed '_ALBM_BNAME_HITS' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 81
Warning: Use of undefined constant _ALBM_BNAME_RECENT_P - assumed '_ALBM_BNAME_RECENT_P' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 90
Warning: Use of undefined constant _ALBM_BNAME_HITS_P - assumed '_ALBM_BNAME_HITS_P' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 99
Warning: Use of undefined constant _ALBM_TEXT_SMNAME1 - assumed '_ALBM_TEXT_SMNAME1' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 114
Warning: Use of undefined constant _ALBM_TEXT_SMNAME2 - assumed '_ALBM_TEXT_SMNAME2' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 122
Warning: Use of undefined constant _ALBM_TEXT_SMNAME3 - assumed '_ALBM_TEXT_SMNAME3' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 125
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NOTIFY - assumed '_MI_MYALBUM_GLOBAL_NOTIFY' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 452
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NOTIFYDSC - assumed '_MI_MYALBUM_GLOBAL_NOTIFYDSC' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 453
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NOTIFY - assumed '_MI_MYALBUM_CATEGORY_NOTIFY' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 456
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NOTIFYDSC - assumed '_MI_MYALBUM_CATEGORY_NOTIFYDSC' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 457
Warning: Use of undefined constant _MI_MYALBUM_PHOTO_NOTIFY - assumed '_MI_MYALBUM_PHOTO_NOTIFY' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 463
Warning: Use of undefined constant _MI_MYALBUM_PHOTO_NOTIFYDSC - assumed '_MI_MYALBUM_PHOTO_NOTIFYDSC' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 464
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFY - assumed '_MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFY' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 471
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYCAP - assumed '_MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYCAP' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 472
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYDSC - assumed '_MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYDSC' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 473
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYSBJ - assumed '_MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYSBJ' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 475
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFY - assumed '_MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFY' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 479
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYCAP - assumed '_MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYCAP' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 480
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYDSC - assumed '_MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYDSC' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 481
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYSBJ - assumed '_MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYSBJ' (this will throw an Error in a future version of PHP) in file /modules/myalbum/xoops_version.php line 483
Warning: Use of undefined constant _ALBM_MYALBUM_NAME - assumed '_ALBM_MYALBUM_NAME' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 34
Warning: Use of undefined constant _ALBM_BNAME_RANDOM - assumed '_ALBM_BNAME_RANDOM' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 63
Warning: Use of undefined constant _ALBM_BNAME_RECENT - assumed '_ALBM_BNAME_RECENT' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 72
Warning: Use of undefined constant _ALBM_BNAME_HITS - assumed '_ALBM_BNAME_HITS' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 81
Warning: Use of undefined constant _ALBM_BNAME_RECENT_P - assumed '_ALBM_BNAME_RECENT_P' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 90
Warning: Use of undefined constant _ALBM_BNAME_HITS_P - assumed '_ALBM_BNAME_HITS_P' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 99
Warning: Use of undefined constant _ALBM_TEXT_SMNAME1 - assumed '_ALBM_TEXT_SMNAME1' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 114
Warning: Use of undefined constant _ALBM_TEXT_SMNAME2 - assumed '_ALBM_TEXT_SMNAME2' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 122
Warning: Use of undefined constant _ALBM_TEXT_SMNAME3 - assumed '_ALBM_TEXT_SMNAME3' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 125
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NOTIFY - assumed '_MI_MYALBUM_GLOBAL_NOTIFY' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 452
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NOTIFYDSC - assumed '_MI_MYALBUM_GLOBAL_NOTIFYDSC' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 453
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NOTIFY - assumed '_MI_MYALBUM_CATEGORY_NOTIFY' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 456
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NOTIFYDSC - assumed '_MI_MYALBUM_CATEGORY_NOTIFYDSC' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 457
Warning: Use of undefined constant _MI_MYALBUM_PHOTO_NOTIFY - assumed '_MI_MYALBUM_PHOTO_NOTIFY' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 463
Warning: Use of undefined constant _MI_MYALBUM_PHOTO_NOTIFYDSC - assumed '_MI_MYALBUM_PHOTO_NOTIFYDSC' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 464
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFY - assumed '_MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFY' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 471
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYCAP - assumed '_MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYCAP' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 472
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYDSC - assumed '_MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYDSC' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 473
Warning: Use of undefined constant _MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYSBJ - assumed '_MI_MYALBUM_GLOBAL_NEWPHOTO_NOTIFYSBJ' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 475
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFY - assumed '_MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFY' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 479
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYCAP - assumed '_MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYCAP' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 480
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYDSC - assumed '_MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYDSC' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 481
Warning: Use of undefined constant _MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYSBJ - assumed '_MI_MYALBUM_CATEGORY_NEWPHOTO_NOTIFYSBJ' (this will throw an Error in a future version of PHP) in file /modules/myalbum1/xoops_version.php line 483
Warning: Use of undefined constant _MI_TUTORIALS_NAME - assumed '_MI_TUTORIALS_NAME' (this will throw an Error in a future version of PHP) in file /modules/tutorials/xoops_version.php line 2
Warning: Use of undefined constant _MI_TUTORIALS_DESC - assumed '_MI_TUTORIALS_DESC' (this will throw an Error in a future version of PHP) in file /modules/tutorials/xoops_version.php line 4
Warning: Use of undefined constant _MI_TUTORIALS_SMNAME1 - assumed '_MI_TUTORIALS_SMNAME1' (this will throw an Error in a future version of PHP) in file /modules/tutorials/xoops_version.php line 54
Unknown: define(): Declaration of case-insensitive constants is deprecated in file /modules/newbb/language/english/modinfo.php line 121
Unknown: define(): Declaration of case-insensitive constants is deprecated in file /modules/newbb/language/english/modinfo.php line 221
Warning: Use of undefined constant _MB_INCBLOCKS_WELCOME - assumed '_MB_INCBLOCKS_WELCOME' (this will throw an Error in a future version of PHP) in file /modules/incblocks/blocks/menuwelcome.php line 15
Notice: Trying to access array offset on value of type null in file /modules/PDMembers/blocks/PDMembers_block.php line 32
Notice: Undefined index: user_regdate in file /modules/PDMembers/blocks/PDMembers_block.php line 94
Warning: count(): Parameter must be an array or an object that implements Countable in file /modules/PDMembers/blocks/PDMembers_block.php line 94
Warning: Database updates are not allowed during processing of a GET request in file /class/database/mysqldatabase.php line 519
Warning: include_once(/modules/xoopspoll/language/english/main.php): failed to open stream: No such file or directory in file /modules/xoopspoll/blocks/xoopspoll.php line 33
Warning: include_once(): Failed opening '/modules/xoopspoll/language/english/main.php' for inclusion (include_path='.:/usr/share/php') in file /modules/xoopspoll/blocks/xoopspoll.php line 33
Warning: Use of undefined constant _MD_INDEX - assumed '_MD_INDEX' (this will throw an Error in a future version of PHP) in file /modules/tutorials/viewtutorial.php line 47
Unknown: Function get_magic_quotes_gpc() is deprecated in file /modules/tutorials/viewtutorial.php line 111
Warning: Use of undefined constant _MD_POPULAR - assumed '_MD_POPULAR' (this will throw an Error in a future version of PHP) in file /modules/tutorials/include/functions.php line 115
Warning: Use of undefined constant _MD_RATING - assumed '_MD_RATING' (this will throw an Error in a future version of PHP) in file /modules/tutorials/viewtutorial.php line 150
Deprecated
Class 'XoopsTree' is deprecated, check 'XoopsObjectTree' in tree.php trace: /class/xoopstree.php:49 /modules/tutorials/viewtutorial.php:48
Queries
0.000123 - SET SQL_BIG_SELECTS = 1
0.001405 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '1') ORDER BY conf_order ASC
0.000453 - SELECT sess_data, sess_ip FROM session WHERE sess_id = '6db0d0876f09418bf15d8080507f866d'
0.000374 - SELECT * FROM modules WHERE dirname = 'tutorials'
0.001380 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '1' AND (`gperm_groupid` = '3') AND `gperm_name` = 'module_read' AND `gperm_itemid` = '29')
0.000553 - DELETE FROM protector_access WHERE expire < UNIX_TIMESTAMP()
0.000333 - SELECT COUNT(*) FROM protector_access WHERE ip='3.149.213.209' AND request_uri='/modules/tutorials/viewtutorial.php?tid=30'
0.000226 - SELECT COUNT(*) FROM protector_access WHERE ip='3.149.213.209'
0.000325 - INSERT INTO protector_access SET ip='3.149.213.209', request_uri='/modules/tutorials/viewtutorial.php?tid=30', expire=UNIX_TIMESTAMP()+'10'
0.000414 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '5') ORDER BY conf_order ASC
0.000510 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '3') ORDER BY conf_order ASC
0.005941 - SELECT DISTINCT gperm_itemid FROM group_permission WHERE gperm_name = 'block_read' AND gperm_modid = 1 AND gperm_groupid IN (3)
0.002544 - SELECT b.* FROM newblocks b, block_module_link m WHERE m.block_id=b.bid AND b.isactive=1 AND b.visible=1 AND m.module_id IN (0,29) AND b.bid IN (9,82,6,1,12,11,10,8,7,5,4,86,3,219,2,44,175,177,178,45,80,79,78,85,84,83,81,97,98,92,93,90,91,64,65,66,67,169,170,168,136,143,151,180,181,182,183,227,179,210,204,205,206,207,208,209,197,198,199,200,201,202,203,196,190,191,192,193,194,195,211,176,223,226,230,231,232,233) ORDER BY b.weight, m.block_id
0.000623 - SELECT * FROM modules WHERE (`hasmain` = '1' AND `isactive` = '1' AND `weight` > '0') ORDER BY weight ASC, mid ASC
0.002061 - SELECT * FROM group_permission WHERE (`gperm_name` = 'module_read' AND `gperm_modid` = '1' AND `gperm_groupid` = '3')
0.001054 - SELECT gperm_itemid FROM group_permission LEFT JOIN modules m ON gperm_modid=m.mid WHERE m.dirname='myalbum' AND gperm_name='myalbum_global' AND (gperm_groupid=3)
0.000820 - SELECT gperm_itemid FROM group_permission LEFT JOIN modules m ON gperm_modid=m.mid WHERE m.dirname='myalbum1' AND gperm_name='myalbum_global' AND (gperm_groupid=3)
0.000309 - SELECT * FROM modules WHERE dirname = 'PDdownloads'
0.000274 - SELECT * FROM modules WHERE dirname = 'PDlinks'
0.000511 - SELECT count(*) FROM modules WHERE dirname = 'pcnews' AND isactive=1
0.000387 - SELECT * FROM modules WHERE dirname = 'pcnews'
0.001709 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '46' AND (`gperm_groupid` = '3') AND `gperm_name` = 'pcnews_submit')
0.000421 - SELECT count(*) FROM modules WHERE dirname = 'pdnews' AND isactive=1
0.000379 - SELECT * FROM modules WHERE dirname = 'pdnews'
0.001535 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '47' AND (`gperm_groupid` = '3') AND `gperm_name` = 'pdnews_submit')
0.000424 - SELECT count(*) FROM modules WHERE dirname = 'beosnews' AND isactive=1
0.000398 - SELECT * FROM modules WHERE dirname = 'beosnews'
0.002165 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '48' AND (`gperm_groupid` = '3') AND `gperm_name` = 'beosnews_submit')
0.000473 - SELECT count(*) FROM modules WHERE dirname = 'PDMembers' AND isactive=1
0.001220 - SELECT text, submitter FROM incblock_welcometext ORDER BY RAND() LIMIT 0,1
0.000277 - SELECT * FROM smiles
0.000270 - SELECT COUNT(*) FROM online WHERE online_uid=0 AND online_ip=''
0.000303 - UPDATE online SET online_updated = 1714036393, online_module = 29 WHERE online_uid = 0 AND online_ip=''
0.000170 - SELECT online_uid, online_uname FROM online
0.000846 - SELECT uid, uname, user_regdate FROM users WHERE user_regdate >= 1713909600 and level > 0
0.000265 - SELECT uid, uname from users where level > 0 order by uid DESC limit 1
0.000423 - SELECT COUNT(*) FROM users WHERE level > 0
0.000124 - SELECT COUNT(*) FROM session
0.000667 - SELECT u.uid, u.uname, u.email, u.user_viewemail, u.user_avatar, g.name AS groupname FROM groups_users_link l LEFT JOIN users u ON l.uid=u.uid LEFT JOIN groups g ON l.groupid=g.groupid WHERE g.group_type='Admin' ORDER BY l.groupid, u.uid
0.000327 - SELECT * FROM xoopspoll_desc WHERE display=1 ORDER BY weight ASC, end_time DESC
0.000302 - SELECT id FROM partners Where status = 1 ORDER BY hits DESC
0.000208 - SELECT id, url, image, title FROM partners WHERE id=9
0.000173 - SELECT id, url, image, title FROM partners WHERE id=3
0.000165 - SELECT id, url, image, title FROM partners WHERE id=5
0.000161 - SELECT id, url, image, title FROM partners WHERE id=6
0.000161 - SELECT id, url, image, title FROM partners WHERE id=4
0.000292 - update tutorials set hits=hits+1 where tid=30
0.000374 - select status, cname, tdesc, tlink, tid, a.cid, tname, timg, tcont, tauthor, codes, hits, rating, votes, date, submitter, timgwidth, timgheight from tutorials a, tutorials_categorys b where tid=30 and a.cid=b.cid
0.000181 - SELECT scid, cname FROM tutorials_categorys WHERE cid=28
0.000163 - SELECT scid, cname FROM tutorials_categorys WHERE cid=26
Total: 50
Blocks
Login: Not cached
Main Menu: Not cached
Herzlich Willkommen: Not cached
Usermenü: Not cached
PD-Members: Not cached
Site Info: Not cached
Umfragenblock: Not cached
Google Adsense (klein): Not cached
Partner: Not cached
Total: 9
Extra
Included files: 200 files
Memory usage: 1598696 bytes
Timers
XOOPS took 0.065 seconds to load.
XOOPS Boot took 0.009 seconds to load.
Module init took 0.003 seconds to load.
XOOPS output init took 0.047 seconds to load.
Module display took 0.005 seconds to load.
Page rendering took 0.001 seconds to load.