mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-05 00:42:48 +00:00
fixed typedefs, added per codec statistics
This commit is contained in:
parent
f7a34b3bc6
commit
f952b3c1b4
@ -76,6 +76,7 @@ union AjmJobFlags {
|
||||
|
||||
enum class AjmStatisticsFlags : u64 {
|
||||
Memory = 1 << 0,
|
||||
EnginePerCodec = 1 << 15,
|
||||
Engine = 1 << 16,
|
||||
};
|
||||
DECLARE_ENUM_FLAG_OPERATORS(AjmStatisticsFlags)
|
||||
@ -145,19 +146,25 @@ union AjmSidebandInitParameters {
|
||||
u8 reserved[8];
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
struct AjmSidebandStatisticsEngine {
|
||||
float usage_batch;
|
||||
float usage_interval[3];
|
||||
} AjmSidebandStatisticsEngine;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
struct AjmSidebandStatisticsEnginePerCodec {
|
||||
u8 codec_count;
|
||||
u8 codec_id[3];
|
||||
float codec_percentage[3];
|
||||
};
|
||||
|
||||
struct AjmSidebandStatisticsMemory {
|
||||
u32 instance_free;
|
||||
u32 buffer_free;
|
||||
u32 batch_size;
|
||||
u32 input_size;
|
||||
u32 output_size;
|
||||
u32 small_size;
|
||||
} AjmSidebandStatisticsMemory;
|
||||
};
|
||||
|
||||
struct AjmSidebandStatisticsEngineParameters {
|
||||
u32 interval_count;
|
||||
|
@ -183,6 +183,11 @@ AjmJob AjmStatisticsJobFromBatchBuffer(u32 instance_id, AjmBatchBuffer batch_buf
|
||||
job.output.p_engine = &output_batch.Consume<AjmSidebandStatisticsEngine>();
|
||||
*job.output.p_engine = AjmSidebandStatisticsEngine{};
|
||||
}
|
||||
if (True(flags.statistics_flags & AjmStatisticsFlags::EnginePerCodec)) {
|
||||
job.output.p_engine_per_codec =
|
||||
&output_batch.Consume<AjmSidebandStatisticsEnginePerCodec>();
|
||||
*job.output.p_engine_per_codec = AjmSidebandStatisticsEnginePerCodec{};
|
||||
}
|
||||
if (True(flags.statistics_flags & AjmStatisticsFlags::Memory)) {
|
||||
job.output.p_memory = &output_batch.Consume<AjmSidebandStatisticsMemory>();
|
||||
*job.output.p_memory = AjmSidebandStatisticsMemory{};
|
||||
|
@ -34,6 +34,7 @@ struct AjmJob {
|
||||
AjmSidebandStream* p_stream = nullptr;
|
||||
AjmSidebandFormat* p_format = nullptr;
|
||||
AjmSidebandStatisticsMemory* p_memory = nullptr;
|
||||
AjmSidebandStatisticsEnginePerCodec* p_engine_per_codec = nullptr;
|
||||
AjmSidebandStatisticsEngine* p_engine = nullptr;
|
||||
AjmSidebandGaplessDecode* p_gapless_decode = nullptr;
|
||||
AjmSidebandMFrame* p_mframe = nullptr;
|
||||
|
@ -14,6 +14,11 @@ void AjmInstanceStatistics::ExecuteJob(AjmJob& job) {
|
||||
job.output.p_engine->usage_interval[idx] = 0.01;
|
||||
}
|
||||
}
|
||||
if (job.output.p_engine_per_codec) {
|
||||
job.output.p_engine_per_codec->codec_count = 1;
|
||||
job.output.p_engine_per_codec->codec_id[0] = static_cast<u8>(AjmCodecType::At9Dec);
|
||||
job.output.p_engine_per_codec->codec_percentage[0] = 0.01;
|
||||
}
|
||||
if (job.output.p_memory) {
|
||||
job.output.p_memory->instance_free = 0x400000;
|
||||
job.output.p_memory->buffer_free = 0x400000;
|
||||
|
Loading…
Reference in New Issue
Block a user