PDA

View Full Version : Max. 3D texture size??



maya3d
12-03-2002, 04:32 AM
Max. 3D texture size: is true??

RAGE 128 M4 x86/SSE 1024 x 1024 x 1024
ATI 8500 512 x 512 x 512
ATI 9700 2048 x 2048 x 2048
Matrox ICD for Parhelia 2048 x 2048 x 2048
GeForce3 TI 500 512 x 512 x 512
GeForce4 TI 4600 512 x 512 x 512
Intel 830M 128 x 128 x 128

Robbo
12-03-2002, 05:21 AM
Probably - but if you have over 1gb of texture memory I would be *very* surprised (but wait a few years and of course you will have).

ehart
12-03-2002, 09:56 AM
A couple corrections:

RAGE 128 M4 x86/SSE: No 3D texture in HW
ATI Radeon/7000/7500: 512 x 256 x 256
ATI 8500 512 x 512 x 256
ATI 9700 2048 x 2048 x 2048

I would expect the practical limitation on the latter to be less than 512 x 512 x 512 on most systems.

-Evan

maya3d
12-03-2002, 04:04 PM
thanks ,
but http://www.delphi3d.net/hardware/listreports.php

ehart
12-03-2002, 04:37 PM
I haven't looked into the GLinfo program yet, I am very certain the info I have posted is correct. (I may have the s and t dimensions flipped on one of the parts.)

It does look to me like the Rage128 is incorrectly exporting EXT_texture3D. This is only supported in SW on that chip. I am trying to get that fixed.

I believe elsewhere my information is simply more exact, that what is being examined to produce that table.

-Evan

maya3d
12-04-2002, 06:39 PM
many thanks.

Tom Nuydens
12-04-2002, 11:33 PM
Evan, the value reported by GLinfo is simply GL_MAX_3D_TEXTURE_SIZE as reported by the drivers.

I don't see how you can get something like 512x512x256, because GL_MAX_3D_TEXTURE_SIZE is specified as being a single value, not three of them. Developers must always be able to assume that the returned number applies to the width, height and depth of the texture. If this isn't the case for your HW or drivers, then your HW or drivers don't conform to the OpenGL specification.

As for the Rage128, I'm sure they don't support it in hardware, but if they have a GL 1.2 driver then they do support it in software. That's why GLinfo detects it and reports the maximum 3D texture size anyway.

-- Tom

[This message has been edited by Tom Nuydens (edited 12-05-2002).]

MichaelK
12-05-2002, 12:53 AM
Originally posted by maya3d:
thanks ,
but http://www.delphi3d.net/hardware/listreports.php

this registry says that my gf2mx supports 64x64x64 3d textures. but the GL_EXT_texture3D string isnt exported. does it mean that on my system 3d textures are in software? am i right?

Tom Nuydens
12-05-2002, 05:09 AM
Originally posted by MichaelK:
this registry says that my gf2mx supports 64x64x64 3d textures. but the GL_EXT_texture3D string isnt exported. does it mean that on my system 3d textures are in software? am i right?

Yes. The unofficial policy is not to expose GL_EXT_texture3D unless hardware 3D texture support is available. Unfortunately this still doesn't give you any real guarantees, e.g. in the case of the Rage128 mentioned above by Evan.

-- Tom

ehart
12-05-2002, 05:35 AM
Tom,

Thanks for clearing up where the number comes from. I had suspected as much, but I had no way to know for certain.


Originally posted by Tom Nuydens:

I don't see how you can get something like 512x512x256, because GL_MAX_3D_TEXTURE_SIZE is specified as being a single value, not three of them. Developers must always be able to assume that the returned number applies to the width, height and depth of the texture. If this isn't the case for your HW or drivers, then your HW or drivers don't conform to the OpenGL specification.
[/B]

While it is true that the parameter is a single value, this is not what the GL spec says the reported max means. I have gone through the paragraph a couple times and it refers to the "maximum allowable width, height, or depth". The chapter for the 2D query seems to be written the other way. This means that those implementations are indeed reporting the correct value.

The way users should determine the largest size for indivual dimensions/formats is via the texture proxy mechanism.

-Evan

[Edit: UBB screw-up]


[This message has been edited by ehart (edited 12-05-2002).]

[This message has been edited by ehart (edited 12-05-2002).]

Tom Nuydens
12-05-2002, 06:07 AM
Evan,

If I understand you correctly, you're suggesting that only _one_ of the three dimensions (width, height, or depth) is strictly required to be able to go up to GL_MAX_3D_TEXTURE_SIZE?


OpenGL 1.4 specification, page 124:
The maximum allowable width, height, or depth of a three-dimensional texture
image is an implementation dependent function of the level-of-detail and internal
format of the resulting image array. It must be at least 2^k-lod+2bt for image arrays
of level-of-detail 0 through k, where k is the log base 2 of MAX_3D_TEXTURE_SIZE,
lod is the level-of-detail of the image array, and bt is the maximum border width.

I guess one could interpret it that way, but it doesn't seem very logical (not to me, at least). I wonder which one of us is smoking too much crack http://www.opengl.org/discussion_boards/ubb/smile.gif

Either way, given the particular restrictions on the earlier Radeons, using the proxy mechanism is indeed strongly advisable.

-- Tom

[This message has been edited by Tom Nuydens (edited 12-05-2002).]