OpenGL extension rumor

New extensions are coming, but there is no any documentation about it. Maybe we need a new GL ext rumor forum. :slight_smile:
This extensions was dumped from nvoglnt.dll (96.89). I suppose it expose DX10 features, but since we know all about DX10 it will be nice to know how OpenGL expose this features.

GL_ES
GL_EXTX_framebuffer_mixed_formats
GL_EXT_Cg_shader
GL_EXT_bindable_uniform
GL_EXT_depth_buffer_float
GL_EXT_draw_buffers2
GL_EXT_draw_instanced
GL_EXT_framebuffer_sRGB
GL_EXT_geometry_shader4
GL_EXT_gpu_program_parameters
GL_EXT_gpu_shader4
GL_EXT_packed_float
GL_EXT_shadow_funcs
GL_EXT_texture_array
GL_EXT_texture_buffer_object
GL_EXT_texture_compression_latc
GL_EXT_texture_compression_s3tc
GL_EXT_texture_integer
GL_EXT_texture_sRGB
GL_EXT_texture_shared_exponent
GL_EXT_transform_feedback
GL_EXT_ycbcr_422
GL_NVX_conditional_render
GL_NV_depth_buffer_float
GL_NV_framebuffer_multisample_ex
GL_NV_geometry_shader4
GL_NV_gpu_program4
GL_NV_gpu_shader4
GL_NV_parameter_buffer_object
GL_NV_texture_compression_latc
GL_NV_texture_compression_vtc
GL_NV_transform_feedback
GL_OES_conditional_query
WGL_EXT_framebuffer_sRGB
WGL_EXT_pixel_format_packed_float
WGL_NV_gpu_affinity

I think it’s the only way to use these new features without Vista.

That are plenty of new extensions… well, let’s wait for the specs!

I hope these extensions are:

1: Implemented by ATi (well, except the NV extensions of course).
2: Stopgaps until we get GL 3.0/new object API.

And isn’t texture compression S3TC already there?

Texture_buffer_object sounds hawt, though.

GL_EXT_geometry_shader4
Why geometry_shader4? Did we miss 1-3?

My thoughts…

GL_EXTX_framebuffer_mixed_formats
Allow to bind framebuffers with different pixelformat

GL_EXT_depth_buffer_float
Support for 32bit float depthbuffer w/o clipping 0…1

GL_EXT_draw_buffers2
Support MRT with different pixelformat. Old MRT require targets with equal number of bits. New one remove this restriction

GL_EXT_draw_instanced
Geometry instancing

GL_EXT_framebuffer_sRGB
Support for sRGB framebuffer. I think that this extension is already documented in registry

GL_EXT_geometry_shader4
Geometry shader (in GLSL)

GL_EXT_gpu_program_parameters
Not new… http://www.opengl.org/registry/specs/EXT/gpu_program_parameters.txt

GL_EXT_gpu_shader4
Allow to allocate shader units for gemetry, vertex or fragment processing

GL_EXT_packed_float
New float texture formats (R9G9B9E5 or R11G11B10)

GL_EXT_texture_array
Array of textures. Allow to bind array to sampler.

GL_EXT_texture_buffer_object
Allow direct access to texture memory

GL_EXT_texture_compression_latc
Luminance+alpha compression

GL_EXT_texture_integer
Integer textures.

GL_EXT_texture_sRGB
http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_sRGB.txt

GL_EXT_texture_shared_exponent
related to float texture R9G9B9E5_SHAREDEXP

GL_EXT_transform_feedback
I just don’t know :frowning:

GL_EXT_ycbcr_422
Seen this before… YUV texture format? Quadro only?

GL_NVX_conditional_render
Related to occlusion query.

GL_NV_depth_buffer_float
Same as EXT version but with some NVidia specific stuff, or… it is NVidia extension promoted to EXT

GL_NV_framebuffer_multisample_ex
Programmabile framebuffer multisampling

GL_NV_geometry_shader4
Just like EXT version

GL_NV_gpu_program4
Just like EXT version

GL_NV_gpu_shader4
Just like EXT version… related to allocating shader units for vertex, geometry or fragment processing

GL_NV_parameter_buffer_object
Allow to bind any buffer as shader program parametar

GL_NV_texture_compression_latc
Just like EXT version

GL_NV_texture_compression_vtc
http://oss.sgi.com/projects/ogl-sample/registry/NV/texture_compression_vtc.txt

GL_NV_transform_feedback
I have no idea!!!

GL_OES_conditional_query
I have no idea!!!

WGL_EXT_framebuffer_sRGB
offscreen sRGB render target

WGL_EXT_pixel_format_packed_float
allow packed float backbuffer or pbuffer?

WGL_NV_gpu_affinity
Fine grained SLI control?

