diff options
-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); |