intel : Expose Shader hashes for utrace and Perfetto
This patch exposes shader hashes (computes and draws) to Perfetto and utrace. By including these hashes in traces, developers can correlate compute and draw calls with their assoicated ASM dumps when analyzing the traces. To achieve this, intel_tracepoint.py has been reworked to preprocess tracepoint arguments dynamically. Any argument containing "hash" in its variable name is now forrmated as hexadecimal before being passed to the tracepoint definition. Signed-off-by: Michael <michael.cheng@intel.com> Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32708>
This commit is contained in:
@@ -8668,7 +8668,7 @@ iris_upload_render_state(struct iris_context *ice,
|
||||
|
||||
uint32_t count = (sc) ? sc->count : 0;
|
||||
count *= draw->instance_count ? draw->instance_count : 1;
|
||||
trace_intel_end_draw(&batch->trace, count);
|
||||
trace_intel_end_draw(&batch->trace, count, 0, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -8769,7 +8769,7 @@ iris_upload_indirect_render_state(struct iris_context *ice,
|
||||
|
||||
uint32_t count = (sc) ? sc->count : 0;
|
||||
count *= draw->instance_count ? draw->instance_count : 1;
|
||||
trace_intel_end_draw(&batch->trace, count);
|
||||
trace_intel_end_draw(&batch->trace, count, 0, 0);
|
||||
#else
|
||||
unreachable("Unsupported path");
|
||||
#endif /* GFX_VERx10 >= 125 */
|
||||
@@ -8955,7 +8955,7 @@ iris_upload_indirect_shader_render_state(struct iris_context *ice,
|
||||
|
||||
uint32_t count = (sc) ? sc->count : 0;
|
||||
count *= draw->instance_count ? draw->instance_count : 1;
|
||||
trace_intel_end_draw(&batch->trace, count);
|
||||
trace_intel_end_draw(&batch->trace, count, 0, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -9129,7 +9129,7 @@ iris_upload_compute_walker(struct iris_context *ice,
|
||||
}
|
||||
}
|
||||
|
||||
trace_intel_end_compute(&batch->trace, grid->grid[0], grid->grid[1], grid->grid[2]);
|
||||
trace_intel_end_compute(&batch->trace, grid->grid[0], grid->grid[1], grid->grid[2], 0);
|
||||
}
|
||||
|
||||
#else /* #if GFX_VERx10 >= 125 */
|
||||
@@ -9279,7 +9279,7 @@ iris_upload_gpgpu_walker(struct iris_context *ice,
|
||||
|
||||
iris_emit_cmd(batch, GENX(MEDIA_STATE_FLUSH), msf);
|
||||
|
||||
trace_intel_end_compute(&batch->trace, grid->grid[0], grid->grid[1], grid->grid[2]);
|
||||
trace_intel_end_compute(&batch->trace, grid->grid[0], grid->grid[1], grid->grid[2], 0);
|
||||
}
|
||||
|
||||
#endif /* #if GFX_VERx10 >= 125 */
|
||||
|
@@ -52,6 +52,15 @@ def define_tracepoints(args):
|
||||
global intel_default_tps
|
||||
if tp_default_enabled:
|
||||
intel_default_tps.append(name)
|
||||
|
||||
# Preprocess arguments to handle display_as_hex
|
||||
processed_args = []
|
||||
for arg in tp_args:
|
||||
# Manually handle display_as_hex by modifying the format
|
||||
if "hash" in arg.var:
|
||||
arg = Arg(type=arg.type, var=arg.var, c_format='%#x') # Convert to hex format
|
||||
processed_args.append(arg)
|
||||
|
||||
Tracepoint('intel_begin_{0}'.format(name),
|
||||
toggle_name=name,
|
||||
tp_perfetto='intel_ds_begin_{0}'.format(name),
|
||||
@@ -66,7 +75,7 @@ def define_tracepoints(args):
|
||||
tp_flags.append('INTEL_DS_TRACEPOINT_FLAG_END_OF_PIPE')
|
||||
Tracepoint('intel_end_{0}'.format(name),
|
||||
toggle_name=name,
|
||||
args=tp_args,
|
||||
args=processed_args,
|
||||
tp_struct=tp_struct,
|
||||
tp_perfetto='intel_ds_end_{0}'.format(name),
|
||||
tp_print=tp_print,
|
||||
@@ -151,25 +160,43 @@ def define_tracepoints(args):
|
||||
|
||||
# Various draws/dispatch, Anv & Iris
|
||||
begin_end_tp('draw',
|
||||
tp_args=[Arg(type='uint32_t', var='count', c_format='%u')])
|
||||
tp_args=[Arg(type='uint32_t', var='count', c_format='%u'),
|
||||
Arg(type='uint32_t', var='vs_hash', c_format='%u'),
|
||||
Arg(type='uint32_t', var='fs_hash', c_format='%u')])
|
||||
begin_end_tp('draw_multi',
|
||||
tp_args=[Arg(type='uint32_t', var='count', c_format='%u'),])
|
||||
tp_args=[Arg(type='uint32_t', var='count', c_format='%u'),
|
||||
Arg(type='uint32_t', var='vs_hash', c_format='%u'),
|
||||
Arg(type='uint32_t', var='fs_hash', c_format='%u')])
|
||||
begin_end_tp('draw_indexed',
|
||||
tp_args=[Arg(type='uint32_t', var='count', c_format='%u'),])
|
||||
tp_args=[Arg(type='uint32_t', var='count', c_format='%u'),
|
||||
Arg(type='uint32_t', var='vs_hash', c_format='%u'),
|
||||
Arg(type='uint32_t', var='fs_hash', c_format='%u')])
|
||||
begin_end_tp('draw_indexed_multi',
|
||||
tp_args=[Arg(type='uint32_t', var='count', c_format='%u'),])
|
||||
tp_args=[Arg(type='uint32_t', var='count', c_format='%u'),
|
||||
Arg(type='uint32_t', var='vs_hash', c_format='%u'),
|
||||
Arg(type='uint32_t', var='fs_hash', c_format='%u')])
|
||||
begin_end_tp('draw_indirect_byte_count',
|
||||
tp_args=[Arg(type='uint32_t', var='instance_count', c_format='%u'),])
|
||||
tp_args=[Arg(type='uint32_t', var='instance_count', c_format='%u'),
|
||||
Arg(type='uint32_t', var='vs_hash', c_format='%u'),
|
||||
Arg(type='uint32_t', var='fs_hash', c_format='%u')])
|
||||
begin_end_tp('draw_indirect',
|
||||
tp_args=[Arg(type='uint32_t', var='draw_count', c_format='%u'),])
|
||||
tp_args=[Arg(type='uint32_t', var='draw_count', c_format='%u'),
|
||||
Arg(type='uint32_t', var='vs_hash', c_format='%u'),
|
||||
Arg(type='uint32_t', var='fs_hash', c_format='%u')])
|
||||
begin_end_tp('draw_indexed_indirect',
|
||||
tp_args=[Arg(type='uint32_t', var='draw_count', c_format='%u'),])
|
||||
tp_args=[Arg(type='uint32_t', var='draw_count', c_format='%u'),
|
||||
Arg(type='uint32_t', var='vs_hash', c_format='%u'),
|
||||
Arg(type='uint32_t', var='fs_hash', c_format='%u')])
|
||||
begin_end_tp('draw_indirect_count',
|
||||
tp_args=[Arg(type='uint32_t', var='draw_count', c_format='%u',
|
||||
is_indirect=True),])
|
||||
is_indirect=True),
|
||||
Arg(type='uint32_t', var='vs_hash', c_format='%u'),
|
||||
Arg(type='uint32_t', var='fs_hash', c_format='%u')])
|
||||
begin_end_tp('draw_indexed_indirect_count',
|
||||
tp_args=[Arg(type='uint32_t', var='draw_count', c_format='%u',
|
||||
is_indirect=True),])
|
||||
is_indirect=True),
|
||||
Arg(type='uint32_t', var='vs_hash', c_format='%u'),
|
||||
Arg(type='uint32_t', var='fs_hash', c_format='%u')])
|
||||
|
||||
begin_end_tp('draw_mesh',
|
||||
tp_args=[Arg(type='uint32_t', var='group_x', c_format='%u'),
|
||||
@@ -184,13 +211,15 @@ def define_tracepoints(args):
|
||||
begin_end_tp('compute',
|
||||
tp_args=[Arg(type='uint32_t', var='group_x', c_format='%u'),
|
||||
Arg(type='uint32_t', var='group_y', c_format='%u'),
|
||||
Arg(type='uint32_t', var='group_z', c_format='%u'),],
|
||||
Arg(type='uint32_t', var='group_z', c_format='%u'),
|
||||
Arg(type='uint32_t', var='cs_hash', c_format='%u')],
|
||||
compute=True)
|
||||
|
||||
begin_end_tp('compute_indirect',
|
||||
tp_args=[ArgStruct(type='VkDispatchIndirectCommand', var='size',
|
||||
is_indirect=True, c_format="%ux%ux%u",
|
||||
fields=['x', 'y', 'z'])],
|
||||
is_indirect=True, c_format="%ux%ux%u",
|
||||
fields=['x', 'y', 'z']),
|
||||
Arg(type='uint32_t', var='cs_hash', c_format='%u')],
|
||||
compute=True)
|
||||
|
||||
# Used to identify copies generated by utrace
|
||||
|
@@ -624,7 +624,8 @@ void genX(CmdDispatchBase)(
|
||||
|
||||
if (cmd_buffer->state.rt.debug_marker_count == 0) {
|
||||
trace_intel_end_compute(&cmd_buffer->trace,
|
||||
groupCountX, groupCountY, groupCountZ);
|
||||
groupCountX, groupCountY, groupCountZ,
|
||||
pipeline->source_hash);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -684,7 +685,8 @@ emit_unaligned_cs_walker(
|
||||
|
||||
if (cmd_buffer->state.rt.debug_marker_count == 0) {
|
||||
trace_intel_end_compute(&cmd_buffer->trace,
|
||||
groupCountX, groupCountY, groupCountZ);
|
||||
groupCountX, groupCountY, groupCountZ,
|
||||
pipeline->source_hash);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -789,7 +791,8 @@ genX(cmd_buffer_dispatch_indirect)(struct anv_cmd_buffer *cmd_buffer,
|
||||
|
||||
if (cmd_buffer->state.rt.debug_marker_count == 0) {
|
||||
trace_intel_end_compute_indirect(&cmd_buffer->trace,
|
||||
anv_address_utrace(indirect_addr));
|
||||
anv_address_utrace(indirect_addr),
|
||||
pipeline->source_hash);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1125,7 +1125,9 @@ void genX(CmdDraw)(
|
||||
|
||||
cmd_buffer_post_draw_wa(cmd_buffer, vertexCount, SEQUENTIAL);
|
||||
|
||||
trace_intel_end_draw(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw(&cmd_buffer->trace, count,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
|
||||
void genX(CmdDrawMultiEXT)(
|
||||
@@ -1180,7 +1182,9 @@ void genX(CmdDrawMultiEXT)(
|
||||
pVertexInfo[drawCount - 1].vertexCount,
|
||||
SEQUENTIAL);
|
||||
|
||||
trace_intel_end_draw_multi(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw_multi(&cmd_buffer->trace, count,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
#else
|
||||
vk_foreach_multi_draw(draw, i, pVertexInfo, drawCount, stride) {
|
||||
@@ -1214,7 +1218,9 @@ void genX(CmdDrawMultiEXT)(
|
||||
pVertexInfo[drawCount - 1].vertexCount,
|
||||
SEQUENTIAL);
|
||||
|
||||
trace_intel_end_draw_multi(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw_multi(&cmd_buffer->trace, count,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -1284,7 +1290,9 @@ void genX(CmdDrawIndexed)(
|
||||
|
||||
cmd_buffer_post_draw_wa(cmd_buffer, indexCount, RANDOM);
|
||||
|
||||
trace_intel_end_draw_indexed(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw_indexed(&cmd_buffer->trace, count,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
|
||||
void genX(CmdDrawMultiIndexedEXT)(
|
||||
@@ -1355,7 +1363,9 @@ void genX(CmdDrawMultiIndexedEXT)(
|
||||
pIndexInfo[drawCount - 1].indexCount,
|
||||
RANDOM);
|
||||
|
||||
trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
emitted = false;
|
||||
}
|
||||
} else {
|
||||
@@ -1393,7 +1403,9 @@ void genX(CmdDrawMultiIndexedEXT)(
|
||||
pIndexInfo[drawCount - 1].indexCount,
|
||||
RANDOM);
|
||||
|
||||
trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -1427,7 +1439,9 @@ void genX(CmdDrawMultiIndexedEXT)(
|
||||
pIndexInfo[drawCount - 1].indexCount,
|
||||
RANDOM);
|
||||
|
||||
trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -1464,7 +1478,9 @@ void genX(CmdDrawMultiIndexedEXT)(
|
||||
pIndexInfo[drawCount - 1].indexCount,
|
||||
RANDOM);
|
||||
|
||||
trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -1584,7 +1600,9 @@ void genX(CmdDrawIndirectByteCountEXT)(
|
||||
cmd_buffer_post_draw_wa(cmd_buffer, 1, SEQUENTIAL);
|
||||
|
||||
trace_intel_end_draw_indirect_byte_count(&cmd_buffer->trace,
|
||||
instanceCount * pipeline->instance_multiplier);
|
||||
instanceCount * pipeline->instance_multiplier,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1878,6 +1896,8 @@ void genX(CmdDrawIndirect)(
|
||||
{
|
||||
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
ANV_FROM_HANDLE(anv_buffer, buffer, _buffer);
|
||||
struct anv_graphics_pipeline *pipeline =
|
||||
anv_pipeline_to_graphics(cmd_buffer->state.gfx.base.pipeline);
|
||||
|
||||
if (anv_batch_has_error(&cmd_buffer->batch))
|
||||
return;
|
||||
@@ -1915,7 +1935,9 @@ void genX(CmdDrawIndirect)(
|
||||
stride, drawCount, false /* indexed */);
|
||||
}
|
||||
|
||||
trace_intel_end_draw_indirect(&cmd_buffer->trace, drawCount);
|
||||
trace_intel_end_draw_indirect(&cmd_buffer->trace, drawCount,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
|
||||
void genX(CmdDrawIndexedIndirect)(
|
||||
@@ -1927,6 +1949,8 @@ void genX(CmdDrawIndexedIndirect)(
|
||||
{
|
||||
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
ANV_FROM_HANDLE(anv_buffer, buffer, _buffer);
|
||||
struct anv_graphics_pipeline *pipeline =
|
||||
anv_pipeline_to_graphics(cmd_buffer->state.gfx.base.pipeline);
|
||||
|
||||
if (anv_batch_has_error(&cmd_buffer->batch))
|
||||
return;
|
||||
@@ -1964,7 +1988,9 @@ void genX(CmdDrawIndexedIndirect)(
|
||||
stride, drawCount, true /* indexed */);
|
||||
}
|
||||
|
||||
trace_intel_end_draw_indexed_indirect(&cmd_buffer->trace, drawCount);
|
||||
trace_intel_end_draw_indexed_indirect(&cmd_buffer->trace, drawCount,
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
|
||||
#define MI_PREDICATE_SRC0 0x2400
|
||||
@@ -2127,6 +2153,8 @@ void genX(CmdDrawIndirectCount)(
|
||||
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
ANV_FROM_HANDLE(anv_buffer, buffer, _buffer);
|
||||
ANV_FROM_HANDLE(anv_buffer, count_buffer, _countBuffer);
|
||||
struct anv_graphics_pipeline *pipeline =
|
||||
anv_pipeline_to_graphics(cmd_buffer->state.gfx.base.pipeline);
|
||||
|
||||
if (anv_batch_has_error(&cmd_buffer->batch))
|
||||
return;
|
||||
@@ -2169,7 +2197,9 @@ void genX(CmdDrawIndirectCount)(
|
||||
}
|
||||
|
||||
trace_intel_end_draw_indirect_count(&cmd_buffer->trace,
|
||||
anv_address_utrace(count_address));
|
||||
anv_address_utrace(count_address),
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
}
|
||||
|
||||
void genX(CmdDrawIndexedIndirectCount)(
|
||||
@@ -2184,6 +2214,8 @@ void genX(CmdDrawIndexedIndirectCount)(
|
||||
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
ANV_FROM_HANDLE(anv_buffer, buffer, _buffer);
|
||||
ANV_FROM_HANDLE(anv_buffer, count_buffer, _countBuffer);
|
||||
struct anv_graphics_pipeline *pipeline =
|
||||
anv_pipeline_to_graphics(cmd_buffer->state.gfx.base.pipeline);
|
||||
|
||||
if (anv_batch_has_error(&cmd_buffer->batch))
|
||||
return;
|
||||
@@ -2226,7 +2258,9 @@ void genX(CmdDrawIndexedIndirectCount)(
|
||||
}
|
||||
|
||||
trace_intel_end_draw_indexed_indirect_count(&cmd_buffer->trace,
|
||||
anv_address_utrace(count_address));
|
||||
anv_address_utrace(count_address),
|
||||
pipeline->base.source_hashes[MESA_SHADER_VERTEX],
|
||||
pipeline->base.source_hashes[MESA_SHADER_FRAGMENT]);
|
||||
|
||||
}
|
||||
|
||||
|
@@ -3609,7 +3609,7 @@ void genX(CmdDraw)(
|
||||
|
||||
update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, SEQUENTIAL);
|
||||
|
||||
trace_intel_end_draw(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw(&cmd_buffer->trace, count, 0, 0);
|
||||
}
|
||||
|
||||
void genX(CmdDrawMultiEXT)(
|
||||
@@ -3660,7 +3660,7 @@ void genX(CmdDrawMultiEXT)(
|
||||
|
||||
update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, SEQUENTIAL);
|
||||
|
||||
trace_intel_end_draw_multi(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw_multi(&cmd_buffer->trace, count, 0, 0);
|
||||
}
|
||||
|
||||
void genX(CmdDrawIndexed)(
|
||||
@@ -3715,7 +3715,7 @@ void genX(CmdDrawIndexed)(
|
||||
|
||||
update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, RANDOM);
|
||||
|
||||
trace_intel_end_draw_indexed(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw_indexed(&cmd_buffer->trace, count, 0, 0);
|
||||
}
|
||||
|
||||
void genX(CmdDrawMultiIndexedEXT)(
|
||||
@@ -3825,7 +3825,7 @@ void genX(CmdDrawMultiIndexedEXT)(
|
||||
|
||||
update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, RANDOM);
|
||||
|
||||
trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count);
|
||||
trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count, 0, 0);
|
||||
}
|
||||
|
||||
/* Auto-Draw / Indirect Registers */
|
||||
@@ -3906,7 +3906,7 @@ void genX(CmdDrawIndirectByteCountEXT)(
|
||||
update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, SEQUENTIAL);
|
||||
|
||||
trace_intel_end_draw_indirect_byte_count(&cmd_buffer->trace,
|
||||
instanceCount * pipeline->instance_multiplier);
|
||||
instanceCount * pipeline->instance_multiplier, 0, 0);
|
||||
#endif /* GFX_VERx10 >= 75 */
|
||||
}
|
||||
|
||||
@@ -4004,7 +4004,7 @@ void genX(CmdDrawIndirect)(
|
||||
offset += stride;
|
||||
}
|
||||
|
||||
trace_intel_end_draw_indirect(&cmd_buffer->trace, drawCount);
|
||||
trace_intel_end_draw_indirect(&cmd_buffer->trace, drawCount, 0, 0);
|
||||
}
|
||||
|
||||
void genX(CmdDrawIndexedIndirect)(
|
||||
@@ -4062,7 +4062,7 @@ void genX(CmdDrawIndexedIndirect)(
|
||||
offset += stride;
|
||||
}
|
||||
|
||||
trace_intel_end_draw_indexed_indirect(&cmd_buffer->trace, drawCount);
|
||||
trace_intel_end_draw_indexed_indirect(&cmd_buffer->trace, drawCount, 0, 0);
|
||||
}
|
||||
|
||||
static struct mi_value
|
||||
@@ -4233,7 +4233,7 @@ void genX(CmdDrawIndirectCount)(
|
||||
mi_value_unref(&b, max);
|
||||
|
||||
trace_intel_end_draw_indirect_count(&cmd_buffer->trace,
|
||||
anv_address_utrace(count_address));
|
||||
anv_address_utrace(count_address), 0, 0);
|
||||
}
|
||||
|
||||
void genX(CmdDrawIndexedIndirectCount)(
|
||||
@@ -4304,7 +4304,7 @@ void genX(CmdDrawIndexedIndirectCount)(
|
||||
mi_value_unref(&b, max);
|
||||
|
||||
trace_intel_end_draw_indexed_indirect_count(&cmd_buffer->trace,
|
||||
anv_address_utrace(count_address));
|
||||
anv_address_utrace(count_address), 0, 0);
|
||||
}
|
||||
|
||||
void genX(CmdBeginTransformFeedbackEXT)(
|
||||
@@ -4637,7 +4637,8 @@ void genX(CmdDispatchBase)(
|
||||
groupCountY, groupCountZ);
|
||||
|
||||
trace_intel_end_compute(&cmd_buffer->trace,
|
||||
groupCountX, groupCountY, groupCountZ);
|
||||
groupCountX, groupCountY, groupCountZ,
|
||||
0);
|
||||
}
|
||||
|
||||
#define GPGPU_DISPATCHDIMX 0x2500
|
||||
@@ -4745,8 +4746,7 @@ void genX(CmdDispatchIndirect)(
|
||||
#endif
|
||||
|
||||
emit_cs_walker(cmd_buffer, pipeline, true, prog_data, 0, 0, 0);
|
||||
|
||||
trace_intel_end_compute(&cmd_buffer->trace, 0, 0, 0);
|
||||
trace_intel_end_compute(&cmd_buffer->trace, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user