I've got some renders which print texture statistics normally. (There are
textures in the render.) The introduction of a hair system (adding more
textures) causes "top files by bytes read" and "top files by I/O time" to
stop printing, even though "slowest I/O rates" still prints:

OpenImageIO ImageCache statistics (shared) ver 1.6.14
>   Options:  max_memory_MB=8000.0 max_open_files=100 autotile=64
>             autoscanline=0 automip=1 forcefloat=0 accept_untiled=1
>             accept_unmipped=1 read_before_insert=0 deduplicate=1
>             unassociatedalpha=0 failure_retries=0
>   Images : 127 unique
>     ImageInputs : 127 created, 95 current, 95 peak
>     Total size of all images referenced : 21.7 GB
>     Read from disk : 2.8 GB
>     Find file time : 31.0s
>     File I/O time : 30m 39.4s (38.3s average per thread)
>     File open time only : 10.4s
>   Tiles: 88598 created, 16324 current, 24896 peak
>     total tile requests : 13153664
>     micro-cache misses : 4444498 (33.789%)
>     main cache misses : 18525 (0.140835%)
>     Peak cache memory : 115.0 MB
>     Find tile time : 27.8s
>   32 were constant-valued in all pixels
>
> *  Top files by bytes read:*
> *  Top files by I/O time:*
> *  Files with slowest I/O rates:*
> *    1     0.01 MB/s (0.00MB/0.58s)      8x   8x4.u8
> /jobs/CFW/3D/ITEM/character/deer/body/TEXS/MSK/default_alt0/T_character_deer-body_default_alt0_MSK_2_lodDefault_v004/T_character_deer-body_default_alt0_MSK_2_lodDefault.1007.tex
> MIP-COUNT [1,1,1]*
> *    2     0.38 MB/s (0.29MB/0.78s)   8192x8192x1.u8
> /jobs/CFW/3D/ITEM/character/deer/body/TEXS/SPCR/default_alt0/T_character_deer-body_default_alt0_SPCR_1_lodDefault_v006/T_character_deer-body_default_alt0_SPCR_1_lodDefault.1007.tex
> MIP-COUNT [0,20,18,23,8,3,1,1,1,1,1,1,1]*
> *    3     0.70 MB/s (0.21MB/0.29s)   8192x8192x1.u8
> /jobs/CFW/3D/ITEM/character/deer/body/TEXS/SPCR/default_alt0/T_character_deer-body_default_alt0_SPCR_1_lodDefault_v006/T_character_deer-body_default_alt0_SPCR_1_lodDefault.1006.tex
> MIP-COUNT [0,0,20,17,9,4,1,1,1,1,1,1,1]*    (fastest was 26.7 MB/s)



I've run this through gdb, and it looks like it's failing in this way. The
top-ranked files are either broken or have an invalid spec, so they don't
print:

1711 for (int i = 0;  i < std::min<int> (topN, files.size());  ++i) {
> (gdb)
> 1712     if (files[i]->broken() || !files[i]->validspec())
> (gdb)
> 1713         continue;
> (gdb)



I think that OIIO should print which textures are broken or invalid (which
is something we should know), and it should also print the top three
textures which are valid and not-broken.
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to