#721835 [i965] [GM45] bogus rendering with gen4-5 intel chipsets

Package:
libgl1-mesa-dri
Source:
mesa
Description:
free implementation of the OpenGL API -- DRI modules
Submitter:
Guillem Jover
Date:
2019-09-26 19:57:08 UTC
Severity:
normal
#721835#5
Date:
2013-09-04 13:29:24 UTC
From:
To:
Hi!

This game is missrendering on my system. Attached is a screenshot, but
that does not show the "animation" with triangles coming and going.

I've tried disabling anything on the settings that might affect the
rendering but to no avail. I've also noticed that the program outputs
errors related to the object tessellation which I think might be relevant
here. My suspicion is that my hw (Intel GM45 / i915) does not provide
one of the OpenGL extensions and the software fallback code is buggy.
Here's the game output:

,--- program output ---
Check for Dialog-Program
Dialog Program kdialog found
Data dir entry
Browser initialized for history-functions
Player variables initialized
Use config-file: /home/guillem/.foobillardrc
Base-Configuration initialized
processing option 0=human
processing option 1=ai
processing option 2=guillem
processing option 3=Computer_1
processing option 5=Computer_1
processing option 10=Computer_1
processing option 13=off
processing option 14=7.000000
processing option 17=7.000000
processing option 19=on
processing option 20=0.000000
processing option 21=0.300000
processing option 22=v
processing option 23=on
processing option 25=m
processing option 26=192.168.1.1
processing option 27=56341
processing option 28=1024x768
processing option 30=firefox
processing option 31=off
processing option 32=off
processing option 33=128
processing option 34=off
processing option 35=off
processing option 36=off
processing option 37=off
processing option 38=match
processing option 39=off
processing option 40=30.000000
processing option 41=on
processing option 42=on
processing option 43=off
processing option 44=4
processing option 45=on
processing option 46=on
processing option 47=on
processing option 48=10
processing option 49=90
processing option 50=10
processing option 51=off
processing option 52=off
processing option 53=0.000000
processing option 54=on
processing option 55=off
processing option 56=on
processing option 57=0
processing option 58=on
processing option 59=1
processing option 60=en
Configuration processed
Language initialized
History system initialized
OpenGL context initialized
extension_cubemap_ARB=1
extension_multitexture_ARB=1
extension_combine_ARB: 1
extension_dot3_ARB: 1
extension_vp_ARB: 1
extension_ts_NV=0
extension_rc_NV=0
extension_vp_NV=0
options_multisample: 1
Anisotropic Filter 1.
Load 2D Graphics start
Graphics loaded and initialized
Create balls scene
Create table object
Initialize billiard table-frame
Initialize table-texture
Initialize clothing table texture
Initialize new table GL object
Generate furrow object
Generate lower upper furrow object
Generate some middle pocket triangles object
Generate lower left, lower right, upper right, upper left pocket triangles object
Generate left, right pocket triangles object
Generate left, right pocket fans triangles object
Generate pocket objects: Not carom: Call to build a table border
lower Call to build a table border
upper left Call to build a table border
upper right Call to build a table border
lower left Call to build a table border
lower right Call to build a table border

