73 User::LeaveIfError(iAlfClient.Connect()); |
73 User::LeaveIfError(iAlfClient.Connect()); |
74 } |
74 } |
75 iLowOnMemWgs.Reset(); |
75 iLowOnMemWgs.Reset(); |
76 RArray<TInt> inactiveSurfaces; |
76 RArray<TInt> inactiveSurfaces; |
77 |
77 |
78 User::LeaveIfError(iAlfClient.GetListOfInactiveWindowGroupsWSurfaces(&inactiveSurfaces)); |
78 // ignore possible errors, we have information from profiling extension anyway |
79 User::LeaveIfError(iAlfClient.GetListOfWindowGroupsWSurfaces(&iLowOnMemWgs)); |
79 iAlfClient.GetListOfInactiveWindowGroupsWSurfaces(&inactiveSurfaces); |
|
80 iAlfClient.GetListOfWindowGroupsWSurfaces(&iLowOnMemWgs); |
80 |
81 |
81 TRACES1("Inactive surfaces count %d", inactiveSurfaces.Count()); |
82 TRACES1("Inactive surfaces count %d", inactiveSurfaces.Count()); |
82 TRACES1("Windowgroups w/ surfaces count %d", iLowOnMemWgs.Count()); |
83 TRACES1("Windowgroups w/ surfaces count %d", iLowOnMemWgs.Count()); |
83 |
84 |
84 RArray<TUint64> processIds; |
85 RArray<TUint64> processIds; |
85 RArray<TUint> privMemUsed; |
86 RArray<TUint> privMemUsed; |
86 RArray<TUint64> sparedProcessIds; |
87 RArray<TUint64> sparedProcessIds; |
87 |
88 |
88 //if (inactiveSurfaces.Count() == 1) // ALF only |
89 //if (inactiveSurfaces.Count() == 1) // ALF only |
89 // { |
90 // { |
90 NOK_resource_profiling eglQueryProfilingData = (NOK_resource_profiling)eglGetProcAddress("eglQueryProfilingDataNOK"); |
91 NOK_resource_profiling eglQueryProfilingData = (NOK_resource_profiling)eglGetProcAddress("eglQueryProfilingDataNOK"); |
91 |
92 |
92 if (!eglQueryProfilingData) |
93 if (!eglQueryProfilingData && inactiveSurfaces.Count() == 0) |
93 { |
94 { |
94 TRACES("RefreshL EGL_NOK_resource_profiling not available"); |
95 TRACES("RefreshL EGL_NOK_resource_profiling not available"); |
95 return; |
96 return; |
96 } |
97 } |
97 |
98 |
|
99 if (eglQueryProfilingData) |
|
100 { |
98 EGLint data_count; |
101 EGLint data_count; |
99 EGLint* prof_data; |
102 EGLint* prof_data; |
100 TInt i(0); |
103 TInt i(0); |
101 |
104 |
102 EGLDisplay dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); |
105 EGLDisplay dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); |
200 TRACES("Only WServ using GFX mem, no need for app actions"); |
203 TRACES("Only WServ using GFX mem, no need for app actions"); |
201 return; |
204 return; |
202 } |
205 } |
203 } |
206 } |
204 } |
207 } |
205 // } |
208 } |
206 |
209 |
207 // Refresh window group list |
210 // Refresh window group list |
208 // get all window groups, with info about parents |
211 // get all window groups, with info about parents |
209 TInt numGroups = iWs.NumWindowGroups(); |
212 TInt numGroups = iWs.NumWindowGroups(); |
210 iWgIds.ReserveL(numGroups); |
213 iWgIds.ReserveL(numGroups); |