Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 5 of 5

Thread: AMD_query_buffer_object - Catalyst 12.6 beta

  1. #1
    Intern Contributor
    Join Date
    Jul 2010
    Posts
    93

    AMD_query_buffer_object - Catalyst 12.6 beta

    Hi,

    Anybody knows what this extension is for? Is this some kind of progressive occlusion query, a desired functionality that has been discussed last year on this forum?

    Thanks,
    Fred

  2. #2
    Advanced Member Frequent Contributor
    Join Date
    Dec 2007
    Location
    Hungary
    Posts
    947
    Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
    Technical Blog: http://www.rastergrid.com/blog/

  3. #3
    Advanced Member Frequent Contributor
    Join Date
    Apr 2010
    Location
    Germany
    Posts
    942
    That extensiobn is actually pretty cool. aqnuep, do you foresee any trouble for it to be cross-vendor anytime soon? Shouldn't be much of a problem to support this, right?

  4. #4
    Advanced Member Frequent Contributor
    Join Date
    Jan 2007
    Posts
    982
    It looks like a more generalized variant on D3D10/11 Predicate Queries, and is definitely a very very nice extension. There's still a case to be made for readbacks being needed - keeping queries on the GPU would still necessitate submitting state changes and draw calls, running your shaders and modifying your shaders behaviour based on the query result - but it sounds as though it could be a useful addition if a query result were not yet available for readback.

  5. #5
    Advanced Member Frequent Contributor
    Join Date
    Dec 2007
    Location
    Hungary
    Posts
    947
    Quote Originally Posted by mhagain View Post
    That extensiobn is actually pretty cool. aqnuep, do you foresee any trouble for it to be cross-vendor anytime soon? Shouldn't be much of a problem to support this, right?
    I don't know whether NVIDIA could support this, but I would assume they should be able.

    Quote Originally Posted by mhagain View Post
    It looks like a more generalized variant on D3D10/11 Predicate Queries, and is definitely a very very nice extension.
    Well, actually the equivalent of predicate queries in OpenGL is conditional rendering, except that OpenGL supports only the "if occlusion query passed" condition, but not the "if occlusion query failed", "if transform feedback buffer overflowed" and "if transform feedback buffer didn't overflow" conditions.
    This is something more...

    Quote Originally Posted by mhagain View Post
    There's still a case to be made for readbacks being needed - keeping queries on the GPU would still necessitate submitting state changes and draw calls, running your shaders and modifying your shaders behaviour based on the query result - but it sounds as though it could be a useful addition if a query result were not yet available for readback.
    Well, depends. If you want to use occlusion queries for visibility determination, there's conditional rendering for you. However, query buffers come handy when you would like to do something like:
    1. Determine the number of vertices/instances to be drawn based on a primitive query. Just write the primitive query result to a buffer that you'll subsequently use as a draw indirect buffer.
    2. Determine the size of a point sprite based on an occlusion query. Just write the occlusion query result to a buffer that you'll read in the vertex shader to decide what to write to gl_PointSize.
    These are just some use cases, of course there can be a lot more so it's your turn to show how would you use it.
    Obviously, conditional rendering is more or less subsumed by query buffers as you could use a boolean occlusion query and draw indirect to perform the same, but it isn't necessarily implemented in the same way, so conditional rendering still makes sense (and is probably more simple if you want to only do simple visibility queries).
    Disclaimer: This is my personal profile. Whatever I write here is my personal opinion and none of my statements or speculations are anyhow related to my employer and as such should not be treated as accurate or valid and in no case should those be considered to represent the opinions of my employer.
    Technical Blog: http://www.rastergrid.com/blog/

Posting Permissions

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