Domanda

I used DDS (DXT5)till now for fast load of texture data.Now,I read that since OpenGL 4.3 (and for ES2) the compressed standard is KTX(ETC1/ETC2).I integrated the Khronos libktx SDK and bench-marked. Updating texture using glCompressedTexSubImage2D for 3000 times the results are:

DDS: 1450 - millisecond

KTX - forever....

Actually, running a loop of only 300 times updating KTX, the total time already reaches 24 seconds!

Now I have 2 questions:

  1. Is this the expected speed of KTX?

  2. if the answer to the first question is "YES" then what is the advantage of ETC except of smaller file size than that of DDS?

I use OpenGL 4.3 with Quadro4000 GPU.

È stato utile?

Soluzione

I asked this question on Khronos KTX forum.Here is the answer I got from the forum moderator:

I have been told by the NVIDIA OpenGL driver team that the Quadro 4000 does not support ETC in hardware while it does support DXTC. This means the ETC-compressed images will be decompressed by the OpenGL driver in software then loaded into GPU memory while the DXTC-compressed images will simply be loaded into GPU memory. I believe that is the source of the performance difference you are observing.

So it seems like my card's hardware doesn't support ETC.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top