GL_EXT_transform_feedback problem

Hi all,
I am kind of confused on this extension. I can use the non ext function (glTransformFeedbackVaryings) without any problem however the extension function (glTransformFeedbackVaryingsEXT) is undefined. I double checked the extensions supported using GLview and it tells me that my platform supports
GL_EXT_transform_feedback2
GL_NV_transform_feedback
GL_NV_transform_feedback2
what is the difference between GL_EXT_transform_feedback2 and GL_EXT_transform_feedback? The latest glew headers only handle GL_EXT_transform_feedback is it some kind of a bug or am i missing anything?

I have the latest drivers for my NVIDIA Quadro FX 5800 card on WIndows 7 64 bit.

GL_EXT_transform_feedback2

No such extension. Do you mean ARB_transform_feedback2?

No such extension. Do you mean ARB_transform_feedback2?

This is what GLview gives me

click this if its too short.
http://www3.ntu.edu.sg/home2007/mova0002/test/ext.png

The extension registry lists no such extension. Maybe its a bug in GLview 3.34? My version 3.35 doesn’t have that extension listed in the database (my hardware doesn’t support transform_feedback2).

I have updated to GLview v3.35 and it reports the same extension.

I have the latest nvidia drivers v267.79 (just installed it released yesterday).

The extension registry lists no such extension

NVIDIA detail it here http://developer.download.nvidia.com/opengl/specs/GL_EXT_transform_feedback2.txt

One more thing that is really strange is that GLview does not report the functions exposed by this extension when the specs say it exposes these functions


void BindTransformFeedbackEXT(enum target, uint id);
void DeleteTransformFeedbacksEXT(sizei n, const uint *ids);
void GenTransformFeedbacksEXT(sizei n, uint *ids);
boolean IsTransformFeedbackEXT(uint id);

void PauseTransformFeedbackEXT(void);
void ResumeTransformFeedbackEXT(void);

void DrawTransformFeedbackEXT(enum mode, uint id);

and these tokens.


Accepted by the <target> parameter of BindTransformFeedbackEXT:
TRANSFORM_FEEDBACK_EXT                             0x8E22
Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv,and GetFloatv:

TRANSFORM_FEEDBACK_BUFFER_PAUSED_EXT               0x8E23
TRANSFORM_FEEDBACK_BUFFER_ACTIVE_EXT               0x8E24
TRANSFORM_FEEDBACK_BINDING_EXT                     0x8E25

OK so now this extension requires either GL_EXT_transform_feedback or GL_NV_transform_feedback. My hardware supports the latter. So does it mean that I have to use glTransformFeedbackVaryingsNV and I can’t use glTransformFeedbackVaryingsEXT?
I am reading the specs and it seems that this extension is handling most of the grunt work by wrapping it into new extension functions exposed in it.

NVIDIA detail it here

NVIDIA can detail whatever they want; if it’s not in the extension registry, it’s not a registered OpenGL extension.

Does it support ARB_transform_feedback and transform_feedback2? If so, you should use them.

One more thing that is really strange is that GLview does not report the functions exposed by this extension when the specs say it exposes these functions

That’s probably because it’s not registered.

It supports GL_ARB_tranform_feedback2 and GL_EXT_transform_feedback2

OK I can use the GL_EXT_transform_feedback2 infact it makes handling of buffers much more clean.

By the way, GLViewer said GL_EXT_transform_feedback supported by all must VGA, is that right?

Its GLview not GLViewer.
It lists GL_EXT_transform_feedback2, GL_NV_transform_feedback, GL_NV_transform_feedback2 and GL_ARB_transform_feedback2.

supported by all must VGA

I dont understand this phrase? Do u mean all renderers? I have checked all (apart from generic GDI ofcourse)

Ups, sorry for my curves hands.
I mean GL_EXT_transform_feedback is True
starting from NVIDIA GeForce2 MX, ATI Radeon X600 and Intel GMA

Yeah i know but on my Quadro FX 5800 it is not exposed.

OK I can use the GL_EXT_transform_feedback2 infact it makes handling of buffers much more clean.

I would be leery of using any extension that is not registered in the registry. It won’t be in your extension headers, most extension loaders will not recognize it, and therefore it will be harder to work with.

Besides, a quick comparison of the two extension text files show that they’re functionally identical. So its more likely that the EXT version was a pre-release made before the ARB version. So prefer the ARB version, which is the actual extension, over the EXT version.

Yeah I m using the ARB_TF2. its a typo in the previous post.