Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 7 of 7

Thread: GL_ATI_texture_compression_atitc

  1. #1
    Member Regular Contributor
    Join Date
    Mar 2003
    Location
    Spain
    Posts
    273

    GL_ATI_texture_compression_atitc

    Hello,

    I'm trying to use that extension lo use compressed textures on Android platform, but I'm unable of finding its specification neither any example of the file format that this extension provides.

    I really would appreciate if somebody could point me to the spec or to a fragment of code that loads that formats, as well as a tool to convert standard textures into compressed ones, compatibles with that extension.

    Thank you very much.
    "!I don't know... fly casual"

  2. #2
    Super Moderator OpenGL Lord
    Join Date
    Dec 2003
    Location
    Grenoble - France
    Posts
    5,580

    Re: GL_ATI_texture_compression_atitc

    Does android rely on GL|ES or classic GL ?

  3. #3
    Senior Member OpenGL Guru Dark Photon's Avatar
    Join Date
    Oct 2004
    Location
    Druidia
    Posts
    3,193

    Re: GL_ATI_texture_compression_atitc

    Quote Originally Posted by Ffelagund
    I'm unable of finding its specification neither any example of the file format that this extension provides.

    I really would appreciate if somebody could point me to the spec or to a fragment of code that loads that formats, as well as a tool to convert standard textures into compressed ones, compatibles with that extension.
    You tickled my curiousity, so I went googling with you.

    I gather ATITC = ATC (or at least some folks think so).

    And appears the spec is here:
    * AMD_compressed_ATC_texture

    which says:

    The details of these formats is not disclosed, so refer to AMD's Compressonator tool in order to encode your textures offline: http://ati.amd.com/developer/compressonator.html
    So, closed format. "Use our tools. If you don't like 'em, that's just tough." However, appears that NVidia texture tools may have support, with some "ATITC" library present (with header atitc/ATI_Compress.h, type ATI_TC_Texture, and API ATI_TC_ConvertTexture):

    * NVTT CompressDXT.cpp (search for ATITC).

    Appears this header is in some ATI SDK which a few years back looked like this

    With access to a supporting device, shouldn't be too hard to crack the encoding. Let me know if you find a link of someone that has. NVidia probably did long ago.

    ...however, I gather there's a patent involved here, which is probably why nobody's talking and few have even heard of this format:

    * Texture Compression (Philipp Krause)

    ATC is AMD’s new texture compression algorithm for embedded systems. Technical detail is unknown, though it probably is based on the patent [17] registered by the person that wrote ATC’s OpenGL ES extension specification [2] (which states ”The details of these formats is not disclosed”).
    ...
    [17] Aaftab Munshi. Block-based image compression method and apparatus. US Patent 20060215914.

  4. #4
    Member Regular Contributor
    Join Date
    Mar 2003
    Location
    Spain
    Posts
    273

    Re: GL_ATI_texture_compression_atitc

    @ZBuffer, Android relies on OpenGL|ES.

    I've searched for information about that extension in these forums, in Khronos GL|ES forums, in ATI forums, and of course, googled it for a prudent period of time. The only thing I've found is another extension (in fact it is GL_AMD_compressed_ATC_texture), which looks like if it were GL_ATI_texture_compression_atitc (the one I'm looking for, so, an extension with two names, and the obsolete one given by the Android GL extension string??), and the ATI compressionator, like Dark Photon says.

    Well, those kind of things remembers me why some years ago dropped ATI and choosed NV as gsx, but now I'm forced againt to use ATI chipsets, because the HTC's

    I _must_ use compressed textures (as any other that wants program anything in OpenGL and embedded devices) so I'm forced to solve this issue, so when I figure out the whole process (compression, load and upload to gfx those textures) I'll write the process in this thread. Perhaps could seerve to anybody, because I was unable to found anything about using compressed textures in Android in the hwole net.
    "!I don't know... fly casual"

  5. #5
    Senior Member OpenGL Pro Ilian Dinev's Avatar
    Join Date
    Jan 2008
    Location
    Watford, UK
    Posts
    1,290

    Re: GL_ATI_texture_compression_atitc

    It's not ATi chipsets, just Qualcomm's funky gpu. In my experience it can fetch texels extremely quickly, while its triangle setup is really slow. It made no performance difference if we'd feed it 1024x1024 32bpp or 128x128 16bpp. (I helped optimize Mystique:Chapter1 to run at 60fps) . Thus we chose to simply decode JPG/PNG into 24bpp and 32bpp. There's whole 192MB RAM, after all . And besides, after G1 it's guaranteed the other phones won't support said extensions (or even have 3D acceleration T_T )

    So you'll anyway have to support stinking uncompressed textures. Just for reference, here are the extensions:

    Emulator:
    GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_read_format GL_OES_compressed_paletted_texture GL_OES_draw_texture GL_OES_matrix_get GL_OES_query_matrix GL_ARB_texture_compression GL_ARB_texture_non_power_of_two GL_ANDROID_direct_texture GL_ANDROID_user_clip_plane GL_ANDROID_vertex_buffer_object GL_ANDROID_generate_mipmap

    G1:
    GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_vertex_buffer_object GL_ATI_extended_texture_coordinate_data_formats GL_ATI_imageon_misc GL_ATI_texture_compression_atitc GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_stencil_wrap GL_OES_byte_coordinates GL_OES_compressed_paletted_texture GL_OES_draw_texture GL_OES_fixed_point GL_OES_matrix_palette GL_OES_point_size_array GL_OES_point_sprite GL_OES_read_format GL_OES_single_precision GL_OES_vertex_buffer_object GL_QUALCOMM_vertex_buffer_object GL_QUALCOMM_direct_texture



    Anyway, here's the ATC patent, that looks very much like DXT1: http://www.freshpatents.com/Block-based-...ype=description

    Follow the source, given by Dark Photon; the code should be identical to loading DXT1, imho. Even random data should be loadable and displayable - so first figure-out if the G1/G2 can really load said compressed format by manually specifying the 0x8C92 as internal-format.

  6. #6
    Member Regular Contributor
    Join Date
    Mar 2003
    Location
    Spain
    Posts
    273

    Re: GL_ATI_texture_compression_atitc

    You are right, I've complained too fast. Well, at least now I'm sure that both extensions are the same (first one was never released, but renamed as the second)

    For the current time, I only need to convert standard textures and load them, and I've found that I can do that with the ATI compressonator (and there, I found how to load them)

    Thank you all,
    Jacobol
    "!I don't know... fly casual"

  7. #7
    Junior Member Newbie
    Join Date
    Apr 2010
    Location
    Melbourne Florida
    Posts
    1

    Re: GL_ATI_texture_compression_atitc

    Quote Originally Posted by Dark Photon

    And appears the spec is here:
    * AMD_compressed_ATC_texture

    which says:

    The details of these formats is not disclosed, so refer to AMD's Compressonator tool in order to encode your textures offline: http://ati.amd.com/developer/compressonator.html
    has anyone had success with this?

    I downloaded the 'compressonator' and used the ATC_RGB_AMD 0x8C92
    ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
    ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
    compressions as generated by the compressonator.

    then loaded the textures as both internal and external compressed using the values above.

    but no luck.
    anyone know if any examples exist?
    tested on:
    android 2.0 opengl 1.5 nexus one

    the image showed a 3x compression over the raw data.
    which would help me greatly.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •