This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Inquiry for using a compressed texture format

Hi


I know as the benefit of using compressed texture is reducing memory usage and bandwidth when the texture is uploaded on the Mali.

For comparing between uncompressed and compressed, I measured the duration of glDrawElements() for each format

start = GfxPerfGetMSec();
glDrawElements(GL_TRIANGLES, cnt * 6, GL_UNSIGNED_BYTE, 0);
glFinish();
end = GfxPerfGetMSec();

Anyway

Because the uploaded compressed texture data size in GPU is less than the uploaded uncompressed texture data size in GPU like below

I think that the performance of using compressed texture data should be better than the performance of using uncompressed texture.

But the result is that the performance decreases when using compressed texture.

Surely, each GPU architecture is different each vendor 

But, When other vendor's GPU uses the compressed texture, the performance is improved dramatically(same test)

Although Mali need more resource(compute, decompressing) for decompressing, I think that it should be processed fast and improved slightly than using uncompressed texture.

Also Because the Mali processes the compressed texture in HW, i think that it can process the compressed texture quickly

Could you explain why the performance of using compressed texture on Mali decrease?

Parents
  • > Do you think that my benchmark app is wrong to measure compressed texture

    The data you have presented doesn't make sense, so something is wrong, yes. Mobile GPUs can definitely render more than 200MP/s (that's less than 1440p60 for a single layer blit, and modern GPUs can definitely do more than that).

    Timing single draw calls with glFinish after them is timing more than just the draw - it's also timing the write of the framebuffer back to memory (which is much larger than your original input data, so any bandwidth limitations are more likely to be on output, not input). I don't know what platform you are on, but in general serializing draws with e.g. glFinish also completely breaks mobile power management as the GPU will go idle between submissions. 

Reply
  • > Do you think that my benchmark app is wrong to measure compressed texture

    The data you have presented doesn't make sense, so something is wrong, yes. Mobile GPUs can definitely render more than 200MP/s (that's less than 1440p60 for a single layer blit, and modern GPUs can definitely do more than that).

    Timing single draw calls with glFinish after them is timing more than just the draw - it's also timing the write of the framebuffer back to memory (which is much larger than your original input data, so any bandwidth limitations are more likely to be on output, not input). I don't know what platform you are on, but in general serializing draws with e.g. glFinish also completely breaks mobile power management as the GPU will go idle between submissions. 

Children
No data