Maciej Cencora wrote: > Hi, > > here's a an excerpt from ARB_occlusion_query specification: > > Will polling a query without a Flush possibly cause an infinite loop? > > RESOLVED: No. An infinite loop was possible in the original > NV_occlusion_query spec if an application did not perform a > flush prior to polling. This behavior was removed in this version > of the spec as it violated language in the core GL spec. > > Instead of allowing for an infinite loop, performing a > QUERY_RESULT_AVAILABLE_ARB will perform a flush if the result > is not ready yet on the first time it is queried. This ensures > that the async query will return true in finite time. > > This behavior is not a significant performance loss over the original > version of the spec. A flush would need to be performed at some > point anyway and the flush performed when QUERY_RESULT_AVAILABLE_ARB > is requested will only occur *if the result is not back yet*. > > and another one from glBeginQuery documentation: > > Querying the GL_QUERY_RESULT implicitly flushes the GL pipeline until the > rendering delimited by the query object has completed and the result is > available. > > In mesa there seems to be no code that would flush the pipe in these > situations. Is this intentional behavior to allow per driver optimizations or > just a bug?
The intention is that the ctx->Driver.WaitQuery() and ctx->Driver.CheckQuery() functions would issue flushes if needed. I just noticed there's no default/fallback function for the CheckQuery() hook so I'll add that... -Brian ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Mesa3d-dev mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
