title: GLSL precision in fragment shader
body: <p>I have a texture declared as follows:</p>
  
  <pre><code>    glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA16F, win.width, win.height, 0,GL_RGBA, GL_FLOAT, 0);
  </code></pre>
  
  <p>I want to dump z-buffer values in color channels,
  I do it with the following fragment shader:</p>
  
  <pre><code>#version 330
  precision highp float;
  layout(location = 0) out vec4 color_out;
  
  void main()
  {
  float z = gl_FragCoord.z;
  color_out = vec4(z,z,z, 0); 
  }
  </code></pre>
  
  <p>Unfortunately I have a high loss of precision between Z buffer values I read with glreadpixel and ones i get dumped into my texture color channels, any idea why ?</p>
  
  <p>here are the values I expect:</p>
  
  <pre><code>depth value 0.996680 : at pixel 274300 
  depth value 0.996690 : at pixel 274301 
  depth value 0.996701 : at pixel 274302 
  depth value 0.996712 : at pixel 274303 
  depth value 0.996722 : at pixel 274304 
  depth value 0.996733 : at pixel 274305 
  depth value 0.996743 : at pixel 274306 
  </code></pre>
  
  <p>here is what I get:</p>
  
  <pre><code>color 0.996078 : at pixel 274300 
  color 0.996078 : at pixel 274301 
  color 0.996078 : at pixel 274302 
  color 0.996078 : at pixel 274303 
  color 0.996078 : at pixel 274304 
  color 0.996078 : at pixel 274305 
  color 0.996078 : at pixel 274306
  </code></pre>