mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-05 08:52:36 +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 {
|
enum class AjmStatisticsFlags : u64 {
|
||||||
Memory = 1 << 0,
|
Memory = 1 << 0,
|
||||||
|
EnginePerCodec = 1 << 15,
|
||||||
Engine = 1 << 16,
|
Engine = 1 << 16,
|
||||||
};
|
};
|
||||||
DECLARE_ENUM_FLAG_OPERATORS(AjmStatisticsFlags)
|
DECLARE_ENUM_FLAG_OPERATORS(AjmStatisticsFlags)
|
||||||
@ -145,19 +146,25 @@ union AjmSidebandInitParameters {
|
|||||||
u8 reserved[8];
|
u8 reserved[8];
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct {
|
struct AjmSidebandStatisticsEngine {
|
||||||
float usage_batch;
|
float usage_batch;
|
||||||
float usage_interval[3];
|
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 instance_free;
|
||||||
u32 buffer_free;
|
u32 buffer_free;
|
||||||
u32 batch_size;
|
u32 batch_size;
|
||||||
u32 input_size;
|
u32 input_size;
|
||||||
u32 output_size;
|
u32 output_size;
|
||||||
u32 small_size;
|
u32 small_size;
|
||||||
} AjmSidebandStatisticsMemory;
|
};
|
||||||
|
|
||||||
struct AjmSidebandStatisticsEngineParameters {
|
struct AjmSidebandStatisticsEngineParameters {
|
||||||
u32 interval_count;
|
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 = &output_batch.Consume<AjmSidebandStatisticsEngine>();
|
||||||
*job.output.p_engine = 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)) {
|
if (True(flags.statistics_flags & AjmStatisticsFlags::Memory)) {
|
||||||
job.output.p_memory = &output_batch.Consume<AjmSidebandStatisticsMemory>();
|
job.output.p_memory = &output_batch.Consume<AjmSidebandStatisticsMemory>();
|
||||||
*job.output.p_memory = AjmSidebandStatisticsMemory{};
|
*job.output.p_memory = AjmSidebandStatisticsMemory{};
|
||||||
|
@ -34,6 +34,7 @@ struct AjmJob {
|
|||||||
AjmSidebandStream* p_stream = nullptr;
|
AjmSidebandStream* p_stream = nullptr;
|
||||||
AjmSidebandFormat* p_format = nullptr;
|
AjmSidebandFormat* p_format = nullptr;
|
||||||
AjmSidebandStatisticsMemory* p_memory = nullptr;
|
AjmSidebandStatisticsMemory* p_memory = nullptr;
|
||||||
|
AjmSidebandStatisticsEnginePerCodec* p_engine_per_codec = nullptr;
|
||||||
AjmSidebandStatisticsEngine* p_engine = nullptr;
|
AjmSidebandStatisticsEngine* p_engine = nullptr;
|
||||||
AjmSidebandGaplessDecode* p_gapless_decode = nullptr;
|
AjmSidebandGaplessDecode* p_gapless_decode = nullptr;
|
||||||
AjmSidebandMFrame* p_mframe = nullptr;
|
AjmSidebandMFrame* p_mframe = nullptr;
|
||||||
|
@ -14,6 +14,11 @@ void AjmInstanceStatistics::ExecuteJob(AjmJob& job) {
|
|||||||
job.output.p_engine->usage_interval[idx] = 0.01;
|
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) {
|
if (job.output.p_memory) {
|
||||||
job.output.p_memory->instance_free = 0x400000;
|
job.output.p_memory->instance_free = 0x400000;
|
||||||
job.output.p_memory->buffer_free = 0x400000;
|
job.output.p_memory->buffer_free = 0x400000;
|
||||||
|
Loading…
Reference in New Issue
Block a user