PDA

View Full Version : float16 Rectangular RTT on ATI



Stephen_H
01-16-2006, 09:40 AM
What is the ATI recommended way to get rectangular render-to-texture on ATI working? I'm using float16 pbuffers and doing accumulation affects with them which requires results in float16.

Nvidia supports their own extension for binding pbuffers to GL_TEXTURE_RECTANGLE_NV/GL_TEXTURE_RECTANGLE_ARB textures, but I can't figure out what I should be using for ATI. I'm willing to switch to a different rectangle extension and do all my computations in [0,1] instead of pixel coordinates if necessary. (but would prefer not to, since that means 2 separate renderpaths)

ATI doesn't seem to support the ARB_texture_non_power_of_two extension - its not listed on their website or pdf, nor on the delphi3d website, and my 1800 doesn't list it in the extensions string. (am I missing something really stupid here?)

I'm willing to switch to frame buffer objects if that will help (but would prefer not to just yet because the extension is new and I want to avoid problems until the drivers mature a bit more). Will it help?

If there is no rectangular RTT on ATI, I guess my only options are:

*pack into next power of 2 - which is going to be quite expensive memory wise with float16 targets

*don't use RTT, use glCopyTexSubImage() into a rectangular texture. These means copying 2 large float16 pbuffers for each accumulation pass.

execom_rt
01-16-2006, 09:51 AM
Assuming thoses following extensions are available on your video card : (Radeon X1800 ?)

WGL_ARB_PBuffer,
WGL_ARB_render_texture,
WGL_ATI_render_texture_rectangle,
WGL_ATI_pixel_format_float

use
WGL_PIXEL_TYPE_ARB, WGL_TYPE_RGBA_FLOAT_ATI
and
WGL_TEXTURE_TARGET_ARB, WGL_TEXTURE_RECTANGLE_ATI

I think an ATI 9600 or better is required , specifications of those extensions are available on the internet, but I suggest to use 'GLEW' if you are not using it yet (WGL_ATI_render_texture_rectangle is poorly documented, last time i've checked.)

Using the recently introduced GL_EXT_framebuffer_object can achieve the same result, and it is more compatible across platforms and recent video cards.

For ARB_texture_non_power_of_two extension, current generation of ATI drivers doesn't support the full specifications of non power of two textures (I suppose the Radeon X1xxx could support it), a partial implementation is available by the GL_VERSION == 2.00, which act like ARB_texture_non_power_of_two, although software fallback might be excepted when using it.

Stephen_H
01-16-2006, 10:17 AM
Yeah, I've been looking for information on WGL_ATI_render_texture_rectangle, but its not listed on ATIs web list of extensions, its not on SGIs list, but it listed in extensions string on 1800, X600, and the 9800 that I checked so far.

Thanks for your help, I'll try to dig up some documentation somewhere so I can use it, lol

shelll
01-16-2006, 12:08 PM
if GL_VERSION is 2, then you have support for arb_npot, even if there is no string for it in ATi driver. on ATi HW you can't use repeat and mipmaps and you have HW acceleration from 9500 up.