needed to bump the DMA command buffer forced freespace up to 256 words: NV4_GDI_RECT needs a higher setting than the old version. Hopefully engine crashes are now past tense...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11095 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -866,18 +866,18 @@ static status_t nv_acc_fifofree_dma(uint16 cmd_size)
|
|||||||
/* mind this pittfall:
|
/* mind this pittfall:
|
||||||
* Leave some room between where the engine is fetching and where we
|
* Leave some room between where the engine is fetching and where we
|
||||||
* put new commands. Otherwise the engine will crash on heavy loads.
|
* put new commands. Otherwise the engine will crash on heavy loads.
|
||||||
* A crash can be forced best in 640x480 resolution with BeRoMeter 1.2.6.
|
* A crash can be forced best in 640x480x32 mode with BeRoMeter 1.2.6.
|
||||||
* (confirmed on NV11 and NV43 with less than 128 words forced freespace.)
|
* (confirmed on NV11 and NV43 with less than 256 words forced freespace.)
|
||||||
* Note:
|
* Note:
|
||||||
* The engine is DMA triggered for fetching chunks every 128 bytes,
|
* The engine is DMA triggered for fetching chunks every 128 bytes,
|
||||||
* maybe this is the reason for this behaviour.
|
* maybe this is the reason for this behaviour.
|
||||||
* Note also:
|
* Note also:
|
||||||
* it looks like the space that needs to be kept free is coupled
|
* it looks like the space that needs to be kept free is coupled
|
||||||
* with the size of the DMA buffer. */
|
* with the size of the DMA buffer. */
|
||||||
if (si->engine.dma.free < 128)
|
if (si->engine.dma.free < 256)
|
||||||
si->engine.dma.free = 0;
|
si->engine.dma.free = 0;
|
||||||
else
|
else
|
||||||
si->engine.dma.free -= 128;
|
si->engine.dma.free -= 256;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -890,18 +890,18 @@ static status_t nv_acc_fifofree_dma(uint16 cmd_size)
|
|||||||
/* mind this pittfall:
|
/* mind this pittfall:
|
||||||
* Leave some room between where the engine is fetching and where we
|
* Leave some room between where the engine is fetching and where we
|
||||||
* put new commands. Otherwise the engine will crash on heavy loads.
|
* put new commands. Otherwise the engine will crash on heavy loads.
|
||||||
* A crash can be forced best in 640x480 resolution with BeRoMeter 1.2.6.
|
* A crash can be forced best in 640x480x32 mode with BeRoMeter 1.2.6.
|
||||||
* (confirmed on NV11 and NV43 with less than 128 words forced freespace.)
|
* (confirmed on NV11 and NV43 with less than 256 words forced freespace.)
|
||||||
* Note:
|
* Note:
|
||||||
* The engine is DMA triggered for fetching chunks every 128 bytes,
|
* The engine is DMA triggered for fetching chunks every 128 bytes,
|
||||||
* maybe this is the reason for this behaviour.
|
* maybe this is the reason for this behaviour.
|
||||||
* Note also:
|
* Note also:
|
||||||
* it looks like the space that needs to be kept free is coupled
|
* it looks like the space that needs to be kept free is coupled
|
||||||
* with the size of the DMA buffer. */
|
* with the size of the DMA buffer. */
|
||||||
if (si->engine.dma.free < 128)
|
if (si->engine.dma.free < 256)
|
||||||
si->engine.dma.free = 0;
|
si->engine.dma.free = 0;
|
||||||
else
|
else
|
||||||
si->engine.dma.free -= 128;
|
si->engine.dma.free -= 256;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user