Search Unity

Texture sizes and videocards

Discussion in 'General Discussion' started by Nanako, Nov 21, 2014.

  1. Nanako

    Nanako

    Joined:
    Sep 24, 2014
    Posts:
    1,047
    Someone mentioned this to me, it was getting kind of off scope for that thread though;

    What exactly governs the size a videocard can display? Is it purely whether there's enough VRAM for it? Is it based on suported d3d/dx version, or even some card-specific metric i'm not aware of?
     
  2. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Its based on the hardware itself. I don't think it's so much the driver as it is optimizations in hardware or cache sizes etc. It may also have something to do with the size of texture needed to store the backbuffer in the cards highest resolution, e.g. 1920x1080 typically needs at 2048 texture width at least.
     
  3. 3agle

    3agle

    Joined:
    Jul 9, 2012
    Posts:
    508
    It's usually based on Direct3D/OGL support of the hardware, since these standards are separate, it's usually tough to define the boundaries of the support. In general:
    Direct3D:
    9.2 is 2048
    9.3+ is 4096
    10+ is 8192
    11+ is 16384

    I can do one better for OpenGL though, thanks to wildfiregames for an excellent set of statistics:
    http://feedback.wildfiregames.com/report/opengl/feature/GL_MAX_TEXTURE_SIZE

    You can see that essentially all integrated graphics chips these days (of the 'HD' variety), support at least 4096 width, with the newer '4000' series supporting 8192.

    Mobile devices are trickier, and I don't have any useful resources on hand for that, sorry, you can look up the OpenGL 2.0 ES standard though, that may help you out some as most mobile devices are at least up to that.

    Typically in todays market you should be keeping at or below 2048 texture width for mobile/tablets* and 4096 width for PC targets. More modern cards will support 8192 and higher, but if you want a wide hardware target you should probably stick to 4096. (plus big texture support doesn't necessarily mean it's fast or good to use them).

    It's worth noting that I discovered Unity will automatically resize textures if the hardware does not support the texture size, though it seems this is only on PC platforms (as far as I'm aware), very handy stuff.

    *note the first generations of the iPhone are limited to 1024, though.
     
    li_tianqi likes this.
  4. smd863

    smd863

    Joined:
    Jan 26, 2014
    Posts:
    292
    On OpenGl ES 2.0 the maximum texture size can be as small as 64 pixels. It's on page 149 of the spec. It's probably written to be inclusive of a wide range of devices.

    In practice, it is usually much higher for phones and tablets. Low end android devices could be as low as 1024, but 2048 is much more common and higher end ones will be 4096. Apple devices have supported 4096 sinces iPad 2 and the iPhone 4S.