Stats

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
$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é)
  •  
Warp3D.library
$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...
    

1 commentaire:

  1. Soir'

    Tu 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


    RépondreSupprimer

Laissez vos commentaires ici :