MIR for s2tc, required by various games

Bug #1053065 reported by Bryce Harrington
52
This bug affects 24 people
Affects Status Importance Assigned to Milestone
s2tc (Debian)
Fix Released
Unknown
s2tc (Ubuntu)
Fix Released
Undecided
Didier Roche-Tolomelli

Bug Description

[Availability]
The package is already in Ubuntu universe and builds for all architectures:
    [FULLYBUILT] amd64
    [FULLYBUILT] armel
    [FULLYBUILT] armhf
    [FULLYBUILT] i386
    [FULLYBUILT] powerpc

[Rationale]
As documented in bug #1053029, the s2tc library provides texture functionality required by a range of commercial games, yet must be manually installed by users.

As a high level goal we wish to make Ubuntu a stronger platform for gaming in general, including commercial games. Including this package in main will address an issue that inhibits a number of games from "just working".

[Security]
* No CVEs found for s2tc
* No secunia advisories for s2tc
* No executables have suid or sgid bits
* No executables installed to /sbin or /usr/sbin
* No daemons
* No privileged ports are opened
* No add-ons or plugins to security-sensitive software
  (Although the package itself is an extension to mesa for use by 3D gfx applications)

[Quality Assurance]
* No configuration or documentation is required following installation
* There are no debconf questions
* The package is well maintained in Debian
* No bug reports are open against this package in Ubuntu
    https://bugs.launchpad.net/ubuntu/+source/s2tc
* No bug reports are open against this package in Debian
    http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=s2tc
* There are no known major outstanding issues that make the program unusable
* The package does not require exotic hardware
* A basic test suite is included in the package, however it requires network access (it downloads jpgs from various game sites)
* A debian/watch file is included but there are no upstream release tags

[UI Standards]
* No UI, it's a library

[Dependencies]
* mesa-common-dev (main) satisfies all build dependencies
* No unusual run time dependencies

[Standards compliance]
* Meets FHS and Debian Policy standards

[Maintenance]
* Development is complete, so maintenance work is very light.
* Expecting this package will just be kept in sync with Debian.

[Background Information]
This package provides a patent-free implementation of the S3TC lossy texture compression algorithms for mesa. These algorithms are designed to be well-suited for compressing textures in hardware-accelerated 3D computer graphics. S3TC is included in Microsoft's DirectX 6.0 and OpenGL 1.3 (via the GL_EXT_texture_compression_s3tc extension) and widely used in closed source 3D applications. This has presented an obstacle for open source implementations and for running of certain ported closed source applications on FOSS distributions.

References:
 * http://en.wikipedia.org/wiki/S3_Texture_Compression
 * http://dri.freedesktop.org/wiki/S3TC
 * http://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt

Bryce Harrington (bryce)
description: updated
Michael Terry (mterry)
Changed in s2tc (Ubuntu):
assignee: nobody → Didier Roche (didrocks)
Bryce Harrington (bryce)
description: updated
Revision history for this message
Oibaf (oibaf) wrote :

See also bug 823062.

Revision history for this message
Bryce Harrington (bryce) wrote :

Oibaf, thanks for the link. Strange, I had searched *hard* for an existing bug report but found nothing in launchpad.

We had considered using libtxn-dxtc0 which would be a more generic solution but the games in question appear to be asking for s2tc specifically:

<Sarvatt> should be libtxc-dxtn0, so people can actually use the patent encumbered one if they want? :P libtxc-dxtn-s2tc0 provides libtxc-dxtn0
<bryceh> not a bad idea
<Sarvatt> except the humble games require libtxc-dxtn-s2tc0 so cant install it at the same time as those anyway :(
<bryceh> hrm
<RAOF> The humble bundle explicitly depend on libtxc-dxtn-s2tc0?
<Sarvatt> bastion does at least
<RAOF> Sarvatt: Is there any particular reason why someone would want the patent-encumbered one?
<Sarvatt> haven't heard of any complaints about s2tc, but the description of how it gets around the patent makes it sound like the patented one might be preferred
<Sarvatt> http://en.wikipedia.org/wiki/S2TC
<Sarvatt> better to stick with what we have i guess after thinking about it, not like libtxc-dxtn0 will be going into debian/ubuntu and the provides might end up getting dropped one day
<bryceh> ok

I will dupe 823062 here if you don't mind.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in s2tc (Ubuntu):
status: New → Confirmed
Changed in s2tc (Debian):
status: Unknown → New
Revision history for this message
Lennart Weller (lhw) wrote : Re: [Bug 1053065] Re: MIR for s2tc, required by various games

The quality loss[1] due to the patented bit combinations is negligible
in my opinion. Thats the main reason why I have not tried to add
libtxc-dxtn-s3tc to debian yet. If Bastion and other HIB games actually
depend on s2tc they might have used the s2tc texture compressor which
would actually result in no quality loss at all.
I have the package for s3tc floating around but due to the risky nature
I haven't uploaded it yet. Though I have to say that there is currently
more than one package in debian main which uses s3tc decompression
algorithms ([2] and [3]). So it is not that unlikely that the package
would be accepted.

[1] https://github.com/divVerent/s2tc/wiki/QualityComparison
[2] http://lists.debian.org/debian-legal/2010/12/msg00062.html
[3] http://lists.debian.org/debian-legal/2012/03/msg00095.html

Am 19.09.2012 22:24, schrieb Bryce Harrington:
> Oibaf, thanks for the link. Strange, I had searched *hard* for an
> existing bug report but found nothing in launchpad.
>
> We had considered using libtxn-dxtc0 which would be a more generic
> solution but the games in question appear to be asking for s2tc
> specifically:
>
> <Sarvatt> should be libtxc-dxtn0, so people can actually use the patent encumbered one if they want? :P libtxc-dxtn-s2tc0 provides libtxc-dxtn0
> <bryceh> not a bad idea
> <Sarvatt> except the humble games require libtxc-dxtn-s2tc0 so cant install it at the same time as those anyway :(
> <bryceh> hrm
> <RAOF> The humble bundle explicitly depend on libtxc-dxtn-s2tc0?
> <Sarvatt> bastion does at least
> <RAOF> Sarvatt: Is there any particular reason why someone would want the patent-encumbered one?
> <Sarvatt> haven't heard of any complaints about s2tc, but the description of how it gets around the patent makes it sound like the patented one might be preferred
> <Sarvatt> http://en.wikipedia.org/wiki/S2TC
> <Sarvatt> better to stick with what we have i guess after thinking about it, not like libtxc-dxtn0 will be going into debian/ubuntu and the provides might end up getting dropped one day
> <bryceh> ok
>
> I will dupe 823062 here if you don't mind.
>

Revision history for this message
Bryce Harrington (bryce) wrote :

Lennart, thanks for your comments.

Yes, near as I can tell the s2tc package seems adequate to satisfy users expressed needs. It couldn't hurt to also have s3tc as an alternative if we see some definitive or measurable benefits, but sounds like there isn't data on hand at the moment to support that. In any case, even if we'd do that we'd still want s2tc in main as an alternative.

Didier, I see this has been assigned to you to review? Do you have any comments or reservations about this before adding it to main? I assume it will wait until after beta2 is out, which is fine.

Revision history for this message
Ernst Persson (ernstp) wrote :

Xonotic has corrupted textures when I have s2tc installed, but not when none or s3tc is installed.

Revision history for this message
Bryce Harrington (bryce) wrote :

Ernst, bug #?

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

Bryce, therere are few things that needs to be cleared of:

""general, including commercial games. Including this package in main will address an issue that inhibits a number of games from "just working"."".
What's the goal for having this library in main? The packages from the Inidie humble bundle will dep on it, and so install it when needed, isn't it? How is that preventing commercial games for Ubuntu?
You maybe mean not packaged application, and so you want to install s2tc by default, not just seed it in supported?
Please clarify.

* A basic test suite is included in the package, however it requires network access (it downloads jpgs from various game sites)
Can we have a test debtag then, so that the test suite is run in our QA datacenter?

* on the package itself, the patch debian/patches/01-library-rename.patch is renaming the library for the dynamic linking object:
-s2tc_compress_LDADD = -ltxc_dxtn
-s2tc_decompress_LDADD = -ltxc_dxtn
+s2tc_compress_LDADD = -ltxc_dxtn_s2tc
+s2tc_decompress_LDADD = -ltxc_dxtn_s2tc
So, I guess the game has to be explicitely recompile against our version. The "not packaged application" is then not addressed. I do not see why this library won't just be a dep on the game then (and don't need main promotion). Even if I do see we are using an alternative for it (but multiarched)

* just a nitpick: would be nice to have debian/copyright corresponding to latest DEP5.

Other than that, the packaging and code seems good to me.

Revision history for this message
Lennart Weller (lhw) wrote :

Am 24.09.2012 08:12, schrieb Didier Roche:
> Bryce, therere are few things that needs to be cleared of:
>
> ""general, including commercial games. Including this package in main will address an issue that inhibits a number of games from "just working"."".
> What's the goal for having this library in main? The packages from the Inidie humble bundle will dep on it, and so install it when needed, isn't it? How is that preventing commercial games for Ubuntu?
> You maybe mean not packaged application, and so you want to install s2tc by default, not just seed it in supported?
> Please clarify.

Many games come as self-extracting archives which don't really have
dependency-resolving capabilities. That is pretty much the only reason.
All other kind of packages could simply put in a recommendation for the
package.

> * on the package itself, the patch debian/patches/01-library-rename.patch is renaming the library for the dynamic linking object:
> -s2tc_compress_LDADD = -ltxc_dxtn
> -s2tc_decompress_LDADD = -ltxc_dxtn
> +s2tc_compress_LDADD = -ltxc_dxtn_s2tc
> +s2tc_decompress_LDADD = -ltxc_dxtn_s2tc
> So, I guess the game has to be explicitely recompile against our version. The "not packaged application" is then not addressed. I do not see why this library won't just be a dep on the game then (and don't need main promotion). Even if I do see we are using an alternative for it (but multiarched)