Hi!

I’ve tried to sort gl extensions procedures (obtained from that drivers as well).
Here’s what I found…

GL_EXT_transform_feedback
glActiveVaryingEXT
glGetActiveVaryingEXT
glBindFragDataLocationEXT
glGetFragDataLocationEXT
glTransformFeedbackAttribsEXT
glTransformFeedbackVaryingsEXT
glBeginTransformFeedbackEXT
glEndTransformFeedbackEXT

GL_NV_transform_feedback
glActiveVaryingNV
glGetActiveVaryingNV
glBindFragDataLocationNV
glGetFragDataLocationNV
glTransformFeedbackAttribsNV
glTransformFeedbackVaryingsNV
glBeginTransformFeedbackNV
glEndTransformFeedbackNV

GL_EXT_draw_instanced
glDrawArraysInstancedEXT
glDrawElementsInstancedEXT
?glDrawMesh
?glDrawMeshNV

GL_NVX_conditional_render
glBeginConditionalRenderNVX
glEndConditionalRenderNVX

GL_OES_conditional_query
glBeginConditionalRenderOES
glEndConditionalRenderOES

GL_EXT_texture_array
glGenArraySetsARB
glDeleteArraySetsARB
glBindArraySetARB
glIsArraySetARB

GL_EXT_texture_buffer_object
glTexBufferEXT

GL_EXT_bindable_uniform
glBindBufferBaseEXT
glBindBufferOffsetEXT
glBindBufferRangeEXT
glGetUniformOffsetEXT
glGetUniformBufferSizeEXT
glGetUniformuivEXT

GL_NV_parameter_buffer_object
glBindBufferBaseNV
glBindBufferOffsetNV
glBindBufferRangeNV
glGetUniformBufferSizeNV
glGetUniformuivNV

glGetProgramEnvParameterIivNV
glGetProgramEnvParameterIuivNV
glGetProgramLocalParameterIivNV
glGetProgramLocalParameterIuivNV
glProgramBufferParametersIivNV
glProgramBufferParametersIuivNV
glProgramBufferParametersfvNV
glProgramEnvParameterI4iNV
glProgramEnvParameterI4ivNV
glProgramEnvParameterI4uiNV
glProgramEnvParameterI4uivNV
glProgramLocalParameterI4iNV
glProgramLocalParameterI4ivNV
glProgramLocalParameterI4uiNV
glProgramLocalParameterI4uivNV

GL_EXT_depth_buffer_float
glClearDepthdEXT
glDepthBoundsdEXT

GL_NV_depth_buffer_float
glClearDepthdNV
glDepthBoundsdNV

GL_EXT_texture_integer
glTexParameterIivEXT
glTexParameterIuivEXT

GL_NV_framebuffer_multisample_ex
glRenderbufferStorageMultisampleExNV

And I couldn’t sort this out :

glFramebufferTextureFaceEXT
glFramebufferTextureLayerEXT

glClearColorIiEXT
glClearColorIuiEXT
glEnableIndexedEXT
glDisableIndexedEXT
glIsEnabledIndexedEXT
glColorMaskIndexedEXT
glGetBooleanIndexedvEXT
glGetIntegerIndexedvEXT

glGpuSyncAcquireNVX
glGpuSyncCopyBufferNVX
glGpuSyncEndNVX
glGpuSyncGetHandleSizeNVX
glGpuSyncInitNVX
glGpuSyncMapBufferNVX
glGpuSyncReleaseNVX
glGpuSyncUnmapBufferNVX

I think GL_EXT_transform_feedback == “Stream output” in DX10

How about max texture dimensions?

at least 8192

Are those extensions going to be implemented in ICDs for Windows XP?

IMO GL_ES is the most interesting
the forerunner to gl3.0 perhaps

also yes texture_buffer_object does sound good, itll make gpgpu stuff more viable

texture arrays are great (should of been there since years) the only problem is the lack of existing paint programs that deal with multiple channels (layers dont cut it)
perhaps a market for someone who gets in there quick + establishes themselves

As 8800 is out today, I guess we will get the specs pretty soon ^^

Are those extensions going to be implemented in ICDs for Windows XP?
I’ve found extensions and entry points in 96.89 on my WinXP SP2. :smiley:

Originally posted by Zengar:
As 8800 is out today, I guess we will get the specs pretty soon ^^
Only a few hours left! It would be nice to have a timetable/indication/or hint as when new extensions will arrive for us poor developers.

Lets hope nvidia launches something soon (like they always do and I’m happy about). :slight_smile:

I don’t think that we will have extension documentation today. :frowning:
It always takes them a few weeks unfortunately. Look at Siggraph 2006 documentation at nvidia site, you will find that Next Generation Programmability in OpenGL is “coming soon”. It has been 3 months since and nothing… :frowning:

So, I’ve decided to investigate drivers myself. :smiley:

I’ve found that there is a Cg 1.6 inside, that is able to compile geometry shaders. There are new profiles vp50, fp50, gp4gp, gp4fp, gp4fp.

vp50 and fp50 have full integer support (bitwise operation, etc.), I presume that gp stands for Geometry Program. I think that it has something to do with GL_EXT_transform_feedback extensions.

Also, there are
TRIANGLE_OUT
TRIANGLE
TRIANGLE_ADJ
LINE
LINE_ADJ
POINT_OUT
POINT

flatAttribute
emitVertex
restartStrip

x4texCUBEARRAYfetch
x4texCUBEARRAYlod
x4texCUBEARRAYbias
x4texCUBEARRAYproj
x4texCUBEARRAY
x4tex2DARRAYfetch
x4tex2DARRAYlod
x4tex2DARRAYbias
x4tex2DARRAYproj
x4tex2DARRAY
x4tex1DARRAYfetch
x4tex1DARRAYlod
x4tex1DARRAYbias
x4tex1DARRAYproj
x4tex1DARRAY
x4texCUBEfetch
x4texCUBElod
x4texCUBEbias
x4texCUBEproj
x4texCUBE

I’ve found document that only briefly touches geometry shaders in Cg.
On page 40 of http://developer.download.nvidia.com/presentations/2006/siggraph/kilgard-siggraph-06.pdf

Also, there is a DirectX 10 document from Siggraph 2006 GPU Shading and Rendering Course that has information on geometry shader execution model.
http://www.csee.umbc.edu/~olano/s2006c03/ch02.pdf

Presentations from course can be found at http://www.csee.umbc.edu/~olano/s2006c03/

What to say, the future looks nice. :slight_smile:

It would be much better if we can have OpenGL extension documentation a month before card releases to public, so that we can prepare for new features.

GL_NVX_conditional_render - looks promising, finally occlusion queries can be made useful, possibly triggering a specific rendering segment based on the outcome of previous occlusion queries without stalling the cpu or the gpu, that’s good.

GL_EXT_geometry_shader4
GL_EXT_gpu_shader4
Shader model 4 goodies (i suspect that’s what the 4 is for), i also guess that GL_EXT_gpu_shader4 is the old fragment and vertex shader extensions put into a single extension.

GL_EXT_draw_instanced - finally.

Exiting times indeed, i can’t wait to try some of them out

Hey, wait a minute. There must be some mistake. This can’t be possible.

These stuff above looks like features of DirectX 10. And, I’m sure you’ve heard it already, DirectX 10 will be on Microsoft Vistaâ„¢ only. That’s because Microsoft Vistaâ„¢ comes with rewritten Kennelâ„¢ and totally new Drivel Modelâ„¢. For this technical reason, it would be impossible to retrofit DirectX 10 on Windows XP. I heard it clear, many times.

The problem with these extensions is that they don’t actually mean anything yet. Do we even know if the ARB was consulted, or is this shades of the GeForce 3 days, when nVidia would just throw out a bunch of extensions that they expected others to implement or not at their own leisure.

texture arrays are great (should of been there since years) the only problem is the lack of existing paint programs that deal with multiple channels (layers dont cut it)
perhaps a market for someone who gets in there quick + establishes themselves
I don’t know what a paint program has to do with arrays of textures. You’re basically talking about a mechanism for switching between multiple textures as needed on the GPU without the overhead of an actual branch operation.

DirectX 10 will be on Microsoft Vistaâ„¢ only. That’s because Microsoft Vistaâ„¢ comes with rewritten Kennelâ„¢ and totally new Drivel Modelâ„¢
The rampant anti-Microsoft nonsense is not helpful.

Originally posted by Korval:
The problem with these extensions is that they don’t actually mean anything yet. Do we even know if the ARB was consulted, or is this shades of the GeForce 3 days, when nVidia would just throw out a bunch of extensions that they expected others to implement or not at their own leisure.
If it has a EXT tag then the ARB(or whatever they call themselves today after the merger with khronos) has been involved.
The NVX is just experimental extensions like GL_NVX_instanced_arrays which has probably transformed into GL_EXT_draw_instanced.

The other NV extensions is a reflection of ATI’s lagging behind on the release of their SM4 hardware.
They probably can’t call it EXT because ATI cant reveal if this extension can be supported just yet since the hardware/driver is still technically under development.
IT’s probably just a formality.

@sk0j:
You are talking nonsense :-/
It is totally up to Nvidia what to expose in their drivers. There will be no DirectX 10 in Xp, sure, but what does it have to do with OpenGL? I find it funny that everyone concentrates on DirectX as THE standard…