1 Reply Latest reply on Apr 27, 2012 2:39 AM by gsellers

    About some new AMD OpenGL extensions..


      Well I see catalyst 12.4 introduces GL_AMD_transform_feedback4 extension..

      Some info would be good.. seaching I have found in glxati.h  some new extensions we there is no spec published also don't know what GPU generation are dedicated too.. see below..

      Seeing Nvidia new binary I see GL_NV_gpu_work_creation and GL_NV_state_object and some patents related to it seems new HPC Kepler will support enqueing new work from GPU shaders all without host intervention and also saving state in objects so this could be referenced by new work created as new state enviroment attached to new work created..

      I also see new ADFS summit session on new OpenGL extensions for Southern Islands hope you have some new additional extensions to what I have found in glxati.h and equivalent functionality to new Kepler (i.e. work creation inside GPU)..


      In glxati.h I see (in fact shipping since fglrx  november 2011 at least):








      #define GL_STREAM_RASTERIZATION_AMD                       0x9380

      // end AMD_transform_feedback4



      extern GLXContext glXGetPostProcessContextAMD(Display *dpy);

      extern GLXDrawable glXGetPostProcessDrawableAMD(Display *dpy);

      extern unsigned int glXEnablePostProcessAMD(GLboolean enable);

      extern unsigned int glXSetDesktopSurfaceSizeAMD(unsigned int width, unsigned int height, unsigned int defaultPresentTexture );

      extern unsigned int glXPresentDesktopAMD(unsigned int presentTexture, unsigned int displayIndex, const unsigned int *attrib_list );



      #define GL_COMPUTE_SHADER_AMD                             0x6969




                                                             GLuint workdim,

                                                             const GLuint* global_work_size,

                                                             const GLuint* local_work_size);

      // end AMD_compute_shader




      /* AMD_array_buffer */

      typedef GLint  (APIENTRY * PFNGLGETBUFFERARRAYINDEXAMDPROC)(GLuint program, const GLchar * name);

      typedef GLvoid (APIENTRY * PFNGLARRAYBUFFERBINDINGAMDPROC)(GLuint program, GLuint arrayBufferIndex, GLuint arrayBufferBinding);

      // END AMD_array_buffer



      #define AMD_bus_addressable_memory



      #define GL_BUS_ADDRESSABLE_MEMORY_AMD       0x9168

      #define GL_EXTERNAL_PHYSICAL_MEMORY_AMD     0x9169



      typedef GLvoid (APIENTRY * PFNGLWAITMARKERAMDPROC)  (GLuint buffer, GLuint marker);

      typedef GLvoid (APIENTRY * PFNGLWRITEMARKERAMDPROC) (GLuint buffer, GLuint marker, GLuint64 offset);

      typedef GLvoid (APIENTRY * PFNGLMAKEBUFFERSRESIDENTAMDPROC) (GLsizei count, GLuint* buffers, GLuint64* baddrs, GLuint64* maddrs);

      typedef GLvoid (APIENTRY * PFNGLBUFFERBUSADDRESSAMDPROC)    (GLenum target, GLsizeiptr size, GLuint64 baddrs, GLuint64 maddrs);

        • Re: About some new AMD OpenGL extensions..

          We will work on posting the specification for AMD_transform_feedback4 to the OpenGL extension registry as soon as possible. The other extensions you mention are either experimental, private or available only on certain platforms (such as embedded systems or those with custom kernel images).


          I will be at AFDS and will present some of our new extensions for Southern Islands (and other hardware). I hope to see you there!