Xgl

תצוגת קובייה, על שולחן עבודה מואץ גרפית

Xgl הוא שרת X שתוכנן לנצל את היכולות של כרטיסים גרפיים מתקדמים, באמצעות OpenGL. Xgl כרגע עובד מעל שרת X רגיל, על גבי glitz. הוא תומך בהאצת חומרה, עבור כל ישומי X, OpenGL ו־XVideo ובאפקטים מרשימים באמצעות Composite managers כמו Compiz ו־Beryl. יוזם הפרויקט הוא דייוויד רבמן (David Reveman) וגרסתו הראשונה שוחררה ב־2 בינואר 2006. בהמשך הוא הוחלף במימוש החליפי AIGLX וכיום אין בו כמעט שימוש.

== היסטוריה ==
Xgl פותח בהתחלה ברשימות תפוצה ציבוריות, אך עד ינואר 2006 התפתח מאחורי דלתות סגורות. באותו יום נפתח מחדש הפרויקט, ושולב עם freedesktop.org, יחד עם תמיכה במגוון גדול יותר של מנהלי התקני תצוגה. תשתיות X ששוחררו עם הפרויקט היו Xglx ו־Xegl. בפברואר 2006, השרת קיבל תשומת לב רבה, לאחר שחברת נובל, הציגה שולחן עבודה מואץ גרפית, עם חלונות שקופים ורוטטים וקוביה מסתובבת. האפקטים עבדו בהתחלה עם Composite manager בשם glxcompmgr שהוחלף, לאחר שהובן שצריך לשלב בין מנהלי החלונות וה־Composite Managers. כפתרון פיתח דייוויד רבמן את Compiz. בספטמבר 2006, compiz פוצל ל־Beryl.

== תשתיות ==
OpenGL לא מפרט כיצד לאתחל צג ולבצע מניפולציות על drawing context. במקום, הפעולות הללו מתוארות על ידי ממשק ספציפי עבור מערכת החלונות (Windowing System). עד כה ישנן שתי גישות לבעיית האתחול, סביר להניח שהקוד בין שתי הגישות יהיה כמעט זהה, וההבדל העיקרי יהיה רק בחלק שמתחיל את שרת ה־X.

=== Xglx ===
Xglx היה התשתית הראשונה שפותחה עבור Xgl, רוב הפיתוח מתמקד כיום בו. הוא זקוק לשרת X קיים בשביל לרוץ מעליו, ויוצר חלון OpenGL, באמצעות GLX, ש־Xgl משתמש בו, בדומה ל־Xnest. מצב זה נועד לפיתוח בלבד, שכן הוא דורש שרת X אחר לרוץ מעליו. ב־XdevConf 2006 nVidia הציגה מצגת שמסבירה מדוע זו אינה הדרך הנכונה לבצע זאת, כאשר עיקרי ההסבר נגעו בכך ששיטה זו מונעת מספר יכולות של הכרטיסים הגרפיים מה שגורם, למשל, שפיתוח דרייברים יהיה מסובך יותר. למרות החסרונות בשיטה זאת, היכולות להפטר מפיתוח החלק של אתחול השרת, מספקת משאבים לפיתוח קוד השרת עצמו במקום בזבוז זמן פיתוח בהתממשקות עם חומרות וידאו שונות. כרגע Xglx לא תומך רשמית במספר צגים, אף על פי שהדבר הוכח כאפשרי על אובונטו מגרסת Dapper עם כרטיס מסך של ATI / nVidia (TwinView).

=== Xegl ===
Xegl הוא העתיד של Xgl, והמטרה בטווח הארוך של פיתוח שרתי ה־X. רוב הקוד יהיה זהה לזה של Xglx, מלבד החלק המטפל באתחול צג ה־OpenGL וה־Drawing Context, שיבוצע באמצעות ממשק ה־GL המשובץ, הנקרא EGL API. המימוש הנוכחי עובד עם Mesa Solo, בשביל לספק ל־OpenGL ציור ישיר ל־DRI או ל־framebuffer של לינוקס, אל כרטיס המסך. נכון לאוגוסט 2005, Xegl יכול לרוץ רק על כרטיסי Radeon מדגם R200, הפיתוח מאז הושהה. סביר להניח שהוא יישאר כך עד ש־Xgl יוכיח את עצמו בשטח, ומנהלי התקן סגורים יוסיפו תמיכה בממשק ה־EGL, ולכן המעבר יהיה שקוף.

