Ik zal op een aantal reacties reageren, maar eerst even mijn mening over dit hele gedoe:
Het X Window System kan nog prima mee. Eens zal het opgevolgd moeten worden door iets moderners, maar dat is op dit moment (of de komende 5 à 10 jaar) naar mijn mening absoluut niet nodig. Het X protocol is duidelijk flexibel gebleken, en extensies à la MIT-SHM, GLX, Xvideo, XRandR, XRender hebben bewezen dat X11 hiermee succesvol aan te passen is aan nieuwere hardware en software-eisen.
Maar dan is een fatsoenlijke X server natuurlijk wel een eis. En daar schort het af en toe wat aan. XRender belooft gaaf te worden, en heeft de potentie heel veel nieuws te bieden, maar een gedeeltelijke hardware-accelerated implementatie hiervan is gepland voor XFree86 5.0, waarvan het nog niet eens duidelijk is wanneer die gaat verschijnen. Dat schiet niet op.
XFree86 development heeft een schop nodig. Een fork zou denk ik zo slecht nog niet zijn. De fork wordt dan waarschijnlijk veel opener, en veel experimenteergrager. XFree86 kan zich dan aanpassen en meegaan (waardoor beide projecten van elkaar kunnen profiteren, desnoods via een experimental - production symbiose), of XFree86 kwijnt zachtjes weg terwijl de fork het overneemt.
Dat is niet waar, 32 bpp wordt gewoon ondersteund. Als je in XFree86's config "24" opgeeft voor de colordepth, dan zal XFree86 naar eigen inzicht kiezen of 24 of 32 bpp gebruikt moet worden. Hoe XFree86 dat beslist weet ik niet, maar ik meende dat 32 bpp werd gekozen waar mogelijk. Ook weet ik dat dit te overriden is (lees de manpages maar eens).
Maar het ergste vind ik eigenlijk toch wel dat de meeste van die zgn 'core developers' van XFree86 tegenwoordig alleen nog maar op hun reet zitten toe te kijken, zitten te zeiken over politiek spul en tegenwoordig nooit meer een enkele regel code schrijven voor XFree86.
Dat is een beetje oneerbiedig en kort door de bocht. Een aantal (niet allemaal nee) van de core developers doen _echt_ wel veel. Alleen die paar zijn niet genoeg om zo'n enorme source tree te onderhouden. Dat is ook één van de dingen die moeten veranderen: het aantal developers dat werkelijk aan de code mag zitten.
Iets minder dan dat hoor

XFree86 + xlibs + allerlei fonts + xclients-base is 35 MB. Alleen XFree86 + xlibs (wat basaler) is 15 MB. En dat is dus inclusief drivers voor honderden videokaarten. Kon erger dus.
Nee, waar ik mijn hoop op vestig is
Fresco.
Fresco is voor XFree86 wat de HURD is voor de Linux kernel.
Fresco is in design eleganter (al trek ik hun "wij dicteren de widgetset" idee in twijfel). Vooral het idee om alles zo vector-based mogelijk op te bouwen ipv pixel-based is zeer interessant en kan in de toekomst een belangrijke aanpak worden.
Maar op het moment zie ik in theorie voor Fresco's idee nog geen plaats op huidige computers. Laat staan in de praktijk met Fresco's huidige implementatie.
De HURD is technisch gezien ook eleganter en superieur aan de Linux kernel. Gebruik jij de HURD?

Dat ligt dan aan jou of aan je drivers gok ik, want op een machine met een Matrox G450 en XFree86 hier werkt zowel Xinerama als accelerated 3D dmv DRI

Define "een Longhorn-achtig iets" ?
De clients weten niets van elkaar, en de server weet eigenlijk niets van de clients...
Je noemt ons verder in dit topic "weinig specifiek", maar zelf ben je ook een beetje vaag hoor

Het zinnetje dat ik quote is juist heel erg van toepassing op X.
Nee, niet GPL, maar hoofdzakelijk MIT X11 license, en deels andere (waaronder BSD-style, en vast ook wel stukjes (L)GPL).
Maar dat doet er niet toe; MIT X11 is net zo goed een Free license (anders zat XFree86 niet in Debian/main

).
Ik kan het mis hebben, maar als dat zo is en XFree houdt zich daar op deze manier niet aan, vind ik dus dat XFree dit geen GPL mag noemen. Je kunt het inzien maar daar houdt het mee op.
Ik vind het een slechte zaak...
Het is gewoon Free hoor. Als je wilt forken: ga je gang, het is volkomen legaal.
Het punt is dat een fork veel energie gaat verspillen. Een aantal van de XFree86 core members werken veel aan XFree86 en kennen de source goed. Als je XFree86 goed aan wil pakken, dan wil je liever met die mensen samenwerken dan direct met ze concurreren.
Dat zie je verkeerd. Als de XFree86 core developers niks meer wilden doen, dan was er al lang een revolutie in het XFree86 development model geweest, of er was een fork gestart. Het grote punt is dat het XFree86 core team op een te gesloten manier werkt: slechts een paar (15 ?) man hebben cvs commit-access, dus als je iets aan de XFree86 main tree wil toevoegen, dan moet dat via één van die 15 man (waarvan de helft or so inderdaad niks doet).
Zelf bij het XFree86 core team gaan horen is vrijwel onmogelijk, omdat je daar zeer lastig binnenkomt.
Anoniem: 78614 schreef op 25 March 2003 @ 00:58:
Laat ik es een voorbeeld geven...
Client a heeft een translucent window... Dit tekent hij op een texture, en upload het naar de server...
De server komt nu in geheugenproblemen... Hoe weet hij nu of hij de texture van client a uit moet swappen, of iets anders?
Een applicatie moet pixmap alloceren, en die uploaden naar de server. Voor verdere acties refereert de client aan die pixmap (zonder hem opnieuw te uploaden). De server houdt die in het geheugen (een pixmap is gealloceerd voor een reden en mag niet zomaar weggeflikkerd worden).
Hoe weet hij welke applicatie niet in gebruik is, en waarschijnlijk niet gebruikt zal worden?
Wat boeit het of een applicatie "in gebruik" is?
En dan nog... Zal de server niet een enorme opslagplaats van redundant textures met UI-componentjes etc worden?
Niet direct redundant. Een X client alloceert een pixmap met een reden. Ze worden geacht die vrij te geven of te hergebruiken
as they see fit.
Kortom, hoe ga je dat in godsnaam doen?
Is geen kwestie van "gaan doen", dat is minstens al een jaar of tien zo

OpenGL is al netwerk-transparant met XFree86. Tenminste, XFree86' GLX module werkt gewoon over het netwerk. Alleen DRI acceleratie werkt niet remote. Dat zou op te lossen kunnen zijn door XFree86' GLX module gebruik van DRI te laten maken ipv de clients zelf via xlibmesa3, maar er is om de een of andere reden (die mij even ontgaan is) niet voor die manier van acceleratie gekozen.
Als je vraag is "Ik heb het nu over een 3d-accelerated GUI, die compatible met X is... Hoe ga je dat doen?" en met "compatible met X" bedoel je "netwerk transparent" dan is het antwoord heel eenvoudig: niet.
Dat is onzinnig, zie boven. Mogelijk is het altijd.
Dat is niet helemaal waar. Het X Window System schrijft voor dat connecties tussen client en server geschied via TCP/IP of DecNET als de server en client op verschillende hosts draaien. Als de server en client op dezelfde host draaien, dan moet comminucatie via TCP/IP of DecNET mogelijk zijn, maar
mag ook via een sneller locaal systeem gebeuren.
En dat doet XFree86 op GNU/Linux (en vele andere OSsen) ook. Als het allemaal lokaal draait worden Unix domain sockets gebruikt (aanzienlijk sneller dan een complete netwerk socket), en wordt shared memory gebruikt voor o.a. pixmaps.
OpenGL werkt niet 'met xfree86'... OpenGL hackt een windowtje in xfree86 en tekent daar vrolijk lokaal doorheen... De server weet daar eigenlijk weinig of niets van...
True, en toch niet helemaal. Als 3D via DRI gedaan wordt, dan klopt je verhaal. Maar XFree86 kan het zelf ook via GLX (zij het non-accelerated).
Ik vraag me dus af wat de plannen zijn voor 3d-accelerated versies van X...
Ik ook. Acceleratie van GLX lijkt me een interessante oplossing, maar ik ken te weinig van de details om te zeggen of dat (performance-) technisch haalbaar is. En ik weet al helemaal niet of ze het van plan zijn (voorlopig niet zou ik zeggen... Er zijn andere delen die aandacht verdienen).
edit: Nee, 3dwm is niet wat ik bedoel... Ik bedoel een systeem zoals Longhorn, waarbij de gehele GUI via 3d-hardware geaccelereerd wordt (aa, scaling, blitting, scrolling, alphablend etc... alles kan met de moderne hardware). Het blijft echter wel gewoon een 2d-UI (specifieke 2d-hardware zal verdwijnen, en de 3d-pipelines nemen alle functionaliteit over... Longhorn wil dus ook maar meteen GDI door Direct3D vervangen, om overbodige drivers/emulatielayers te vermijden).
Waarom is dit relevant? Het boeit niet door welke hardware het gerenderd wordt. De apps kunnen gewoon een 2D api gebruiken, als het OS dat rendert dmv de 3D hardware... Echt, het zal de applicaties aan hun reet roesten.
Anoniem: 59235 schreef op 25 March 2003 @ 01:52:
Voor een deel kunnen dit soort dingen al, ik kan met mijn G400 de XTexture extensie gebruiken voor xvideo dingen, ipv xvideo, dan scalet ie dus hardwarematig. Nadeel wel is dat dri dan niet meer werkt, dus het is vrij zinsloos als je af en toe opengl wil gebruiken.
Hmm, wat bedoel je precies? Hardware overlay + scaling + colorspace conversion kan gewoon via de Xvideo extensie, AFAIK zeker op de G400. En, what's more, tegelijk met DRI accelerated 3D.
(Oef, tijd voor een link naar een rant van jwz over die achterlijke client/server nomenclatuur bij X, want ik geloof dat ik het nu heel erg fout doe...)
De X server is het programma dat het eigenlijke tekenwerk doet (naar de hardware, of via een andere laag zoals een kernel) en de input events opvangt. X clients zijn applicaties die gebruik maken van een X server om iets op het scherm te zetten.
Het is heel logisch hoor: een server luistert voor inkomende connecties, en biedt clients die connecten bepaalde diensten aan.
Waarom snapt iedereen dat voor Apache + Mozilla, maar niemand voor XFree86 + gimp ?