VBL busy waiting???

This is code from PgWaitVBL() in the banshee driver

while ((*B2D_status & ENDIAN_LE32(0x00000040)) == 0)
;
while (*B2D_status & ENDIAN_LE32(0x00000040))
;

where the driver is waiting for the Vblank.

And my question is:
Why is it busy waiting, and thus taking 100% cpu usage?
is it because
1: Qsslwas in a harry, and nobody found this code a problem or

2: The Voodoo3 card do not have a VBlant interrut, and thus the only
solution is to busy wait?

Martin Tilsted.

Martin Tilsted wrote:

This is code from PgWaitVBL() in the banshee driver

Sorry, the function is PgWaitVSync() not PgWaitVBL()

while ((*B2D_status & ENDIAN_LE32(0x00000040)) == 0)
;
while (*B2D_status & ENDIAN_LE32(0x00000040))
;

where the driver is waiting for the Vblank.

And my question is:
Why is it busy waiting, and thus taking 100% cpu usage?
is it because
1: Qsslwas in a harry, and nobody found this code a problem or

2: The Voodoo3 card do not have a VBlant interrut, and thus the only
solution is to busy wait?

Martin Tilsted.

Martin Tilsted <u013228@daimi.au.dk> wrote:

Martin Tilsted wrote:

This is code from PgWaitVBL() in the banshee driver

Sorry, the function is PgWaitVSync() not PgWaitVBL()


while ((*B2D_status & ENDIAN_LE32(0x00000040)) == 0)
;
while (*B2D_status & ENDIAN_LE32(0x00000040))
;

where the driver is waiting for the Vblank.

And my question is:
Why is it busy waiting, and thus taking 100% cpu usage?
is it because
1: Qsslwas in a harry, and nobody found this code a problem or

2: The Voodoo3 card do not have a VBlant interrut, and thus the only
solution is to busy wait?

On some cards the VBLANK interrupt is not physically attached. Although
there may be a way to detect this we haven’t had time to do this. We
may do this in the future if time permits, but for now the solution is
to use the DDK to fix it.

Erick.


Martin Tilsted.

Hi,
Can you clarify? Does this mean that the VBLANK interrupt is not yet
supported in any card, Or just not all cards?

If it is supported in some cards, any list of cards for which there is the
VBLANK interrupt support?

Might that include the ATI Radeon?

Thanks,

Steve

“Hardware Support Account” <hw@qnx.com> wrote in message
news:9rpm2i$2st$3@nntp.qnx.com

On some cards the VBLANK interrupt is not physically attached. Although
there may be a way to detect this we haven’t had time to do this. We
may do this in the future if time permits, but for now the solution is
to use the DDK to fix it.

Erick.