== היגיון ==
בניית כל פעולות הציור מעל OpenGL תפשט מאוד את בניית הדרייברים. היא תבטל את ההפרדה המלאכותית בין האצות דו-ממדיות לתלת-ממדיות. לזה יש יתרון שכן ציור דו-ממדי בדרך כלל אינו מואץ (תלת-ממד כולל בתוכו דו-ממד). בנוסף, הוא מסיר את כל הקוד התלוי בדרייברים בשרת ה־X, ומאפשר פעולות ציור וקומפוזיציה באופן בלתי תלוי בדרייבר. בנוסף מנהלי קומפוזיציה (Composite Managers), מסוגלים ליצור באמצעות OpenGL, אפקטים מרהיבים. בנוסף דווח שיצרניות השבבים nVidia ו־ATI, מוכנות לשחרר גרסאות בינאריות של מנהלי התקנים גרפיים עבור שרת X מבוסס OpenGL, ברגע שיתייצב ממשק מוגדר. על אף שב־XdevConf 2006, nVidia אמרו שהם מרוצים מהממשק הנוכחי. הרעיון להרחיב זאת, נעשה על ידי פרויקט AIGLX על ידי פדורה (רד-האט).

== מתחרים ==
ציור חלונות ושולחן עבודה, מואץ גרפית על ידי OpenGL כבר קיים במערכת ההפעלה Mac OS X, על ידי טכנולוגיה בשם Quartz Extreme, מאז גרסה 10.2. Quartz 2D Extreme הוא שיפור של תכונה זו ומקביל יותר ל־Xgl. הוא כמו Xgl, מספק האצה גרפית לכל פעולות הדו-ממד, ובא בגרסה 10.4, אך לא מאופשר כברירת מחדל, משום שטרם הוכרז רשמית ומסיבות של מוכנות המוצר.

פרויקט Looking Glass של חברת Sun, הוא בין החלוצים בנושא.

מיקרוסופט פיתחה טכנולוגיה דומה מבוססת DirectX, בשם DWM, עבור מערכת ההפעלה שלה Windows Vista.

== מחלוקת ==
טכנולוגית Xgl, צריכה ביצועי OpenGL טובים, עם מספר תכונות תלת-ממד של כרטיסי מסך מודרניים. לרוב אלו ניתנים לגישה על ידי דרייברים קנייניים בלבד של ATI או nVidia. ישנם דרייברים חופשיים עבור כרטיסים אלו, אך הם בדרך כלל מספקים רק תמיכה דו-ממדית או תמיכה פרימיטיבית ב־OpenGL. כרגע זהו מצב קיפאון, שכן יצרני כרטיסים גרפיים הכריזו שאין להם תכנון לפתח או לסבסד דרייברים פתוחים לחלוטין. אינטל לעומת זאת, הכריזו לאחרונה על כוונה לפתוח את הדרייברים שלהם, החל מערכת השבבים Intel 965 Express. זו אבן דרך בפיתוח מנהלי ההתקן בלינוקס.

== זמינות ==
נכון למאי 2006, Xgl והרכיבים הנלווים אליו, זמין, אך לא מאופשר כברירת מחדל, בהפצת הלינוקס סוזה 10.1, ונכלל ב־Frugel Linux ו־SLED 10. ניתן להתקין את Xgl בקלות יחסית על אובונטו 6.06 עם חבילות בינאריות ממאגרים לא רשמיים, הוא גם זמין עבור ג'נטו ו־Arch Linux.

מנדריבה 2007, מכילה גם חבילות רשמיות של Xgl. היא גם מכילה אשף בשם Drak3d להגדרת שולחן עבודה מואץ גרפית במספר פעולות פשוטות.

== קישורים חיצוניים==
* 
* [https://archive.today/20120629083457/http://xgl.opensuse.org/ ההכרזה של חברת נובל, כולל תמונות מסך וסרטונים]

קטגוריה:תוכנות מערכת
קטגוריה:גרפיקה ממוחשבת
קטגוריה:תוכנה חופשית