This is actually part of the modular s3tc interface. The library is also
available as libtxc_dxtn via update-alternatives. And no application is
linking against this library either way. This is a module which is
loaded by mesa not by the application itself. Games can improve the
texture quality if they used the s2tc toolkit to compress their textures
but s3tc compressed textures will also work through the compability
functionallity of s2tc.

> * just a nitpick: would be nice to have debian/copyright corresponding
> to latest DEP5.

The package is slightly older than the stable standard but should adhere
to all specifications. So the format version can simply be changed.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

Thanks for the explanation. Sounds sensible to me :)

@bryce: What's the plan then? installing it by default? adding a recommends in one of the seed to get it on the CD?

Revision history for this message
Bryce Harrington (bryce) wrote :

On Mon, Sep 24, 2012 at 11:02:22AM -0000, Didier Roche wrote:
> Thanks for the explanation. Sounds sensible to me :)

Thanks as well Lennart.

I'll add a note that while this will benefit a number of the Humble Indy
Bundle games, the origin of this particular request is for the benefit
of another (non-Indy) game manufacturer when running on Intel graphics.
And we anticipate more to come.

> @bryce: What's the plan then? installing it by default? adding a
> recommends in one of the seed to get it on the CD?

It will be a Recommends from mesa's libgl1-mesa-glx. I've uploaded the
change (see LP: #1053029) so it should be good to go once approved.

Revision history for this message
Lennart Weller (lhw) wrote :

Am 21.09.2012 22:19, schrieb Ernst Sjöstrand:
> Xonotic has corrupted textures when I have s2tc installed, but not when
> none or s3tc is installed.
>

I just tested Xonotic which is Quake engine based with radeon r600g and
I can't find any texture corruptions in the game when s2tc is available.
http://i.imgur.com/az7qI.jpg
http://i.imgur.com/t85uw.png
Maybe your texture packs are corrupted but it's unlikely that s2tc is
the cause of your problems.

Revision history for this message
Ernst Persson (ernstp) wrote :

Hi,

they skyboxes are corrupted for me with s2tc:
http://i.imgur.com/AziG1.jpg
Here's after removing .../libtxc-dxtn-s2tc0_0~git20110809-2.1_amd64.deb
http://i.imgur.com/zlwhB.jpg

I filed an issue about it here: http://dev.xonotic.org/issues/1291

Revision history for this message
Bryce Harrington (bryce) wrote :

Ernst, you mentioned you're using the "bleeding edge radeon drivers"; does this mean you're using a driver version different from what we ship in the distro? What version are you using and where did you get it? It might be helpful if you would post a full bug report with logs and so on.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

Erns: please continue the discussion in another bug report, as Bryce noted.

Ok, all concerned are raised. I'm promoting right now s2tc to main. Please upload the recommends Bryce. Thanks! :)

Changed in s2tc (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

s2tc 0~git20110809-3 in quantal: universe/libs -> main
libtxc-dxtn-s2tc-bin 0~git20110809-3 in quantal amd64: universe/misc/extra -> main
libtxc-dxtn-s2tc-bin 0~git20110809-3 in quantal armel: universe/misc/extra -> main
libtxc-dxtn-s2tc-bin 0~git20110809-3 in quantal armhf: universe/misc/extra -> main
libtxc-dxtn-s2tc-bin 0~git20110809-3 in quantal i386: universe/misc/extra -> main
libtxc-dxtn-s2tc-bin 0~git20110809-3 in quantal powerpc: universe/misc/extra -> main
libtxc-dxtn-s2tc-dev 0~git20110809-3 in quantal amd64: universe/libdevel/extra -> main
libtxc-dxtn-s2tc-dev 0~git20110809-3 in quantal armel: universe/libdevel/extra -> main
libtxc-dxtn-s2tc-dev 0~git20110809-3 in quantal armhf: universe/libdevel/extra -> main
libtxc-dxtn-s2tc-dev 0~git20110809-3 in quantal i386: universe/libdevel/extra -> main
libtxc-dxtn-s2tc-dev 0~git20110809-3 in quantal powerpc: universe/libdevel/extra -> main
libtxc-dxtn-s2tc0 0~git20110809-3 in quantal amd64: universe/libs/extra -> main
libtxc-dxtn-s2tc0 0~git20110809-3 in quantal armel: universe/libs/extra -> main
libtxc-dxtn-s2tc0 0~git20110809-3 in quantal armhf: universe/libs/extra -> main
libtxc-dxtn-s2tc0 0~git20110809-3 in quantal i386: universe/libs/extra -> main
libtxc-dxtn-s2tc0 0~git20110809-3 in quantal powerpc: universe/libs/extra -> main

Changed in s2tc (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Bryce Harrington (bryce) wrote :

Thanks; recommends is uploaded.

Changed in s2tc (Debian):
status: New → Fix Committed
Changed in s2tc (Debian):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.