Generate diamonds border objects
Generate gold/silver edges and cover objects
Generate bumpers for gold/silver edges and covers
Generate side holes
Generate wood frame
Return the new table object
Create room object
Graphics loaded and initialized
Status-line initialized
Player initialized
Players text initialized
Game restart for the selected start-game
Mix_Init: Failed to init both ogg and mp3 support!
Check only for ogg.
Mix_Init: Mixer not built with MP3 support
Sound-system initialized
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Play sound-intro
Initialize default mesh-graphics
Initialize default Sofa object
Initialize default Chair object
Initialize default Table object
Initialize default Fireplace object
Initialize default ceiling-lamp object
Initialize fire object
load fireplace fire graphics
Create fire no: 0 of 14
Create fire no: 1 of 14
Create fire no: 2 of 14
Create fire no: 3 of 14
Create fire no: 4 of 14
Create fire no: 5 of 14
Create fire no: 6 of 14
Create fire no: 7 of 14
Create fire no: 8 of 14
Create fire no: 9 of 14
Create fire no: 10 of 14
Create fire no: 11 of 14
Create fire no: 12 of 14
Create fire no: 13 of 14
Initialize fire lists completed
Graphic meshes initialized
Run into game loop
`---

Thanks,
Guillem

#721835#10
Date:
2013-09-04 16:46:20 UTC
From:
To:
Control: tags -1 confirmed

thanks for your report. I can confirm your issue because I can reproduce
it on my Lenovo X200 laptop with an Mobile Intel GM45 Express Chipset too.

However the game works fine on my computer with a Geforce 9600 GT
(nouveau drivers) and another one with an AMD HD 6450 video card (radeon
drivers).

The author of foobillardplus is aware of the problem. He has already
mentioned it in his README file. Unfortunately I installed the file into
the wrong package (foobillard), so it was easy to miss. I'm aware of
this mishap and I will install the README to foobillardplus with the
next revision.

The Tessellation errors don't seem to be related because they also
appear here on my computer where foobillardplus works flawlessly. This
might be a different problem but at the moment I consider this output
simply as noise.

I have the same suspicion as you that the Intel GM45 chipset is not
capable of rendering all graphics because of missing OpenGL extensions.
I'm not sure yet whether this is a sole hardware problem or a driver issue.

Though Foobillardplus requires 100% OpenGL compatible graphic card
drivers. I'm inclined to clone this bug report and to reassign the clone
to xserver-xorg-video-intel. If the maintainers of the intel driver
confirm that this is rather a hardware issue than a driver issue, then
this bug should be marked as "wontfix". If it is a driver issue, then I
intend to keep this bug report open until a open source driver is
developed that fixes the issue.

I'm not so sure about the "software fallback code". In most
circumstances this means that users experience a very sluggish game and
in my opinion this isn't a real fix.

So in short: I believe this is an issue related to your video card and
it won't/can't be really fixed by the author of foobillardplus.

Regards,

Markus

#721835#19
Date:
2013-09-05 14:56:04 UTC
From:
To:
Hi all,
Ran into the same issues . This was the output on the CLI .
$ foobillardplus
Check for Dialog-Program
Dialog Program zenity found
Data dir entry
Browser initialized for history-functions
Player variables initialized
Use config-file: /home/shirish/.foobillardrc
Base-Configuration initialized
Configuration processed
Language initialized
History system initialized
OpenGL context initialized
extension_cubemap_ARB=1
extension_multitexture_ARB=1
extension_combine_ARB: 1
extension_dot3_ARB: 1
extension_vp_ARB: 1
extension_ts_NV=0
extension_rc_NV=0
extension_vp_NV=0
options_multisample: 1
Anisotropic Filter 1.
Load 2D Graphics start
Graphics loaded and initialized
Create balls scene
Create table object
Initialize billiard table-frame
Initialize table-texture
Initialize clothing table texture
Initialize new table GL object
Generate furrow object
Generate lower upper furrow object
Generate some middle pocket triangles object
Generate lower left, lower right, upper right, upper left pocket
triangles object
Generate left, right pocket triangles object
Generate left, right pocket fans triangles object
Generate pocket objects: Not carom: Call to build a table border
lower Call to build a table border
upper left Call to build a table border
upper right Call to build a table border
lower left Call to build a table border
lower right Call to build a table border

Generate diamonds border objects
Generate gold/silver edges and cover objects
Generate bumpers for gold/silver edges and covers
Generate side holes
Generate wood frame
Return the new table object
Create room object
Graphics loaded and initialized
Status-line initialized
Player initialized
Players text initialized
Game restart for the selected start-game
Mix_Init: Failed to init both ogg and mp3 support!
Check only for ogg.
Mix_Init: Mixer not built with MP3 support
Sound-system initialized
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Tessellation Error: gluTessBeginContour() must precede a gluTessEndContour()
Tessellation Error: gluTessEndContour() must follow a gluTessBeginContour()
Tessellation Error: need combine callback
Play sound-intro
Initialize default mesh-graphics
Initialize default Sofa object
Initialize default Chair object
Initialize default Table object
Initialize default Fireplace object
Initialize default ceiling-lamp object
Initialize fire object
load fireplace fire graphics
Create fire no: 0 of 14
Create fire no: 1 of 14
Create fire no: 2 of 14
Create fire no: 3 of 14
Create fire no: 4 of 14
Create fire no: 5 of 14
Create fire no: 6 of 14
Create fire no: 7 of 14
Create fire no: 8 of 14
Create fire no: 9 of 14
Create fire no: 10 of 14
Create fire no: 11 of 14
Create fire no: 12 of 14
Create fire no: 13 of 14
Initialize fire lists completed
Graphic meshes initialized
Run into game loop

The only diff. between Guillem screenshot and mine that it shows 70%
as the game has progressed.

@markus please share if you have cloned this bug report and assigned
it to xserver-xorg-intel. One way or the other we would know if it's
our hardware or the driver as an issue.

Mine is G33/G31 Express chipset.

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 82G33/G31 Express
Integrated Graphics Controller (rev 10)

#721835#24
Date:
2013-09-05 19:10:08 UTC
From:
To:
[...]

Hi shirish,

thanks for your additional information. However it appears to me that your card
supports only the OpenGL 1.4 spec.

https://de.wikipedia.org/wiki/Intel_GMA

I presume that means that it is even more unlikely for you to play the game because
the GM45 chipset of Guillem's card and mine supports OpenGL 2.1 at least.

I'm not sure yet to what package I should assign the clone. xserver-xorg-video-intel
provides the 2D support for your intel card whereas mesa is responsible for 3D and OpenGL
functionality. Just keep a look on this bug report and you won't miss anything.

Regards,

Markus

#721835#45
Date:
2013-12-01 11:55:42 UTC
From:
To:
notforwarded 721835
forwarded 721835 https://bugs.freedesktop.org/show_bug.cgi?id=72172
reassign 721835 libgl1-mesa-dri
retitle 721835 [i965] [GM45] bogus rendering with gen4-5 intel chipsets
found 721835 9.2.2-1
affects 721835 foobillardplus
tags 721835 upstream
thanks

I forwarded the bug report to the developer of Foobillard++. So far he
couldn't find a solution on his side. I think this is a bug in Mesa,
respectively the dri component of the i965 driver, since AMD and Nvidia
based cards with the radeon and nouveau open source drivers work fine.

The game also works with Gallium0.4 on llvmpipe aka software rendering.
If you start Foobillard++ with

LIBGL_ALWAYS_SOFTWARE=1 foobillardplus

you should be able to play the game but this will cause a high CPU load
and will result in a sluggish game play. I don't recommend that.

I have reported this bug to Mesa upstream at

https://bugs.freedesktop.org/show_bug.cgi?id=72172

It seems this bug occurs with generation 4 and 5 intel chipsets but not
with the latest ivybridge generation. I will keep an eye on the
discussion upstream and on this bug report.

Regards,

Markus

#721835#50
Date:
2014-01-21 18:42:47 UTC
From:
To:
found 721835 10.0.1-1
thanks

Mesa 10 from experimental doesn't help.

Elimar

#721835#57
Date:
2014-01-21 18:57:57 UTC
From:
To:
foobillard 3.0a-5 from stable runs fine here in both mesa9 and
mesa10.

Elimar

#721835#62
Date:
2016-10-15 12:38:36 UTC
From:
To:
Dear Customer,

We could not deliver your item.
Delivery Label is attached to this email.

Yours trully,
Nicholas Leonard,
Station Manager.

#721835#67
Date:
2016-10-19 14:55:35 UTC
From:
To:
Dear Customer,

We could not deliver your parcel.
Shipment Label is attached to email.

Kind regards,
Clifford Turner,
FedEx Operation Manager.

#721835#72
Date:
2016-10-28 11:49:12 UTC
From:
To:
Dear Customer,

We could not deliver your parcel.
Please, open email attachment to print shipment label.

Sincerely,
Warren Rogers,
FedEx Support Manager.

#721835#77
Date:
2016-10-29 12:56:10 UTC
From:
To:
Dear Customer,

This is to confirm that one or more of your parcels has been shipped.
Shipment Label is attached to email.

Sincerely,
Gerald Mcfarland,
Delivery Manager.

#721835#82
Date:
2016-11-03 13:03:32 UTC
From:
To:
Dear Customer,

We could not deliver your parcel.
Delivery Label is attached to this email.

Sincerely,
Miguel Mcallister,
FedEx Station Manager.

#721835#87
Date:
2016-11-04 02:55:20 UTC
From:
To:
Dear Customer,

Courier was unable to deliver the parcel to you.
Shipment Label is attached to email.

Thanks and best regards,
Roger Wade,
FedEx Delivery Manager.