A recent fix to the DDX in Xorg HEAD broke dri. via_dri.h, shared by both the
DDX and the DRI, have historically not been kept in sync. via_dri.h will now get
a comment telling that this file should be kept synced at all times.
Created attachment 3075 [details] [review]
DRI: Sync via_dri.h
Was diffed against X.org HEAD. Apply to Mesa/src/mesa/drivers/dri/unichrome/
Created attachment 3076 [details] [review]
DDX: make via_dri.h more acceptable for DRI inclusion.
diffed against current Xorg HEAD. Apply locally.
Created attachment 3077 [details] [review]
DRI: fix 2 issue with the unichrome DRI driver.
- via_screen.c: attempts to use a variable after it getting freed.
- via_screen.c: passed wrong size to drmUnMap.
- via_texcombine.c: fix dual const warning.
I've changed a few other things to ease building in solo and X builds too.
Let me know if something doesn't work correctly.
Fallout from previous commits:
grep -n "viaScreen->reg"
via_context.c:564: vmesa->regMMIOBase = (GLuint *)((GLuint)viaScreen->reg);
via_context.c:565: vmesa->pnGEMode = (GLuint *)((GLuint)viaScreen->reg + 0x4);
via_context.c:566: vmesa->regEngineStatus = (GLuint *)((GLuint)viaScreen->reg
via_context.c:567: vmesa->regTranSet = (GLuint *)((GLuint)viaScreen->reg +
via_context.c:568: vmesa->regTranSpace = (GLuint *)((GLuint)viaScreen->reg +
via_screen.c:166: drmUnmap(viaScreen->reg, gDRIPriv->regs.size);
via_screen.c:197: drmUnmap(viaScreen->reg, gDRIPriv->regs.size);
viaScreen->reg is never assigned anymore.
I'm not certain why the drmAddress map change was necessary, but it will have
broken something, even though i'm seeing no adverse effects in running glxgears.
But then, i didn't see anything with Bool as char either, amazingly.
Sorry, that was an change in my local tree that made it into the Mesa 6.4
branch, but it never got to the Mesa trunk code.
I've backed that out.
Resync with DDX via_dri.h, and properly updating DDX version.
Created attachment 3604 [details] [review]
Resync with DDX and fix DDX versioning.
The via Xorg DDX version is still 4.1.31, and given the proximity of the Xorg
6.9/7.0 release, I dont't expect that to change?
Your proposed minor version bump is incompatible with that, and Mesa will return
an error when started with the Xorg DDX.
I suggest we keep the Mesa versions in sync with whatever is currently in Xorg
CVS, which means that as soon as the 4.2 bump is commited to Xorg, The Mesa
trunk can be updated.
Wake up and smell the coffee.
The version bump should've happened when the first commits from this bug were made.
It should've happened when Egbert strayed over via_dri.h and fixed it.
But there was nothing there to warn him. The mesa side and the DDX side were
grossly out of sync then. It just hadn't been turned into a problem yet.
And it's not as if this version has anything to do with the actual DDX version.
It is only concerned about DRI DDX interaction. If you don't succeed in
separating this, you'll end up changing versions across the whole range of
drivers all the time.
What you're saying is; "Don't update the version as this will break things,
which broke because the version wasn't properly updated".
If a field was removed from the ddx struct, the major version of that interface
will need to be bumped so old released versions of the client-side driver will
fail cleanly. This needs to get fixed quickly since Mesa's about to be released
and the newly-released Mesa driver needs to be expecting the bumped major version.
Then, in server/via_dri.h MAJOR should be set 5, MINOR should be set 0. And
via_dri.h in the ddx should be altered to match.
OK, sorry, I missed that.
I've updated Mesa-6.4 branch AND Xorg DDX versions to 5.0.0.
Mesa trunk will follow later hopefully today.
Xorg Mesa is not updated due to Xorg policy,
but I guess mesa 6.4 will soon be imported.
I'm closing this. Please reopen if there are remaining problems.
Mass version move, cvs -> git