[Mesa-dev] [RFC 00/11] GL_ARB_gpu_shader_fp64
Emil Velikov
emil.l.velikov at gmail.com
Mon Mar 6 11:26:57 UTC 2017
On 6 March 2017 at 08:34, Michel Dänzer <michel at daenzer.net> wrote:
> On 04/03/17 05:32 AM, Jason Ekstrand wrote:
>> On Fri, Mar 3, 2017 at 11:41 AM, Ilia Mirkin <imirkin at alum.mit.edu
>> <mailto:imirkin at alum.mit.edu>> wrote:
>>
>> On Fri, Mar 3, 2017 at 2:16 PM, Jason Ekstrand <jason at jlekstrand.net
>> <mailto:jason at jlekstrand.net>> wrote:
>> > Hey Elie!
>> >
>> > On Fri, Mar 3, 2017 at 8:22 AM, Elie Tournier <tournier.elie at gmail.com <mailto:tournier.elie at gmail.com>>
>> > wrote:
>> >>
>> >> From: Elie Tournier <elie.tournier at collabora.com <mailto:elie.tournier at collabora.com>>
>> >>
>> >> This series is based on Ian's work about GL_ARB_gpu_shader_int64 [1].
>> >> The goal is to expose GL_ARB_shader_fp64 to OpenGL 3.0 GPUs.
>> >>
>> >> Each function can be independently tested using shader_runner from piglit.
>> >> The piglit files are stored on github [2].
>> >>
>> >> [1]
>> >> https://lists.freedesktop.org/archives/mesa-dev/2016-November/136718.html
>> <https://lists.freedesktop.org/archives/mesa-dev/2016-November/136718.html>
>> >> [2] https://github.com/Hopetech/libSoftFloat
>> <https://github.com/Hopetech/libSoftFloat>
>> >
>> >
>> > Glad to see this finally turning into code.
>> >
>> > Before, we get too far into things, I'd like to talk about the approach a
>> > bit. First off, if we (Intel) are going to use this on any hardware, we
>> > would really like it to be in NIR. The reason for this is that NIR has a
>> > much more powerful algebraic optimizer than GLSL IR and we would like to
>> > have as few fp64 instructions as possible before we start lowering them to
>> > piles of integer math. I believe Ian's plan for this was that someone would
>> > write a nir_builder back-end for the stand-alone compiler. Unfortunately,
>> > he sort-of left that as "an exercise to the reader" and no code exists to my
>> > knowledge. If we're going to write things in GLSL, we really need that NIR
>> > back-end.
>>
>> I'm not sure what the impetus was for developing a softfloat library
>> (but I'm a big fan). but the current situation is that it will largely
>> just be useful for AMD Evergreen/Northern Islands chips, which consume
>> TGSI produced from GLSL. (Aside: [1].) As such, I'm not sure if a push
>> towards NIR is warranted -- it would cause a more convoluted path
>> towards the intended target.
>>
>>
>> Whether or not i965 wants softfloat is an ongoing debate. On the one
>> hand, we have "hardware support" for it starting with ivy bridge. On
>> the other hand, early hardware support is sufficiently terrible that
>> softfloat may end up being a better plan. Also, I wouldn't be surprised
>> if, at some point in the future, some hardware engineer decides they can
>> save a bunch of power on low-power parts if they delete the fp64
>> hardware. Since we ship desktop GL on those parts, loosing 4.0 would be
>> bad. I don't want to paint ourselves into a corner on fp64.
>
> Doing it in NIR would make it useless for r600. What's your suggestion
> for that?
>
How about we allows drivers to opt-in for this ? There's already a
bunch in gl_shader_compiler_options that we toggle.
This will allow Elie's work to land and be [at least partially] useful
in the interim.
-Emil
More information about the mesa-dev
mailing list