[Mesa-dev] [PATCH 0/9] gallium: batch query objects and related cleanups
Hi, the main point of this patch series is to introduce batch query objects. For AMD_performance_monitor, hardware may not be able to start and stop performance counters independently of each other. The current query interface does not fit such hardware well. With this series, drivers can mark driver-specific queries with the PIPE_DRIVER_QUERY_FLAG_BATCH flag, which indicates that those queries require the use of batch query objects. Batch query objects are created with an immutable list of queries, which requires a new entry point in pipe_context, but apart from that they use the same begin_query/end_query/etc. entry points. The radeon-specific part that actually makes use of this feature is not quite ready yet, but I already wanted to get this part out there for feedback. Please review! Thanks, Nicolai --- gallium/auxiliary/hud/hud_context.c | 24 ++ gallium/auxiliary/hud/hud_driver_query.c | 249 +- gallium/auxiliary/hud/hud_private.h | 13 + gallium/drivers/nouveau/nvc0/nvc0_query.c |4 gallium/include/pipe/p_context.h |3 gallium/include/pipe/p_defines.h | 36 ++-- mesa/state_tracker/st_cb_perfmon.c| 247 - mesa/state_tracker/st_cb_perfmon.h| 32 +++ mesa/state_tracker/st_context.h |3 9 files changed, 437 insertions(+), 174 deletions(-) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 0/9] gallium: batch query objects and related cleanups
Hi Nicolai, Did you run amd_performance_monitor piglit tests to make sure all of your changes didn't break anything? Did you test on nvc0 driver which is the only driver that currently exposes GL_AMD_performance_monitor? In case you didn't, I'll test it myself in the next few days. You might not have the hardware. :-) Thanks. On 11/13/2015 04:57 PM, Nicolai Hähnle wrote: Hi, the main point of this patch series is to introduce batch query objects. For AMD_performance_monitor, hardware may not be able to start and stop performance counters independently of each other. The current query interface does not fit such hardware well. With this series, drivers can mark driver-specific queries with the PIPE_DRIVER_QUERY_FLAG_BATCH flag, which indicates that those queries require the use of batch query objects. Batch query objects are created with an immutable list of queries, which requires a new entry point in pipe_context, but apart from that they use the same begin_query/end_query/etc. entry points. The radeon-specific part that actually makes use of this feature is not quite ready yet, but I already wanted to get this part out there for feedback. Please review! Thanks, Nicolai --- gallium/auxiliary/hud/hud_context.c | 24 ++ gallium/auxiliary/hud/hud_driver_query.c | 249 +- gallium/auxiliary/hud/hud_private.h | 13 + gallium/drivers/nouveau/nvc0/nvc0_query.c |4 gallium/include/pipe/p_context.h |3 gallium/include/pipe/p_defines.h | 36 ++-- mesa/state_tracker/st_cb_perfmon.c| 247 - mesa/state_tracker/st_cb_perfmon.h| 32 +++ mesa/state_tracker/st_context.h |3 9 files changed, 437 insertions(+), 174 deletions(-) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev -- -Samuel ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 0/9] gallium: batch query objects and related cleanups
Hi Samuel, thanks for taking a look! On 13.11.2015 18:35, Samuel Pitoiset wrote: Did you run amd_performance_monitor piglit tests to make sure all of your changes didn't break anything? Yes, everything passes here. Did you test on nvc0 driver which is the only driver that currently exposes GL_AMD_performance_monitor? In case you didn't, I'll test it myself in the next few days. You might not have the hardware. :-) Sorry, I don't have the hardware. Thanks, Nicolai Thanks. On 11/13/2015 04:57 PM, Nicolai Hähnle wrote: Hi, the main point of this patch series is to introduce batch query objects. For AMD_performance_monitor, hardware may not be able to start and stop performance counters independently of each other. The current query interface does not fit such hardware well. With this series, drivers can mark driver-specific queries with the PIPE_DRIVER_QUERY_FLAG_BATCH flag, which indicates that those queries require the use of batch query objects. Batch query objects are created with an immutable list of queries, which requires a new entry point in pipe_context, but apart from that they use the same begin_query/end_query/etc. entry points. The radeon-specific part that actually makes use of this feature is not quite ready yet, but I already wanted to get this part out there for feedback. Please review! Thanks, Nicolai --- gallium/auxiliary/hud/hud_context.c | 24 ++ gallium/auxiliary/hud/hud_driver_query.c | 249 +- gallium/auxiliary/hud/hud_private.h | 13 + gallium/drivers/nouveau/nvc0/nvc0_query.c |4 gallium/include/pipe/p_context.h |3 gallium/include/pipe/p_defines.h | 36 ++-- mesa/state_tracker/st_cb_perfmon.c| 247 - mesa/state_tracker/st_cb_perfmon.h| 32 +++ mesa/state_tracker/st_context.h |3 9 files changed, 437 insertions(+), 174 deletions(-) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 0/9] gallium: batch query objects and related cleanups
On 11/13/2015 07:29 PM, Nicolai Hähnle wrote: Hi Samuel, thanks for taking a look! On 13.11.2015 18:35, Samuel Pitoiset wrote: Did you run amd_performance_monitor piglit tests to make sure all of your changes didn't break anything? Yes, everything passes here. Looks good. Thanks. Did you test on nvc0 driver which is the only driver that currently exposes GL_AMD_performance_monitor? In case you didn't, I'll test it myself in the next few days. You might not have the hardware. :-) Sorry, I don't have the hardware. That's not a problem, I'll test on NVIDIA GPUs. Thanks, Nicolai Thanks. On 11/13/2015 04:57 PM, Nicolai Hähnle wrote: Hi, the main point of this patch series is to introduce batch query objects. For AMD_performance_monitor, hardware may not be able to start and stop performance counters independently of each other. The current query interface does not fit such hardware well. With this series, drivers can mark driver-specific queries with the PIPE_DRIVER_QUERY_FLAG_BATCH flag, which indicates that those queries require the use of batch query objects. Batch query objects are created with an immutable list of queries, which requires a new entry point in pipe_context, but apart from that they use the same begin_query/end_query/etc. entry points. The radeon-specific part that actually makes use of this feature is not quite ready yet, but I already wanted to get this part out there for feedback. Please review! Thanks, Nicolai --- gallium/auxiliary/hud/hud_context.c | 24 ++ gallium/auxiliary/hud/hud_driver_query.c | 249 +- gallium/auxiliary/hud/hud_private.h | 13 + gallium/drivers/nouveau/nvc0/nvc0_query.c |4 gallium/include/pipe/p_context.h |3 gallium/include/pipe/p_defines.h | 36 ++-- mesa/state_tracker/st_cb_perfmon.c| 247 - mesa/state_tracker/st_cb_perfmon.h| 32 +++ mesa/state_tracker/st_context.h |3 9 files changed, 437 insertions(+), 174 deletions(-) ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev