Skip to main content
GameDev.net gamedev.net
🔒 Locked

Maximum texture size?

Started by Evil Steve Jul 7, 2006 at 4:36 PM 12 replies 36.7k views
Original Post
Evil Steve
Evil Steve
Does anyone know if DX9 (Or OpenGL for that matter) defines a maximum texture size? As far as I know, no hardware supports over 4096x4096, but is there any reason that 8192x8192 isn't supported, aside from the memory usage? 8192x8192x32 is "only" 64MB after all... I'm currently implementing a texture sheet manager (I'm not sure of the correct term, but it's a texture atlas with 256x256 quads of texture), and I'm wondering if I need to account for support for textures over 4096x4096... Cheers, Steve
Evil Steve
Evil Steve
Sorry, I should have been more clear. What I mean is - is there any maximum size that D3D itself supports, rather than the driver / card? For instance, I haven't seen a card that supports textures larger than 4096x4096 - is this just because none of the IHVs have bothered to allow textures larger than that, or because D3D imposes a limit somewhere?
Demirug
Demirug
AFAIK there is no maximum limit. Like the SDK the WDK says nothing about a limit.

You should at least plan for 8192*8192 as this will be the minimum for D3D10 hardware.
jollyjeffers
jollyjeffers
Shader Model 3 has a minimum requirement of 4096x4096 iirc.

It wouldn't surprise me if IHV's didn't jump any higher than they had to:

1. If developers wont use it, why waste effort?
2. If it makes the minimum spec, why go higher?
3. VRAM requirements - "only 64mb"... but going to 8k means 256mb - its still fairly rare to find 512mb video cards...

hth
Jack
<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ |
Evil Steve
Evil Steve
Quote:
Original post by jollyjeffers
Shader Model 3 has a minimum requirement of 4096x4096 iirc.

It wouldn't surprise me if IHV's didn't jump any higher than they had to:

1. If developers wont use it, why waste effort?
2. If it makes the minimum spec, why go higher?
3. VRAM requirements - "only 64mb"... but going to 8k means 256mb - its still fairly rare to find 512mb video cards...

hth
Jack

1. Forward thinking [smile]
2. See 1
3. My brain is fudge. I typed 8192x8192 into calculator, not 8192x8192x4...

If one texture is going to take up 256MB of VRAM, then I'm not surprised it's not (widely) supported [smile]

Thanks for the replies. I reckon it's fairly safe to assume that there wonh't be any textures larger than 65536x65536 anyway. That gives me 16 bits to play with. If there are any more, I can always clamp it...
jollyjeffers
jollyjeffers
Quote:
Original post by Evil Steve
I reckon it's fairly safe to assume that there wonh't be any textures larger than 65536x65536 anyway.
well that'd only require 16 gigabytes of VRAM to store a 64k*64k texture [lol]

Jack
<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ |
Cypher19
Cypher19
And that's before mipmapping. You'd need about 21GB of ram to store a fully mipmapped 65k^2 texture. (and 340MB for an 8k^2 texture)
Evil Steve
Evil Steve
Is that all? How long till video cards have their own virtual memory? [smile]
sirob
sirob
But, hardware has been supporting non-square textures for quite a while now, so using a 8k size for width, for example, doesnt mean you need to use it for height.

What if I need a sqrt lookup table with 8000 entries? a 8192x1x4 texture is only 32k. That's not much at all, so I am surprised that's not an option.
Sirob Yes.» - status: Work-O-Rama.
jollyjeffers
jollyjeffers
Quote:
Original post by Evil Steve
Is that all? How long till video cards have their own virtual memory? [smile]
Early next year - one of Vista/DXGI/D3D10's new features is virtualised memory [wink]

But I wouldn't like to see the performance when I'm shifting bits of my texture between VRAM, Sys-RAM and my HDD [lol]


Quote:
But, hardware has been supporting non-square textures for quite a while now, so using a 8k size for width, for example, doesnt mean you need to use it for height.

What if I need a sqrt lookup table with 8000 entries? a 8192x1x4 texture is only 32k. That's not much at all, so I am surprised that's not an option.
There's always one person who has to be sensible...

Jack
<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ |
Demirug
Demirug
Quote:
Original post by jollyjeffers
Early next year - one of Vista/DXGI/D3D10's new features is virtualised memory [wink]

But I wouldn't like to see the performance when I'm shifting bits of my texture between VRAM, Sys-RAM and my HDD [lol]

Jack


I don’t like to play devil’s advocate but the WDDM 1.0 virtual memory system will give us only a small improvement from what we have today. We get the option to swap out render targets but have to pay for it with every single byte that have to be travel from VRAM back to System RAM as there is no more backup copys like Direct3D 9 managed texture use.

Using more VRAM as you have will stiil be expensive. But as D3D10 have the requirement to create 128 MB resources I expect that most cards will have at least 256 MB.

WDDM 2.1 should be the great step.
Evil Steve
Evil Steve
Ugh, semi-drunk posting is bad. I realised I was thinking of a 1D lookup texture too - I'm sure a 64k lookup texture could be useful in some cases.

Anyway, thanks for the replies.
sirob
sirob
While we're on the subject, this just came up on the DIRECTXDEV list. A very cool suggestion there was using a 4k^2 cubemap. Couple be extra useful if you're in a tight spot with max texture size :).
Sirob Yes.» - status: Work-O-Rama.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.