Hello, I've started working on implementing ARB_query_buffer_object, and am trying to work out the driver interface. I'm thinking something along these lines:
void (*CheckQuery)(struct gl_context *ctx, struct gl_query_object *q); void (*WaitQuery)(struct gl_context *ctx, struct gl_query_object *q); + void (*StoreQueryResult)(struct gl_context *ctx, struct gl_query_object *q, + struct gl_buffer_object *buf, intptr_t offset, + bool is64bit, bool wait); Which would only work for GL_QUERY_RESULT and GL_QUERY_RESULT_NO_WAIT. The other queries (GL_QUERY_RESULT_AVAILABLE and GL_QUERY_TYPE) would manually update the buffer using the BufferSubData call. This new call would only be used for when a buffer is bound. The alternative would be to also pass in the pname to the driver backend instead of the wait bool, and have it write in the 1/0 result for available, and the query type for GL_QUERY_TYPE. Thoughts? -ilia _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev