3dlabs+floating point pbuffers

I have another problem running my code on a wildcat realizm 100. The driver exports the WGL_ATI_pixel_format_float extension, but creating a floating point buffer fails while finding a pixel format.
I choose following pixel format:

WGL_DRAW_TO_PBUFFER_ARB, true,
WGL_SUPPORT_OPENGL_ARB, true,
WGL_DEPTH_BITS_ARB, 24,
WGL_RED_BITS_ARB, 32,
WGL_GREEN_BITS_ARB, 32,
WGL_BLUE_BITS_ARB, 32,
WGL_ACCELERATION_ARB, WGL_FULL_ACCELERATION_ARB,
WGL_BIND_TO_TEXTURE_RGBA_ARB, true,
WGL_ALPHA_BITS_ARB, 32,
WGL_STENCIL_BITS_ARB, 8,
WGL_PIXEL_TYPE_ARB, WGL_TYPE_RGBA_FLOAT_ATI,
0,0,

wglChoosePixelFormatARB returns without error, but it finds only 0 pixel formats. On my ATI with the same code the driver returns a pixel format. My nvidia path with NV_float_buffer also creates a pbuffer without problems, so what do I have to do, to create a floating point pbuffers on a 3dlabs realizm 100? A normal pbuffer is created without errors, but floating point pbuffers fails always :confused:

Originally posted by valoh:
[b]I have another problem running my code on a wildcat realizm 100. The driver exports the WGL_ATI_pixel_format_float extension, but creating a floating point buffer fails while finding a pixel format.
I choose following pixel format:

WGL_DRAW_TO_PBUFFER_ARB, true,
WGL_SUPPORT_OPENGL_ARB, true,
WGL_DEPTH_BITS_ARB, 24,
WGL_RED_BITS_ARB, 32,
WGL_GREEN_BITS_ARB, 32,
WGL_BLUE_BITS_ARB, 32,
WGL_ACCELERATION_ARB, WGL_FULL_ACCELERATION_ARB,
WGL_BIND_TO_TEXTURE_RGBA_ARB, true,
WGL_ALPHA_BITS_ARB, 32,
WGL_STENCIL_BITS_ARB, 8,
WGL_PIXEL_TYPE_ARB, WGL_TYPE_RGBA_FLOAT_ATI,
0,0,

wglChoosePixelFormatARB returns without error, but it finds only 0 pixel formats. On my ATI with the same code the driver returns a pixel format. My nvidia path with NV_float_buffer also creates a pbuffer without problems, so what do I have to do, to create a floating point pbuffers on a 3dlabs realizm 100? A normal pbuffer is created without errors, but floating point pbuffers fails always :confused: [/b]
Hello,
You are right, ChoosePixelFormat returns 0 pixel formats for floating point pbuffers. I think that current Realizm drivers does not implement all things that they can do, so this should be a way to say “we have fpbuffers, but you can’t use them yet”
With beta drivers I was able to use fpbuffers with my Realizm 100. You must try beta drivers, or wait for new drivers.
If you do not want wait, you can enumerate all pixel formats and chose manually the one that better serves you, but I must prevent that this way can cause errors on your code.
I think that 3DLabs are doing a very good work with their Realizm drivers, they are very stable and very spec-friendly, but there are many things to implement yet :slight_smile: . We should wait to see the real power of Realizm cards


I think that 3DLabs are doing a very good work with their Realizm drivers, they are very stable and very spec-friendly, but there are many things to implement yet :slight_smile: . We should wait to see the real power of Realizm cards

Somehow I doubt this. I don’t regard faking supported extensions by exporting the extension without supporting the functionality or link errors with useless error messages for glsl shaders which work on ATI and nvidia as stable drivers or good driver quality :frowning:

I haven’t access to my realizm’s pc until I’ll be back from my vacations, so I cant find a good explanation to that linker error :frowning: . About the fpbuffer matter, it is annoying, I dont know really the reason of placing the extension into the extension string if it is not completely implemented (maybe compatibility reasons??), but at least, this behaviour may not cause a crash.

The Realizm series of cards are supposed to support float pbuffers through the ATI extension. You can try to list all of the pixel formats with a utility to see what they support with the driver that you are using. I can see that they are supporting the 16 bit half float formats instead of the 32 bit formats though Im told that the new driver with have both 16 and 32 bit floats :slight_smile: Im am getting 2 formats returned when I change to RGBA 16 bits each. The ATI spec details the half float format though it should be extended in bit precision if read pixels is used with GL_FLOAT as the param type.

Downloading 4.04.0611 Driver from the website, there are the 32 bit float formats but I have discovered that you need to put the attrib for the pixel type before the RGBA bits then it gives back 1 format. Like this…

WGL_ACCELERATION_ARB, WGL_FULL_ACCELERATION_ARB,
WGL_SUPPORT_OPENGL_ARB, true,
WGL_DRAW_TO_PBUFFER_ARB, true,
WGL_PIXEL_TYPE_ARB, WGL_TYPE_RGBA_FLOAT_ATI,
WGL_RED_BITS_ARB, 32,
WGL_GREEN_BITS_ARB, 32,
WGL_BLUE_BITS_ARB, 32,
WGL_ALPHA_BITS_ARB, 32,
WGL_DEPTH_BITS_ARB, 24,
WGL_STENCIL_BITS_ARB, 8,
WGL_BIND_TO_TEXTURE_RGBA_ARB, true,
0,0,

Nice to hear that! I am anxious to finish my vacations to test that :slight_smile: (and to finish some more projects :slight_smile: )