Imagination PowerVR SDK Blog

PVRTexToolCL and pre generated mip map images



Is there any way to provide pre-generated mip maps images to the PVRTexTool? I cannot seem to find any way to do this, and the tool generated images are not the best quality.

Is there a simple solution to this other than using a separate compressed texture for each mipmap level and doing it myself?

While I am at it, why is it not possible to import data into a texture created in the PVRTexToolGUI? What is the point in being able to create a blank texture if you cannot put anything into it?


Hi Tarka,

To answer your first question - no, not at the moment. It’s a feature we want to add but we’re still trying to figure out exactly what the interface will look like for that. You can however do it in the GUI, which brings us neatly to your next point…

You CAN import data into the GUI. If you go to the surface browser, you can right click on individual surfaces and load in an image. Bear in mind that if the image is not already the right size, it will be resized by the GUI (a message box will warn you of this anyway though). You can also import or modify individual channels through the texture as well, via the channel mixer tool.




Ah OK, after updating to the latest SDK I can load image data to specific mipmap levels, thanks for that. This presents another problem however, currently it is not possible to save an sRGB image with the GUI using PVRTC.

In fact, despite the hardware supporting GL_EXT_pvrtc_sRGB, the SDK and tools fail to correctly load and save these files at every turn. Is this something scheduled for a later release? I can work around the texture loading for now with a small patch to the tools project, but it is a pain having to use a GUI to generate the textures and then fiddling the header when it would easily and correctly be done from a script.

Any info on how you guys are handling this, or do you not use sRGB textures with PVR files?


Hi Tarka,

Apple added this extension, and we didn’t catch wind of it until after our last SDK release was finalised - it just happens that the library and CL support this due to their flexibility. This is something I need to add for the next release, and tools loading support is planned as well. For now I’m afraid there’s no way to do it with the GUI.