Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enabling texture floats in Mesa #24116

Closed
rnhmjoj opened this issue Mar 20, 2017 · 13 comments
Closed

enabling texture floats in Mesa #24116

rnhmjoj opened this issue Mar 20, 2017 · 13 comments

Comments

@rnhmjoj
Copy link
Contributor

rnhmjoj commented Mar 20, 2017

Issue description

The GL_ARB_texture_floats OpenGL extension is disabled by default in Mesa due to patent concern (US #6,650,327). Without texture floats the radeonsi drived is severely limited (OpenGL 2.1 vs 4.5).
It can be enabled with mesa_noglu.override { enableTextureFloats = true; } but this requires a significant amount of compiling on every update.

Other distros are already building mesa with it: arch linux and debian for example.
Can we enable it as well? What do you think?

@abbradar
Copy link
Member

At first glance this is risky but Debian usually is very scrict (and therefore a good indicator patent-wise) and yet they enable it. It's interesting to find out their reasoning -- maybe this is not as concerning as it soinds.

@vcunat
Copy link
Member

vcunat commented Mar 20, 2017

It's enough to override mesa_drivers; that way you won't need to recompile any reverse dependencies.

@rnhmjoj
Copy link
Contributor Author

rnhmjoj commented Mar 20, 2017

@vcunat, thanks. I did:

  mesa_drivers = (mesa_noglu.override {
    enableTextureFloats = true;
  }).drivers;

and nix only recompiled mesa. Anyway I think it can be quite confusing since users (myself included) expect the driver to be OpenGL 3.x or 4.x and texture floats don't look immediately related to this problem. See issue #12380.

@rnhmjoj
Copy link
Contributor Author

rnhmjoj commented Mar 20, 2017

Perhaps it should be mentioned here in the manual.

@vcunat
Copy link
Member

vcunat commented Mar 20, 2017

Better use mesa_drivers.override instead of mesa_noglu.override, as there could be other differences, e.g. grsecEnabled ATM. mesa_drivers is meant just as a build-time dependency for packages that need it.

@rnhmjoj
Copy link
Contributor Author

rnhmjoj commented Mar 20, 2017

I tried that first but apparently it's missing the override:

nix-repl> :l <nixpkgs>
Added 7224 variables.

nix-repl> mesa_drivers.override
error: attribute ‘override’ missing, at (string):1:1

@vcunat
Copy link
Member

vcunat commented Mar 20, 2017

Oh, I haven't realized that. Well, you can at least set grsecEnabled by hand in the override for now. (There's supposed to be some impact on speed somewhere.)

@vcunat
Copy link
Member

vcunat commented Mar 20, 2017

Personally I think we can allow (potentially) patented stuff even into the default drivers. Most users should be at no risk, especially within the EU. Note that in case of freetype we do include code with patent risks. With mesa we've been dragging the default for many years now, since ee08221.

But, to be sure, we already have hardware.opengl.s3tcSupport option so we can do it similarly. (Or perhaps generalize it to both/all mesa patent risks.)

@abbradar
Copy link
Member

Some background: a user reported a possible patent issue to Debian but it seem to be lost in the limbo. So there indeed may be some risk.

Given that Debian does this too (and they are much bigger than we) we may just enable this by default, but I can't assess the risk for U.S. users (I'm not one of them).

@vcunat
Copy link
Member

vcunat commented Mar 21, 2017

US/international companies are likely to be more cautious (and more at risk), especially if they don't plan to play games ;-)

@globin
Copy link
Member

globin commented Mar 21, 2017

If debian has it enabled by default I think we can and should, too.

@rnhmjoj
Copy link
Contributor Author

rnhmjoj commented Mar 21, 2017

@abbradar
enableTextureFloats = head (splitString "/" config.time.timeZone) != "America"; ?
;)

@globin
Copy link
Member

globin commented Mar 21, 2017

done in #24162

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants