Created attachment 41020 [details] [review]
[PATCH] Enable HyperZ and microtiling for R100 if DRM >= v2.x
I have noticed that Mesa 7.9 prints the following message with a recent 2.6.3x kernel:
"DRM version 1.6 too old to support HyperZ, disabling."
The reason for this is that the DRM in the 2.6.36 kernel is v2.6:
[drm] Initialized radeon 2.6.0 20080528 for 0000:01:00.0 on minor 0
and Mesa only checks the minor version number. (Assuming that the major version number is always 1.)
I have attached a patch that will also enable both HyperZ and texture microtiling(?) on R100 if DRM >= v2.x.
There is a similar absence of DRM major version number checking in the
radeonCreateScreen() function in radeon_screen.c. (This probably affect r600c as well, seeing as how the file is shared.)
And radeonInitContext() in radeon_common_context.c only loads the DRM minor version into the DRI fields:
/* DRI fields */
radeon->dri.context = driContextPriv;
radeon->dri.screen = sPriv;
radeon->dri.hwContext = driContextPriv->hHWContext;
radeon->dri.hwLock = &sPriv->pSAREA->lock;
radeon->dri.hwLockCount = 0;
radeon->dri.fd = sPriv->fd;
radeon->dri.drmMinor = sPriv->drm_version.minor;
Is this enough now?
Created attachment 41038 [details] [review]
[PATCH] Don't even consider enabling HyperZ or microtiling unless DRM major version is 1.
If DRM v2.x can't support this yet then the current DRM version check in Mesa is no longer adequate.