Imagination PowerVR SDK Blog

[Sharing] Distribute PVRTexTool commands for faster texture converting

pvrtextool

#1

Hello all,



My projects often contain hundreds/thousands textures so it takes a lot of time to convert them all to compressed formats.



Therefore I wrote a tool called win2tiz and would like to share with you: https://drive.google.com/open?id=0B1bLtkV8mMk6b2tySndDMlhsN0U&authuser=0



This tool will help you execute commands faster by distributing the commands to dedicated servers.



Current supported commands:


  • PVRTexTool.exe (old version)
  • PVRTexTool34.exe (new version)
  • etcpack.exe (note that currently etcpack.exe itself cannot runs parallel due to the conflict of temporary files, waiting for ARM Mali to fix this)
  • GCC/G++ compile commands



    REQUIREMENTS


  • Windows 7, 8, 10 (not tested on XP)
  • .NET Framework 3.5+



    HOW TO USE



    1. Setup your dedicated severs:


  • Copy the folder win2tiz to each server, the path should be short and MUST NOT contain spaces (e.g C:win2tiz)
  • Copy your tool (e.g. PVRTexTool) to a identical path (e.g. Y:/PVRTexTool/PVRTexTool.exe) for all severs
  • In each server, start the service by running: mongcc.exe --start -port number

    For example: mongcc.exe --start -port 1909



    2. Clients distribute commands:


  • In each client, set following environment variables (example):

    set MONGCC_ENABLE=1 // if set to 0, then all commands will be executed locally, no need servers

    set MONGCC_MAX_JOBS=4 // how many commands will be executed parallel, typical 4

    set MONGCC_HOSTS=servername1 servername2 servername3 // computer names of the servers, separated by spaces

    set MONGCC_PORT=1909 // the port number, must be matched with the one on servers


  • In each client, export all your commands to a text file, each command is on a line; then execute:

    win2tiz.exe --cmd -file yourtextfile -jobs number

    For example: win2tiz.exe --cmd -file D:myfile.txt -jobs 4



    This will distribute your commmands to the servers and receive the results, in a parallel way.

    The jobs number should not be greater than MONGCC_MAX_JOBS, otherwise you will get an error message.


  • An example of a text file that contains PVRTexTool commands:

    Y:/PVRTexTool/PVRTexTool.exe -fETC -iE:MyTexture1.tga -oE:MyTexture1.pvr

    Y:/PVRTexTool/PVRTexTool.exe -fETC -iE:MyTexture2.tga -oE:MyTexture2.pvr

    //Y:/PVRTexTool/PVRTexTool.exe -fETC -iE:MyTexture3.tga -oE:MyTexture3.pvr

    //Commands that are empty or begin with // will be ignored.



    NOTE


  • The path to the tool (Y:/PVRTexTool/PVRTexTool.exe) must be the same for all clients and servers.
  • If you are using new version of PVRTexTool, please rename it to PVRTexTool34.exe



    Feel free to send feedback to me in this thread or by email katatunix@gmail.com or by skype katatunix@live.com

#2

Hi Kata,



Thanks for sharing your utility - sounds very useful :)!



We’re planning to add a Showcase section to our website for interesting 3rd party projects like this. If you’re interested in this project being featured in our showcase, please let us know. We can discuss the specifics of how the Showcase would work & what project information is required through our <a href=“https://pvrsupport.imgtec.com/new-ticket

”>confidential ticket support system.



Thanks,

Joe


#3

Hi Joe,


If you're interested in this project being featured in our showcase, please let us know.


Yes, I'm interested in your showcase.