Voici quelques échantillons statistiques des fonctions utilisées par diverses programmes utilisant Warp3D. Ils ont été récoltés avec l'aide de la version 1.1 de LibraryTimer. Très utiles pour connaître quelles fonctions et leurs fréquences sont utilisées par les jeux et démos lors de quelques minutes d'utilisation.
- StarShipW3D (mode fenêtré)
Warp3D.library
$0000150C $15E2F - W3D_SetState
$00001E92 $9590D - W3D_LockHardware
$00001E91 $A63ED - W3D_UnLockHardware
$000059C9 $8C165 - W3D_WaitIdle
$000001E9 $3903 - W3D_SetDrawRegion
$000001EA $2D19 - W3D_ClearZBuffer
$000001EA $2398 - W3D_SetZCompareMode
$00001E90 $1BEFA - W3D_Flush
$000001E9 $56F7 - W3D_FlushFrame
$000001EA $27BD - W3D_ClearDrawRegion
$00001CA8 $1B3FB - W3D_VertexPointer
$00001CA8 $1C081 - W3D_TexCoordPointer
$00001CA8 $1A3D6 - W3D_ColorPointer
$00001CA8 $1A8CE - W3D_BindTexture
$00001CA7 $14CE96 - W3D_DrawElements
$000001EA $1BF8 - W3D_SetFrontFace
W3D_AvengerLEMU.library
$000082E6 $D9AD1 - LEMU_WaitIdle
$000002C9 $3CD6 - LEMU_ClearZBuffer
$000002C9 $2E0C - LEMU_SetZCompareMode
$00002C90 $76997 - LEMU_LockHardware
$00002C8F $27C72 - LEMU_UnLockHardware
$000002C9 $2B73 - LEMU_GetDrawRegion
$000002C9 $2960 - LEMU_FlushName
$000002C9 $441A - LEMU_ClearDrawRegion
$000029C7 $26870 - LEMU_VertexPointer
$000029C7 $25712 - LEMU_TexCoordPointer
$000029C7 $25640 - LEMU_ColorPointer
$000029C7 $1D5CF3 - LEMU_DrawElements
$000010B6 $10332 - LEMU_SetState
W3D_Picasso96MU.library
W3D_Picasso96API.library
$00000299 $3697 - W3D_P96MU_CheckBitmap
$0000298C $776D2 - W3D_P96MU_LockHardware
$0000298C $65B70 - W3D_P96MU_UnLockHardware
W3D_Picasso96API.library
$0000F9F6 $E6440 - P96_GetBitMapAttr
$00002736 $5E617 - P96_LockBitMap
$00002735 $5BDD9 - P96_UnlockBitMap
- Fpse v0.10.4
Warp3D.library
$00002866 $2A5EB - W3D_SetState
$00001433 $6593B - W3D_LockHardware
$00001434 $43B09 - W3D_UnLockHardware
$0000001E $220 - W3D_SetFilter
$0000001E $26B - W3D_SetTexEnv
$0000001E $398 - W3D_UpdateTexImage
$0000024B $2E64 - W3D_SetBlendMode
$0000000E $E7 - W3D_FlushFrame
$00000D1B $B8F6 - W3D_BindTexture
$00001434 $1242F8 - W3D_DrawElements
W3D_AvengerLEMU.library
$000013B8 $280C1 - LEMU_WaitIdle
$000004A0 $5B3C - LEMU_SetBlendMode
$000013B8 $347C8 - LEMU_LockHardware
$000013B8 $11F76 - LEMU_UnLockHardware
$00000028 $24F - LEMU_FlushName
$000013B8 $D5BA2 - LEMU_DrawElements
$000000A0 $A42 - LEMU_SetState
W3D_Picasso96MU.library
$00000419 $10CA2 - W3D_P96MU_LockHardware
$00000419 $B3DB - W3D_P96MU_UnLockHardware
Picasso96API.library
$00000014 $108B - P96_AllocBitMap
$00000014 $6FA - P96_FreeBitMap
$0000479A $43F09 - P96_GetBitMapAttr
$000011F8 $31E26 - P96_LockBitMap
$000011F8 $2C76A - P96_UnlockBitMap
- Cow3D v5 (mode fenêtré)
$0000023B $25BC - W3D_SetState
$00000073 $2BEA - W3D_LockHardware
$00000072 $D019 - W3D_UnLockHardware
$00000039 $535 - W3D_WaitIdle
$00000072 $A69 - W3D_SetTexEnv
$0005153A $861756 - W3D_DrawTriangle
$00000039 $72F - W3D_SetDrawRegion
$00000039 $749 - W3D_ClearZBuffer
$00000039 $3D8 - W3D_SetZCompareMode
$00000072 $682 - W3D_Flush
$00000039 $A10 - W3D_FlushFrame
$00000039 $479 - W3D_ClearDrawRegion
$00000039 $328 - W3D_SetFrontFace
W3D_AvengerLEMU.library
$000001CD $6697 - LEMU_WaitIdle
$0000009A $D13 - LEMU_ClearZBuffer
$000D95A3 $15ADFF1 - LEMU_DrawTriangle
$00000134 $1375 - LEMU_SetTexEnv
$0000009A $99E - LEMU_SetZCompareMode
$00000134 $3CFB - LEMU_LockHardware
$00000133 $1165 - LEMU_UnLockHardware
$0000009A $979 - LEMU_GetDrawRegion
$0000009A $922 - LEMU_FlushName
$0000009A $B7E - LEMU_ClearDrawRegion
$00000134 $13F7 - LEMU_SetState
W3D_Picasso96MU.library
$0000003A $5FC - W3D_P96MU_CheckBitmap
$00000074 $1C59 - W3D_P96MU_LockHardware
$00000073 $73CB - W3D_P96MU_UnLockHardware
Picasso96API.library
$000006E4 $65AD - P96_GetBitMapAttr
$000000C4 $255C - P96_LockBitMap
$000000C3 $5F29 - P96_UnlockBitMap
- GLBlitzQuake v1.0 (mode plein écran)
Warp3D.library
$00000001 $3 - W3D_DestroyContext
$00006A2F $72820 - W3D_SetState
$000003C0 $1FCE - W3D_LockHardware
$000003C0 $18D78 - W3D_UnLockHardware
$0000000A $45C - W3D_AllocTexObj
$00000155 $4CD6 - W3D_FreeTexObj
$0000001E $1D7 - W3D_SetFilter
$00000703 $9753 - W3D_SetTexEnv
$0000000A $A9 - W3D_SetWrapMode
$00000021 $38B - W3D_UpdateTexImage
$00002D60 $52907 - W3D_DrawTriangle
$00000BD2 $DACF - W3D_SetBlendMode
$000003C1 $86BE - W3D_SetDrawRegion
$00000001 $88 - W3D_FreeZBuffer
$00000381 $5805 - W3D_ClearZBuffer
$00000381 $4496 - W3D_SetZCompareMode
$000003ED $6622 - W3D_SetCurrentColor
$00000001 $11 - W3D_FreeAllTexObj
$000191BC $6A2B01 - W3D_DrawTriFanV
$000469E3 $124098C - W3D_DrawArray
$00003302 $D590F - W3D_DrawElements
W3D_AvengerLEMU.library
$000002BA $35EB - LEMU_WaitIdle
$000002BA $43B3 - LEMU_ClearZBuffer
$000004C1 $871C - LEMU_DrawTriangle
$00000606 $6385 - LEMU_SetBlendMode
$0000016E $15BC - LEMU_SetFilter
$000005CB $5EE5 - LEMU_SetTexEnv
$000000AA $96A - LEMU_SetWrapMode
$000002BA $30F8 - LEMU_SetZCompareMode
$00000281 $3A42 - LEMU_UpdateTexImage
$000002BA $D50D - LEMU_LockHardware
$000002BA $29E6 - LEMU_UnLockHardware
$000002BF $41FA - LEMU_SetCurrentColor
$000002BA $347F - LEMU_GetDrawRegion
$00004BBB $1F4A3E - LEMU_DrawTriFanV
$0002A1A5 $F78013 - LEMU_DrawArray
$00000F3D $2EE2F - LEMU_DrawElements
$0000479E $4A1AF - LEMU_SetState
W3D_Picasso96.library
$0000003B $3F2DC7 - W3D_P96MU_AllocVMem
$000000F4 $1B32 - W3D_P96MU_CheckBitmap
$000000F4 $6A05 - W3D_P96MU_LockHardware
$000000F3 $22BB7 - W3D_P96MU_UnLockHardware
Picasso96API.library
$0000000D $B49 - P96_AllocBitMap
$00000010 $710 - P96_FreeBitMap
$00000819 $7DD5 - P96_GetBitMapAttr
$000000B6 $2B1A - P96_LockBitMap
$000000B6 $15FF8 - P96_UnlockBitMap
- Quake 2 (mode plein écran)
Warp3D.library
$00001EFC $26FE0 - W3D_SetState
$00000183 $18A0F - W3D_LockHardware
$00000182 $60470 - W3D_UnLockHardware
$00000182 $2295 - W3D_WaitIdle
$00000001 $7B - W3D_AllocTexObj
$00000003 $33 - W3D_SetFilter
$0000090E $D0E3 - W3D_SetTexEnv
$00000001 $11 - W3D_SetWrapMode
$000003F3 $60DB - W3D_SetBlendMode
$00000183 $4419 - W3D_SetDrawRegion
$00000183 $29E8 - W3D_ClearZBuffer
$00000183 $208A - W3D_SetZCompareMode
$000010A1 $1B33F - W3D_SetCurrentColor
$00010A4A $2F9899 - W3D_DrawTriFanV
$00004C18 $11B51A - W3D_DrawTriStripV
$00022B56 $7E7C3B - W3D_DrawArray
W3D_AvengerLEMU.library
$000001E2 $2599 - LEMU_WaitIdle
$000001E2 $2BDE - LEMU_ClearZBuffer
$000003C4 $403E - LEMU_SetBlendMode
$00000004 $3C - LEMU_SetFilter
$00000E9D $F0D0 - LEMU_SetTexEnv
$00000002 $1D - LEMU_SetWrapMode
$000001E2 $1E95 - LEMU_SetZCompareMode
$00000001 $27 - LEMU_UpdateTexImage
$000001E2 $958C - LEMU_LockHardware
$000001E2 $1C51 - LEMU_UnLockHardware
$00000632 $74B2 - LEMU_SetCurrentColor
$000001E2 $253A - LEMU_GetDrawRegion
$000005A6 $689A - LEMU_SetScissor
$0001C35B $915462 - LEMU_DrawTriFanV
$00000094 $33479 - LEMU_DrawArray
$0001B002 $6B8D9F - LEMU_DrawElements
$000031BE $3234A - LEMU_SetState
W3D_Picasso96.library
$00000005 $54C70 - W3D_P96MU_AllocVMem
$00000112 $1F52 - W3D_P96MU_CheckBitmap
$00000112 $8797 - W3D_P96MU_LockHardware
$00000111 $32C6A - W3D_P96MU_UnLockHardware
Picasso96API.library
$0000000F $E6B - P96_AllocBitMap
$00000024 $1173 - P96_FreeBitMap
$00000C51 $BD75 - P96_GetBitMapAttr
$00000112 $76A1 - P96_LockBitMap
$00000112 $2BF68 - P96_UnlockBitMap
Avec ces échantillons, nous constatons par exemple que P96_GetBitMapAttr est utilisée par tous les programmes listés et très souvent. C'est donc aussi une fonction importante à retravailler...
Soir'
RépondreSupprimerTu devrais mettre le nombre d'appels fonctions en decimal
Ainsi normalement y a un ClearZbuffer/SetDrawRegion par frame
Si le prog est optimal y a un SetBlenMode,SetZCompareMode,BindTexture,SetTexEnv,etc... par matériau
Faudrait aussi que le SetState fasse rien si ce state est DEJA enabled ou disabled
Idem BindTexture si c'est déjà la texture courante...
Alain Thellier