-
Notifications
You must be signed in to change notification settings - Fork 46
/
dx12_gpa_sample.h
52 lines (42 loc) · 1.77 KB
/
dx12_gpa_sample.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//==============================================================================
// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved.
/// @author AMD Developer Tools Team
/// @file
/// @brief DX12 GPA Sample Header
//==============================================================================
#ifndef GPU_PERF_API_DX12_DX12_GPA_SAMPLE_H_
#define GPU_PERF_API_DX12_DX12_GPA_SAMPLE_H_
#include "gpu_perf_api_common/gpa_sample.h"
/// @brief Class for DX12 Specific sample.
class Dx12GpaSample : public GpaSample
{
public:
/// @brief Constructor.
///
/// @param [in] pass GPA Pass object.
/// @param [in] cmd_list GPA command list.
/// @param [in] sample_type GPA sample type.
/// @param [in] sample_id User supplied sample id.
Dx12GpaSample(GpaPass* pass, IGpaCommandList* cmd_list, GpaSampleType sample_type, ClientSampleId sample_id);
/// @copydoc GpaSample::UpdateResults()
bool UpdateResults() override final;
/// @copydoc GpaSample::BeginRequest()
bool BeginRequest() override final;
/// @copydoc GpaSample::EndRequest()
bool EndRequest() override final;
/// @copydoc GpaSample::ReleaseCounters()
void ReleaseCounters() override final;
private:
/// @brief Populates the sample result.
///
/// @return The result of the sample.
GpaSampleResult* PopulateSampleResult();
/// @brief Returns the result from the driver.
///
/// @param [in] sample_data_size Size of result for the sample in bytes.
/// @param [in, out] result_buffer Pointer to the buffer where result will be copied.
///
/// @return True if copying of data was successful otherwise false.
bool CopyResult(size_t sample_data_size, void* result_buffer) const;
};
#endif // GPU_PERF_API_DX12_DX12_GPA_SAMPLE_H_