Bug 1035757

Summary: Please rebuild irrlicht with _IRR_MATERIAL_MAX_TEXTURES_ set to 8
Product: [Fedora] Fedora Reporter: Hans de Goede <hdegoede>
Component: irrlichtAssignee: Tom "spot" Callaway <tcallawa>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: hdegoede, ignatenko, kevin, tcallawa
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: irrlicht-1.8.1-2.fc19 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-09 07:44:57 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1035278, 1035756    
Attachments:
Description Flags
0001-Change-_IRR_MATERIAL_MAX_TEXTURES_-to-8-RHBZ-1035757.patch
none
0001-Change-_IRR_MATERIAL_MAX_TEXTURES_-to-8-RHBZ-1035757.patch none

Description Hans de Goede 2013-11-28 11:50:26 UTC
Please rebuild irrlicht with _IRR_MATERIAL_MAX_TEXTURES_ set to 8, this is needed for the new 0.8.1 supertuxkart release (and maybe also fixes some issues with current supertuxkart 0.8).

The new supertuxkart-0.8.1 contains this check, especially for distros like Fedora which like to use
systemlibs :)   :

/* Build-time check that the Irrlicht we're building against works for us.
 * Should help prevent distros building against an incompatible library.
 */

#if IRRLICHT_VERSION_MAJOR < 1 || IRRLICHT_VERSION_MINOR < 7 || \
    _IRR_MATERIAL_MAX_TEXTURES_ < 8 || !defined(_IRR_COMPILE_WITH_OPENGL_) || \
    !defined(_IRR_COMPILE_WITH_B3D_LOADER_)
#error "Building against an incompatible Irrlicht. Distros, please use the included version."
#endif

Comment 1 Hans de Goede 2013-11-28 11:53:24 UTC
p.s.

I've checked the irrlicht public headers and changing this define does not change the ABI. So it should be just a matter of a rebuild.

I see you've just build 1.8.1 for rawhide, should we also update f19 / f20 to 1.8.1 while at it?

If you want me to I can take care of doing this.

Comment 2 Igor Gnatenko 2013-11-28 12:12:48 UTC
upstream has rejected this patch IIRC :( because reduce performance on proprietary drivers NVIDIA mwhaha.

+1 from me for fixing this.

Comment 3 Igor Gnatenko 2013-11-28 13:32:20 UTC
Created attachment 830237 [details]
0001-Change-_IRR_MATERIAL_MAX_TEXTURES_-to-8-RHBZ-1035757.patch

Comment 4 Igor Gnatenko 2013-11-28 13:33:57 UTC
Created attachment 830239 [details]
0001-Change-_IRR_MATERIAL_MAX_TEXTURES_-to-8-RHBZ-1035757.patch

use git am

Comment 5 Igor Gnatenko 2013-12-11 20:12:48 UTC
Hans, could you commit this to irrlicht, because seems Tom busy ?

Comment 6 Tom "spot" Callaway 2013-12-11 20:32:44 UTC
While I am busy, I'm a little concerned about forking from upstream here.

Comment 7 Igor Gnatenko 2013-12-11 20:43:13 UTC
(In reply to Tom "spot" Callaway from comment #6)
> While I am busy, I'm a little concerned about forking from upstream here.

No forking. Some enhancement ;)

Comment 8 Tom "spot" Callaway 2013-12-11 20:45:56 UTC
If upstream will not take a patch, for us to carry it is a fork.

Comment 9 Hans de Goede 2013-12-12 18:30:40 UTC
Hi Tom,

(In reply to Tom "spot" Callaway from comment #6)
> While I am busy, I'm a little concerned about forking from upstream here.

I understand, note I've been unable to find much of a discussion with upstream about why they don't want to change the default.

As for forking, well not really, it is in a variable for user configurable settings we would just be deviating from upstreams default for that setting, and it should not effect any apps which are not actually using that many textures, it just raises the maximum an app can use.

We really need this for supertuxkart, which by default uses a bundled irrlicht with this setting changed, and I assume the supertuxkart developers have run the necessary tests with the new setting, they don't do releases very often, so when they do they do tend to make sure everything is tested well, to avoid needing to do another (bugfix) release soon after,

Also supertuxkart is one of irrlichts main consumers in Fedora, next too SolarModel that is. Other then that there seem to be no other serious users of irrlicht.

If it is ok with you I would really like to bump _IRR_MATERIAL_MAX_TEXTURES_ to 8. I can do a local build with this and run some tests to confirm that SolarModel still works before moving forward with doing a build in koji.

Regards,

Hans

Comment 10 Tom "spot" Callaway 2013-12-13 14:36:46 UTC
Okay, that makes sense, I'll just go ahead and apply the change.

Comment 11 Fedora Update System 2013-12-30 17:58:21 UTC
irrlicht-1.8.1-2.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/irrlicht-1.8.1-2.fc19

Comment 12 Fedora Update System 2013-12-30 17:58:32 UTC
irrlicht-1.8.1-2.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/irrlicht-1.8.1-2.fc20

Comment 13 Fedora Update System 2013-12-31 09:51:05 UTC
Package irrlicht-1.8.1-2.fc19:
* should fix your issue,
* was pushed to the Fedora 19 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing irrlicht-1.8.1-2.fc19'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-24157/irrlicht-1.8.1-2.fc19
then log in and leave karma (feedback).

Comment 14 Fedora Update System 2014-01-09 07:44:57 UTC
irrlicht-1.8.1-2.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2014-02-03 02:41:13 UTC
irrlicht-1.8.1-2.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 16 Kevin Kofler 2014-02-03 16:37:42 UTC
Oops, bumping the configuration option didn't change the ABI, but upgrading from 1.8 to 1.8.1 apparently did:
supertuxkart: Symbol `_ZN3irr5video16IdentityMaterialE' has different size in shared object, consider re-linking
Irrlicht Engine version 1.8.1
[snip]
[IrrDriver Temp Logger] Level 2: Warning: The library version of the Irrlicht Engine (1.8.1) does not match the version the application was compiled with (1.8.0). This may cause problems.
[snip]
Segmentation fault

And by the way, there's also this warning:
!!!!! Performance warning: Irrlicht compiled with debug mode.!!!!!
!!!!! This can have a significant performance impact         !!!!!

Comment 17 Kevin Kofler 2014-02-03 16:41:24 UTC
Actually, "Symbol `_ZN3irr5video16IdentityMaterialE' has different size in shared object, consider re-linking" IS an ABI change from the changed _IRR_MATERIAL_MAX_TEXTURES_ parameter.

In any case, SuperTuxKart needs to be rebuilt, in fact, probably ALL users of Irrlicht.

Comment 18 Kevin Kofler 2014-02-03 16:48:57 UTC
The segfault happens in irr::scene::CMeshSceneNode::copyMaterials(), so it's almost certainly a result of this ABI change.

Comment 19 Kevin Kofler 2014-02-03 17:04:27 UTC
I see a SuperTuxKart update was pushed for Fedora 20, I reopened the bug asking for an update for Fedora 19 now:
https://bugzilla.redhat.com/show_bug.cgi?id=1035756#c7