aqlprofile API: _start() sets buffers sizes with NULL ptr; block counters reg number / block name info

Change-Id: I3cb93453b683c55bf5ec26271648232306a5d140
Αυτή η υποβολή περιλαμβάνεται σε:
Evgeny
2017-11-07 12:10:54 -06:00
υποβλήθηκε από Evgeny Shcherbakov
γονέας d93f92f42d
υποβολή 3daa85fad8
2 αρχεία άλλαξαν με 18 προσθήκες και 6 διαγραφές
@@ -764,7 +764,7 @@ hsa_status_t hsa_ven_amd_aqlprofile_validate_event(
}
hsa_status_t hsa_ven_amd_aqlprofile_start(
const hsa_ven_amd_aqlprofile_profile_t* profile, // [in] profile contex object
hsa_ven_amd_aqlprofile_profile_t* profile, // [in/out] profile contex object
hsa_ext_amd_aql_pm4_packet_t* aql_start_packet) // [out] profile start AQL packet
{
return core::Runtime::runtime_singleton_->extensions_.aqlprofile_api.hsa_ven_amd_aqlprofile_start_fn(profile, aql_start_packet);
@@ -188,11 +188,14 @@ typedef struct {
hsa_signal_t completion_signal;
} hsa_ext_amd_aql_pm4_packet_t;
// Method to populate the provided AQL packet with profiling start commands
// Method to populate the provided AQL packet with profiling start commands.
// Only 'pm4_command' fields of the packet are set and the application
// is responsible to set Vendor Specific header type a completion signal
// is responsible to set Vendor Specific header type a completion signal.
// PMC profile command_buffer and output_buffer size fields are set to actual
// values if the buffers ptr is NULL.
// SQTT profile command_buffer size field is set to actual value.
hsa_status_t hsa_ven_amd_aqlprofile_start(
const hsa_ven_amd_aqlprofile_profile_t* profile, // [in] profile contex object
hsa_ven_amd_aqlprofile_profile_t* profile, // [in/out] profile contex object
hsa_ext_amd_aql_pm4_packet_t* aql_start_packet); // [out] profile start AQL packet
// Method to populate the provided AQL packet with profiling stop commands
@@ -227,14 +230,23 @@ typedef struct {
};
} hsa_ven_amd_aqlprofile_info_data_t;
// ID query
typedef struct {
const char* name;
uint32_t id;
uint32_t instances;
} hsa_ven_amd_aqlprofile_id_query_t;
// Profile attributes
typedef enum {
HSA_VEN_AMD_AQLPROFILE_INFO_COMMAND_BUFFER_SIZE = 0, // get_info returns uint32_t value
HSA_VEN_AMD_AQLPROFILE_INFO_PMC_DATA_SIZE = 1, // get_info returns uint32_t value
HSA_VEN_AMD_AQLPROFILE_INFO_PMC_DATA = 2, // get_info returns PMC uint64_t value
// in info_data object
HSA_VEN_AMD_AQLPROFILE_INFO_SQTT_DATA = 3 // get_info returns SQTT buffer ptr/size
HSA_VEN_AMD_AQLPROFILE_INFO_SQTT_DATA = 3, // get_info returns SQTT buffer ptr/size
// in info_data object
HSA_VEN_AMD_AQLPROFILE_INFO_BLOCK_COUNTERS = 4, // number of block counters
HSA_VEN_AMD_AQLPROFILE_INFO_BLOCK_ID = 5, // block id by name
} hsa_ven_amd_aqlprofile_info_type_t;
// Definition of output data iterator callback
@@ -277,7 +289,7 @@ typedef struct hsa_ven_amd_aqlprofile_1_00_pfn_s {
bool* result);
hsa_status_t (*hsa_ven_amd_aqlprofile_start)(
const hsa_ven_amd_aqlprofile_profile_t* profile,
hsa_ven_amd_aqlprofile_profile_t* profile,
hsa_ext_amd_aql_pm4_packet_t* aql_start_packet);
hsa_status_t (*hsa_ven_amd_aqlprofile_stop)(