PDA

View Full Version : GL_EXT_transform_feedback problem



mobeen
04-05-2011, 11:19 PM
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.

Alfonse Reinheart
04-05-2011, 11:55 PM
GL_EXT_transform_feedback2

No such extension. Do you mean ARB_transform_feedback2?

mobeen
04-06-2011, 12:01 AM
No such extension. Do you mean ARB_transform_feedback2?

This is what GLview gives me
http://www3.ntu.edu.sg/home2007/mova0002/test/ext.png
click this if its too short.
http://www3.ntu.edu.sg/home2007/mova0002/test/ext.png

Alfonse Reinheart
04-06-2011, 12:33 AM
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).

mobeen
04-06-2011, 12:38 AM
I have updated to GLview v3.35 and it reports the same extension.
http://www3.ntu.edu.sg/home2007/mova0002/test/ext2.png
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.

Alfonse Reinheart
04-06-2011, 01:10 AM
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.

mobeen
04-06-2011, 01:16 AM
Does it support ARB_transform_feedback and transform_feedback2? If so, you should use them.

It supports GL_ARB_tranform_feedback2 and GL_EXT_transform_feedback2

mobeen
04-06-2011, 01:55 AM
OK I can use the GL_EXT_transform_feedback2 infact it makes handling of buffers much more clean.

YarUnderoaker
04-06-2011, 04:26 AM
By the way, GLViewer said GL_EXT_transform_feedback supported by all must VGA, is that right?

mobeen
04-06-2011, 04:56 AM
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)

YarUnderoaker
04-06-2011, 05:35 AM
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

mobeen
04-06-2011, 05:42 AM
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.

Alfonse Reinheart
04-06-2011, 09:40 AM
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.

mobeen
04-06-2011, 03:34 PM
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.