mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
intel: Add performance debug for some common GPU stalls.
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
4cfb9e3000
commit
0e723b135b
3 changed files with 19 additions and 1 deletions
|
|
@ -139,6 +139,12 @@ brw_queryobj_get_results(struct gl_context *ctx,
|
|||
if (query->bo == NULL)
|
||||
return;
|
||||
|
||||
if (unlikely(INTEL_DEBUG & DEBUG_PERF)) {
|
||||
if (drm_intel_bo_busy(query->bo)) {
|
||||
perf_debug("Stalling on the GPU waiting for a query object.\n");
|
||||
}
|
||||
}
|
||||
|
||||
drm_intel_bo_map(query->bo, false);
|
||||
results = query->bo->virtual;
|
||||
switch (query->Base.Target) {
|
||||
|
|
|
|||
|
|
@ -212,7 +212,8 @@ intel_bufferobj_subdata(struct gl_context * ctx,
|
|||
intel_bufferobj_alloc_buffer(intel, intel_obj);
|
||||
drm_intel_bo_subdata(intel_obj->buffer, 0, size, data);
|
||||
} else {
|
||||
/* Use the blitter to upload the new data. */
|
||||
perf_debug("Using a blit copy to avoid stalling on glBufferSubData() "
|
||||
"to a busy buffer object.\n");
|
||||
drm_intel_bo *temp_bo =
|
||||
drm_intel_bo_alloc(intel->bufmgr, "subdata temp", size, 64);
|
||||
|
||||
|
|
@ -226,6 +227,11 @@ intel_bufferobj_subdata(struct gl_context * ctx,
|
|||
drm_intel_bo_unreference(temp_bo);
|
||||
}
|
||||
} else {
|
||||
if (unlikely(INTEL_DEBUG & DEBUG_PERF)) {
|
||||
if (drm_intel_bo_busy(intel_obj->buffer)) {
|
||||
perf_debug("Stalling on the GPU in glBufferSubData().\n");
|
||||
}
|
||||
}
|
||||
drm_intel_bo_subdata(intel_obj->buffer, offset, size, data);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -123,6 +123,12 @@ intel_region_map(struct intel_context *intel, struct intel_region *region,
|
|||
* flush is only needed on first map of the buffer.
|
||||
*/
|
||||
|
||||
if (unlikely(INTEL_DEBUG & DEBUG_PERF)) {
|
||||
if (drm_intel_bo_busy(region->bo)) {
|
||||
perf_debug("Mapping a busy BO, causing a stall on the GPU.\n");
|
||||
}
|
||||
}
|
||||
|
||||
_DBG("%s %p\n", __FUNCTION__, region);
|
||||
if (!region->map_refcount) {
|
||||
intel_flush(&intel->ctx);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue