Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Page 7 of 8 FirstFirst ... 5678 LastLast
Results 61 to 70 of 74

Thread: Official Bindless Graphics feedback thread

  1. #61
    Junior Member Newbie
    Join Date
    Jun 2009
    Posts
    6

    Re: Official Bindless Graphics feedback thread

    So about the Cg Support? Is there any? I saw a post on this earlier but it didn't make sense.

  2. #62
    Junior Member Regular Contributor LangFox's Avatar
    Join Date
    Oct 2001
    Location
    Shen Zhen, Guangdong, China
    Posts
    102

    Re: Official Bindless Graphics feedback thread

    Code :
    // enable vertex address use
    EnableClientState(VERTEX_ATTRIB_ARRAY_UNIFIED_NV);

    EnableClientState has been deprecated by OpenGL 3.0 and removed from OpenGL 3.1.

    If I use VertexAttribFormatNV and VertexAttribIFormatNV instead of VertexFormatNV, I think this code isn't necessary. Right?
    Best Regards,
    LangFox


    http://hi.baidu.com/lang_fox

  3. #63
    Senior Member OpenGL Pro
    Join Date
    May 2000
    Location
    Naarn, Austria
    Posts
    1,102

    Re: Official Bindless Graphics feedback thread

    Quote Originally Posted by Overmind
    From the examples of NV_shader_buffer_load:
    in vec4 **ptr;

    glVertexAttribI2iEXT(8, (unsigned int)pointerBufferAddr, (unsigned int)(pointerBufferAddr>>32));

    It seems like there is some implicit packing/unpacking going on.

    Why not introduce a function like this:
    glVertexAttribui64NV(8, pointerBufferAddr); (plus corresponding type specifiers for glVertexAttribFormat)
    You did it with glUniformui64NV, so why not for attributes/varyings? It would make the code a lot more explicit and less confusing.
    Is anyone from nVidia still reading this topic?

    I would really like to know the answer to my question...

  4. #64
    Junior Member Regular Contributor LangFox's Avatar
    Join Date
    Oct 2001
    Location
    Shen Zhen, Guangdong, China
    Posts
    102

    Re: Official Bindless Graphics feedback thread

    And I'm wondering if we could put all vertex attributes in an uniform buffer, instead of assigning them by VertexAttrib*?

    Code :
    uniform mat4 g_mat4_modelViewProjection;
     
    struct VERTEX
    {
      vec2 texcoord;
      vec4 position;
    };
    uniform VERTEX *vertex;
     
    out vec2 s_vec2_texcoord;
     
    void main()
    {
      s_vec2_texcoord = vertex[gl_VertexID].texcoord;
      gl_Position = g_mat4_modelViewProjection * vertex[gl_VertexID].position;
    }
    Best Regards,
    LangFox


    http://hi.baidu.com/lang_fox

  5. #65
    Junior Member Regular Contributor
    Join Date
    Jan 2004
    Location
    Czech Republic, EU
    Posts
    190

    Re: Official Bindless Graphics feedback thread

    1) What kind of memory may a pointer to UBO point to? Is it constant memory, or global memory, or both?

    2) If it's global memory, how can I be one-hundred percent sure that memory reads are coalesced? (this term is from CUDA)
    (usually just hobbyist) OpenGL driver developer

  6. #66
    Junior Member Newbie
    Join Date
    Jun 2009
    Posts
    3

    Re: Official Bindless Graphics feedback thread

    About bindless rendering: I am unable to get any of the speed-ups mentioned.

    I've made a simple program that does thousands of draw calls per frame, using normal VBO and bindless extension, and I am unable to get a speed-up using this extension. I've tried:
    Code :
    - render loop
      - change material A
        - render submesh A 1000 times
      - change material B
        - render submesh B 1000 times
      ...
    and
    Code :
    - render loop
      - render 1000 times:
          - change material A
          - render submesh A
          - change material B
          - render submesh B
          ...
    I've tried to render a few different meshes or only one a zillion times. I've tried with large meshes and small, simple meshes...

    In all of the cases there was no performance difference at all... seems the performance gain stated by NVidia is overrated enormously. Or I'm doing something wrong. Or something is wrong with my hardware (8600GT). Does anyone have a simple GL example program that shows an actual, impressive speed-up?

    Of course, this API allows doing things (somewhat) more conveniently, and using complex data structures in shaders, but the promised speed-up with simple draw calls is nowhere to be found

  7. #67
    Senior Member OpenGL Pro Ilian Dinev's Avatar
    Join Date
    Jan 2008
    Location
    Watford, UK
    Posts
    1,270

    Re: Official Bindless Graphics feedback thread

    With "a few different meshes or only one" you effectively stay in L1. And the whole thing is about so many VBOs, that lookups went out of L2.

  8. #68
    Senior Member OpenGL Guru zed's Avatar
    Join Date
    Jul 2000
    Location
    S41.16.25 E173.16.21
    Posts
    2,407

    Re: Official Bindless Graphics feedback thread

    but the promised speed-up with simple draw calls is nowhere to be found
    Identify your current bottleneck
    I assume this doesnt help fillrate at all (perhaps slightly)
    thus try rendering to a small window
    eg 320x240

  9. #69
    Junior Member Newbie
    Join Date
    Jun 2009
    Posts
    3

    Re: Official Bindless Graphics feedback thread

    Thanks; I'll try with many different meshes, just fill up GPU memory a bit I have some other theories though:

    - My graphics card is too slow. CPU has no problem keeping it occupied, even with slow draw calls. Maybe I should try on another card.

    - I only looked at the rendering time (FPS). I did not look at CPU usage % or profiled the draw calls. Maybe I should do that instead of look at rendering performance.

    The thing is, I'd like to use this extension in an existing rendering engine (Ogre3D), but I first want to see it actually gain something before I bother with the details.

  10. #70
    Junior Member Newbie
    Join Date
    Jun 2009
    Posts
    3

    Re: Official Bindless Graphics feedback thread

    On another note, I really like this new interface. It finally makes it possible to work with plain pointers on the GPU, a la CUDA.

    Speaking about CUDA, it would be great if you could share a memory space with a CUDA program and just swap pointers between GL and back It would make interoperability super cheap. Or is this already possible?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •