diff options
author | Michel Dänzer <michel@tungstengraphics.com> | 2007-03-14 11:41:50 +0100 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2007-03-14 11:41:50 +0100 |
commit | 555b801a75cafa082808bc9bb683e700fc97d79a (patch) | |
tree | e99eb682fca82edd00373c1f379ea341bde2f426 | |
parent | 66fdb08c83d353fbe4e917900c54b555c869eb80 (diff) |
Make sure the legacy texture area is there when needed.
This currently only matters when the DRM memory manager is not available and
Option "Legacy3D" "off" is specified, but that hasn't always been the case and
might change again in the future.
-rw-r--r-- | src/i830.h | 1 | ||||
-rw-r--r-- | src/i830_dri.c | 10 | ||||
-rw-r--r-- | src/i830_memory.c | 2 |
3 files changed, 12 insertions, 1 deletions
@@ -591,6 +591,7 @@ void i830_free_3d_memory(ScrnInfoPtr pScrn); void i830_free_memory(ScrnInfoPtr pScrn, i830_memory *mem); extern long I830CheckAvailableMemory(ScrnInfoPtr pScrn); Bool i830_allocate_2d_memory(ScrnInfoPtr pScrn); +Bool i830_allocate_texture_memory(ScrnInfoPtr pScrn); Bool i830_allocate_3d_memory(ScrnInfoPtr pScrn); extern Bool I830IsPrimary(ScrnInfoPtr pScrn); diff --git a/src/i830_dri.c b/src/i830_dri.c index 8fae4b7e..b24c8391 100644 --- a/src/i830_dri.c +++ b/src/i830_dri.c @@ -702,6 +702,16 @@ I830DRIScreenInit(ScreenPtr pScreen) i830_free_memory(pScrn, pI830->memory_manager); pI830->memory_manager = NULL; + + if (!(pI830->mmModeFlags & I830_KERNEL_TEX)) { + pI830->mmModeFlags |= I830_KERNEL_TEX; + + if (!i830_allocate_texture_memory(pScrn)) { + I830DRICloseScreen(pScreen); + drmFreeVersion(version); + return FALSE; + } + } } } #ifdef DAMAGE diff --git a/src/i830_memory.c b/src/i830_memory.c index 0742d8c0..a20e7432 100644 --- a/src/i830_memory.c +++ b/src/i830_memory.c @@ -1156,7 +1156,7 @@ i830_allocate_depthbuffer(ScrnInfoPtr pScrn) return TRUE; } -static Bool +Bool i830_allocate_texture_memory(ScrnInfoPtr pScrn) { I830Ptr pI830 = I830PTR(pScrn); |