Am 12.03.2014 15:00, schrieb Marek Olšák: > Hi everybody, > > u_gen_mipmap doesn't disable queries, so all active queries are > incremented, even though mipmap generation shouldn't have any effect > on queries. Hardware drivers can disable queries, but this feature is > not exposed via the gallium interface. Generally, we want to disable > all queries except for the time_elapsed query for u_gen_mipmap. I > propose the following solutions to this problem: > > 1) Add pipe_context::pause_all_queries(pipe) and > resume_all_queries(pipe). It's self-explanatory. > > 2) Add pipe_context::pause_query(pipe, query) and resume_query(pipe, > query). This has the disadvantage of having to enumerate all active > queries in u_gen_mipmap. > > 3) Add pipe_rasterizer_state::disable_all_queries:1, or separate bits > disable_occlusion_queries:1 and disable_streamout_queries:1 (this > includes the primitives_generated query too). > > 4) Rewrite u_gen_mipmap to use pipe->blit. > > Please comment. > > Thanks. > > Marek
No idea what's best here. Though if you go for pause/resume query (or all queries) wouldn't it be better to just have one function and pass in some SUSPEND_QUERIES/RESUME_QUERIES bit? Other than that, I guess if hw really can suspend just all queries gathering with a single bit then an interface to disable all of them at once would be preferable. Roland _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev