@@ -20,6 +20,8 @@ static void printGPUResult(FFGPUOptions* options, uint8_t index, const FFGPUResu
2020 default : type = "Unknown" ; break ;
2121 }
2222
23+ FFPercentageTypeFlags percentType = options -> percent .type == 0 ? instance .config .display .percentType : options -> percent .type ;
24+
2325 if (options -> moduleArgs .outputFormat .length == 0 )
2426 {
2527 ffPrintLogoAndKey (FF_GPU_MODULE_NAME , index , & options -> moduleArgs , FF_PRINT_TYPE_DEFAULT );
@@ -53,16 +55,28 @@ static void printGPUResult(FFGPUOptions* options, uint8_t index, const FFGPUResu
5355 {
5456 ffStrbufAppendS (& output , " (" );
5557
56- if ( gpu -> dedicated . used != FF_GPU_VMEM_SIZE_UNSET )
58+ if (!( percentType & FF_PERCENTAGE_TYPE_HIDE_OTHERS_BIT ) )
5759 {
58- ffParseSize (gpu -> dedicated .used , & output );
59- ffStrbufAppendS (& output , " / " );
60+ if (gpu -> dedicated .used != FF_GPU_VMEM_SIZE_UNSET )
61+ {
62+ ffParseSize (gpu -> dedicated .used , & output );
63+ ffStrbufAppendS (& output , " / " );
64+ }
65+ ffParseSize (gpu -> dedicated .total , & output );
6066 }
61- ffParseSize (gpu -> dedicated .total , & output );
6267 if (gpu -> dedicated .used != FF_GPU_VMEM_SIZE_UNSET )
6368 {
64- ffStrbufAppendS (& output , ", " );
65- ffPercentAppendNum (& output , (double ) gpu -> dedicated .used / (double ) gpu -> dedicated .total * 100.0 , options -> percent , false, & options -> moduleArgs );
69+ double percent = (double ) gpu -> dedicated .used / (double ) gpu -> dedicated .total * 100.0 ;
70+ if (percentType & FF_PERCENTAGE_TYPE_NUM_BIT )
71+ {
72+ ffStrbufAppendS (& output , ", " );
73+ ffPercentAppendNum (& output , percent , options -> percent , false, & options -> moduleArgs );
74+ }
75+ if (percentType & FF_PERCENTAGE_TYPE_BAR_BIT )
76+ {
77+ ffStrbufAppendS (& output , " " );
78+ ffPercentAppendBar (& output , percent , options -> percent , & options -> moduleArgs );
79+ }
6680 }
6781 ffStrbufAppendC (& output , ')' );
6882 }
@@ -78,16 +92,47 @@ static void printGPUResult(FFGPUOptions* options, uint8_t index, const FFGPUResu
7892 ffTempsAppendNum (gpu -> temperature , & tempStr , options -> tempConfig , & options -> moduleArgs );
7993 FF_STRBUF_AUTO_DESTROY dTotal = ffStrbufCreate ();
8094 FF_STRBUF_AUTO_DESTROY dUsed = ffStrbufCreate ();
81- FF_STRBUF_AUTO_DESTROY sTotal = ffStrbufCreate ();
82- FF_STRBUF_AUTO_DESTROY sUsed = ffStrbufCreate ();
95+ FF_STRBUF_AUTO_DESTROY dPercentNum = ffStrbufCreate ();
96+ FF_STRBUF_AUTO_DESTROY dPercentBar = ffStrbufCreate ();
8397 if (gpu -> dedicated .total != FF_GPU_VMEM_SIZE_UNSET ) ffParseSize (gpu -> dedicated .total , & dTotal );
8498 if (gpu -> dedicated .used != FF_GPU_VMEM_SIZE_UNSET ) ffParseSize (gpu -> dedicated .used , & dUsed );
99+ if (gpu -> dedicated .total != FF_GPU_VMEM_SIZE_UNSET && gpu -> dedicated .used != FF_GPU_VMEM_SIZE_UNSET )
100+ {
101+ double percent = (double ) gpu -> dedicated .used / (double ) gpu -> dedicated .total * 100.0 ;
102+ if (percentType & FF_PERCENTAGE_TYPE_NUM_BIT )
103+ ffPercentAppendNum (& dPercentNum , percent , options -> percent , false, & options -> moduleArgs );
104+ if (percentType & FF_PERCENTAGE_TYPE_BAR_BIT )
105+ ffPercentAppendBar (& dPercentBar , percent , options -> percent , & options -> moduleArgs );
106+ }
107+
108+ FF_STRBUF_AUTO_DESTROY sTotal = ffStrbufCreate ();
109+ FF_STRBUF_AUTO_DESTROY sUsed = ffStrbufCreate ();
110+ FF_STRBUF_AUTO_DESTROY sPercentNum = ffStrbufCreate ();
111+ FF_STRBUF_AUTO_DESTROY sPercentBar = ffStrbufCreate ();
85112 if (gpu -> shared .total != FF_GPU_VMEM_SIZE_UNSET ) ffParseSize (gpu -> shared .total , & sTotal );
86113 if (gpu -> shared .used != FF_GPU_VMEM_SIZE_UNSET ) ffParseSize (gpu -> shared .used , & sUsed );
114+ if (gpu -> shared .total != FF_GPU_VMEM_SIZE_UNSET && gpu -> shared .used != FF_GPU_VMEM_SIZE_UNSET )
115+ {
116+ double percent = (double ) gpu -> shared .used / (double ) gpu -> shared .total * 100.0 ;
117+ if (percentType & FF_PERCENTAGE_TYPE_NUM_BIT )
118+ ffPercentAppendNum (& sPercentNum , percent , options -> percent , false, & options -> moduleArgs );
119+ if (percentType & FF_PERCENTAGE_TYPE_BAR_BIT )
120+ ffPercentAppendBar (& sPercentBar , percent , options -> percent , & options -> moduleArgs );
121+ }
87122
88123 FF_STRBUF_AUTO_DESTROY frequency = ffStrbufCreate ();
89124 ffParseFrequency (gpu -> frequency , & frequency );
90125
126+ FF_STRBUF_AUTO_DESTROY coreUsageNum = ffStrbufCreate ();
127+ FF_STRBUF_AUTO_DESTROY coreUsageBar = ffStrbufCreate ();
128+ if (gpu -> coreUsage == gpu -> coreUsage ) //FF_GPU_CORE_USAGE_UNSET
129+ {
130+ if (percentType & FF_PERCENTAGE_TYPE_NUM_BIT )
131+ ffPercentAppendNum (& coreUsageNum , gpu -> coreUsage , options -> percent , false, & options -> moduleArgs );
132+ if (percentType & FF_PERCENTAGE_TYPE_BAR_BIT )
133+ ffPercentAppendBar (& coreUsageBar , gpu -> coreUsage , options -> percent , & options -> moduleArgs );
134+ }
135+
91136 FF_PRINT_FORMAT_CHECKED (FF_GPU_MODULE_NAME , index , & options -> moduleArgs , FF_PRINT_TYPE_DEFAULT , ((FFformatarg []) {
92137 FF_FORMAT_ARG (gpu -> vendor , "vendor" ),
93138 FF_FORMAT_ARG (gpu -> name , "name" ),
@@ -102,6 +147,12 @@ static void printGPUResult(FFGPUOptions* options, uint8_t index, const FFGPUResu
102147 FF_FORMAT_ARG (gpu -> platformApi , "platform-api" ),
103148 FF_FORMAT_ARG (frequency , "frequency" ),
104149 FF_FORMAT_ARG (index , "index" ),
150+ FF_FORMAT_ARG (dPercentNum , "dedicated-percentage-num" ),
151+ FF_FORMAT_ARG (dPercentBar , "dedicated-percentage-bar" ),
152+ FF_FORMAT_ARG (sPercentNum , "shared-percentage-num" ),
153+ FF_FORMAT_ARG (sPercentBar , "shared-percentage-bar" ),
154+ FF_FORMAT_ARG (coreUsageNum , "core-usage-num" ),
155+ FF_FORMAT_ARG (coreUsageBar , "core-usage-bar" ),
105156 }));
106157 }
107158}
@@ -414,6 +465,12 @@ static FFModuleBaseInfo ffModuleInfo = {
414465 {"The platform API used when detecting the GPU" , "platform-api" },
415466 {"Current frequency in GHz" , "frequency" },
416467 {"GPU vendor specific index" , "index" },
468+ {"Dedicated memory usage percentage num" , "dedicated-percentage-num" },
469+ {"Dedicated memory usage percentage bar" , "dedicated-percentage-bar" },
470+ {"Shared memory usage percentage num" , "shared-percentage-num" },
471+ {"Shared memory usage percentage bar" , "shared-percentage-bar" },
472+ {"Core usage percentage num (supports Nvidia & Apple GPU only)" , "core-usage-num" },
473+ {"Core usage percentage bar (supports Nvidia & Apple GPU only)" , "core-usage-bar" },
417474 })),
418475};
419476
0 commit comments