1# Pass this file to Valgrind with "--suppressions=tools/valgrind.supp"
2
3# Intentional thread / memory leak in DM.
4{
5   dm_keepalive_thread_leak
6   Memcheck:Leak
7   match-leak-kinds: possible
8   ...
9   fun:_ZN8SkThreadC1EPFvPvES0_
10   ...
11   fun:_Z7dm_mainv
12   fun:main
13}
14
15# Third party lib, driver issues.
16{
17    ati_driver_bug_1
18    Memcheck:Param
19    ioctl(generic)
20    fun:ioctl
21    ...
22    obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so
23}
24{
25    ati_driver_bug_2
26    Memcheck:Cond
27    obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so
28}
29{
30    ati_driver_bug_3
31    Memcheck:Addr8
32    ...
33    obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so
34}
35{
36    ati_driver_bug_4
37    Memcheck:Addr4
38    ...
39    obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so
40}
41{
42    ati_driver_bug_5
43    Memcheck:Addr2
44    ...
45    obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so
46}
47{
48    ati_driver_bug_6
49    Memcheck:Addr1
50    ...
51    obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so
52}
53{
54    ati_driver_bug_7
55    Memcheck:Leak
56    fun:malloc
57    obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so
58}
59{
60    driver_bug_8
61    Memcheck:Overlap
62    fun:strcpy
63    obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so
64}
65{
66    ati_driver_bug_9
67    Memcheck:Leak
68    fun:calloc
69    obj:/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so
70}
71{
72    ati_driver_bug_10
73    Memcheck:Leak
74    fun:malloc
75    obj:/usr/lib/fglrx/fglrx-libGL.so.1.2
76}
77{
78    nv_driver_bug_1
79    Memcheck:Param
80    write(buf)
81    ...
82    obj:*/libnvidia-glcore.so*
83}
84{
85    nv_driver_bug_2
86    Memcheck:Cond
87    ...
88    obj:*/libnvidia-glcore.so*
89}
90{
91    nv_driver_bug_3
92    Memcheck:Leak
93    fun:calloc
94    obj:/usr/lib*/libGL.so*
95}
96{
97    #Fixed by FontConfig 2.9.0
98    #http://cgit.freedesktop.org/fontconfig/commit/?id=1c475d5c8cb265ac939d6b9e097666e300162511
99    font_config_bug_1
100    Memcheck:Addr4
101    fun:FcConfigFileExists
102}
103{
104    #https://bugs.freedesktop.org/show_bug.cgi?id=8215
105    #https://bugs.freedesktop.org/show_bug.cgi?id=8428
106    #FcPattern uses 'intptr_t elts_offset' instead of 'FcPatternEltPtr elts',
107    #which confuses valgrind.
108    font_config_bug_2
109    Memcheck:Leak
110    fun:*alloc
111    ...
112    fun:Fc*Add*
113}
114{
115    #Same root cause as font_config_bug_2.
116    #The 'leak' here is a copy of rule values, as opposed to new values.
117    font_config_bug_3
118    Memcheck:Leak
119    fun:*alloc
120    ...
121    fun:FcConfigValues
122    fun:FcConfigSubstituteWithPat
123    fun:FcFontRenderPrepare
124}
125{
126    #Same root cause as font_config_bug_2.
127    #The 'leak' is copies of font or pattern values into returned pattern values.
128    font_config_bug_4
129    Memcheck:Leak
130    fun:*alloc
131    ...
132    fun:FcValue*
133    fun:FcFontRenderPrepare
134}
135{
136    zlib_bug_1
137    Memcheck:Cond
138    fun:inflateReset2
139    fun:inflateInit2_
140    fun:png_create_read_struct_2
141    fun:png_create_read_struct
142}
143{
144    zlib_bug_2
145    Memcheck:Cond
146    fun:inflateReset2
147    fun:inflateInit2_
148    fun:_ZN12_GLOBAL__N_17doFlateEbP8SkStreamP9SkWStream
149    fun:_ZN7SkFlate7InflateEP8SkStreamP9SkWStream
150}
151
152# Why is it OK to suppress this?
153{
154    SkRTConfRegistry_bug_1
155    Memcheck:Leak
156    fun:_Znwm
157    fun:_ZN16SkRTConfRegistry12registerConfEP12SkRTConfBase
158}
159
160# The gpu_issue_* suppressions suppress issues that cannot be reproduced locally. These appear to be
161# due to valgrind not knowing about memory mapped by the ATI driver via glMapBuffer.
162{
163    gpu_issue_1
164    Memcheck:Addr2
165    fun:_ZNK5GrGpu18getQuadIndexBufferEv
166}
167{
168    gpu_issue_2
169    Memcheck:Addr2
170    fun:_ZN24GrAAHairLinePathRenderer6CreateEP9GrContext
171}
172{
173    gpu_issue_3
174    Memcheck:Addr2
175    fun:_ZN16GrAARectRenderer21aaFillRectIndexBufferEP5GrGpu
176}
177{
178    gpu_issue_4
179    Memcheck:Addr8
180    fun:_ZN24GrAAHairLinePathRenderer14createLineGeomERK6SkPathP12GrDrawTargetRK8SkTArrayI7SkPointLb1EEiPNS3_19AutoReleaseGeometryEP6SkRect
181}
182{
183    gpu_issue_5
184    Memcheck:Addr8
185    fun:_ZN21GrDefaultPathRenderer10createGeomERK6SkPathRK11SkStrokeRecfP12GrDrawTargetP15GrPrimitiveTypePiSA_PNS6_19AutoReleaseGeometryE
186}
187{
188    gpu_issue_6
189    Memcheck:Addr8
190    fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK11SkStrokeRecP12GrDrawTargetb
191}
192{
193    gpu_issue_7
194    Memcheck:Addr4
195    fun:_ZNK7SkPoint24distanceToLineBetweenSqdERKS_S1_PNS_4SideE
196    fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK11SkStrokeRecP12GrDrawTargetb
197}
198{
199    gpu_issue_8
200    Memcheck:Addr4
201    fun:_ZN24GrAAHairLinePathRenderer14createLineGeomERK6SkPathP12GrDrawTargetRK8SkTArrayI7SkPointLb1EEiPNS3_19AutoReleaseGeometryEP6SkRect
202}
203{
204    gpu_issue_9
205    Memcheck:Addr2
206    fun:_ZN21GrDefaultPathRenderer10createGeomERK6SkPathRK11SkStrokeRecfP12GrDrawTargetP15GrPrimitiveTypePiSA_PNS6_19AutoReleaseGeometryE
207}
208{
209    gpu_issue_10
210    Memcheck:Addr4
211    fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK11SkStrokeRecP12GrDrawTargetb
212}
213{
214    gpu_issue_11
215    Memcheck:Addr2
216    fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK11SkStrokeRecP12GrDrawTargetb
217}
218{
219    gpu_issue_12
220    Memcheck:Addr8
221    fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK6SkPathRK11SkStrokeRecP12GrDrawTargetb
222}
223{
224    gpu_issue_13
225    Memcheck:Addr4
226    fun:_ZNK7SkPoint24distanceToLineBetweenSqdERKS_S1_PNS_4SideE
227    fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK6SkPathRK11SkStrokeRecP12GrDrawTargetb
228}
229{
230    gpu_issue_14
231    Memcheck:Addr4
232    fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK6SkPathRK11SkStrokeRecP12GrDrawTargetb
233}
234{
235    gpu_issue_15
236    Memcheck:Addr2
237    fun:_ZN22GrAAConvexPathRenderer10onDrawPathERK6SkPathRK11SkStrokeRecP12GrDrawTargetb
238}
239