Am 09.03.2016 um 23:51 schrieb Ian Romanick: > On 03/09/2016 02:25 AM, tournier.elie wrote: >> Hi everyone. >> >> My name is Elie TOURNIER, I am enrolled in a French Engineering school >> (Telecom Physique Strasbourg) specialized in Medical ICT. >> I'm interested in implementing "Soft" double precision floating point >> support [1]. >> Taking this subject seem to be a good way to get my feet wet in the Mesa >> code and discover how some of its components works. >> >> I come to you in order to become know but also to retrieve valuable >> information for the success of this project. >> >> I would like to know more about the following things to understand your >> requirements : >> 1- "/Each double precision value would be stored in a uvec2/" The IEEE >> double precision floating point standard representation requires a 64 >> bit: 1 for sign, 11 for exponent and the others for fraction [2]. >> -> How double precision value must be stored? > > As Emil mentioned, on GLSL 1.30, a uvec2 consists of two, 32-bit > unsigned integers. Each double precision value would be stored in a uvec2. > >> 2- Where can I find |GL_ARB_gpu_shader_fp64 |documentation|? >> | >> >> >> This is my first exposure to Mesa. Please excuse me if I am asking basic >> questions. > > For this particular project, you wouldn't need Mesa at all for quite > some time. All of the initial project should be done in "raw" GLSL > 1.30, and any OpenGL implementation capable of GLSL 1.30 can be used. > You would implement (and test!) a library of functions like 'uvec2 > addDouble(uvec2 a, uvec2 b)' that would provide all of the required > double precision operations. > > The set of required functions should be pretty small. I think: > > - add > - negate > - absolute value > - multiply > - reciprocal > - convert to single precision > - convert from single precision > - pow (maybe?) > - exp (maybe?) > - log (maybe?)
I don't think you need exp/log. At least glsl dosen't require it, though the project isn't clear about it. (pow all hw I know of with exactly one exception (that would be intel graphics...) implements it as log2/mul/exp2 even for f32 anyway). I think though you need sqrt (or rsqrt). And some functions for rounding, plus comparison operations. Maybe min/max too (albeit if you have comparisons you can emulate them of course). Roland > > I think everything else could be implemented using those functions. > > Like I mentioned in the project description, there are quite a few > existing C implementations of these functions. Finding one of those > that you can understand and that has a compatible license is probably > the best place to start. > >> Please point me to the right resources so that I can better understand >> the project. I would also be happy to fix a bug to familiarize myself >> with the source code. Any suggestions on bugs that are relevant to the >> project will be of great help. >> >> Regards, >> Elie >> >> [1] >> http://www.x.org/wiki/SummerOfCodeIdeas/#softdoubleprecisionfloatingpointsupport >> [2] http://steve.hollasch.net/cgindex/coding/ieeefloat.html#storage >> >> PS: If you have any questions, please don't hesitate to contact me. >> >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev