<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [SNB+]Piglit/spec_ARB_shader_texture_lod_execution_tex-miplevel-selection_*ProjGradARB_3D fails"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=81405#c6">Comment # 6</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [SNB+]Piglit/spec_ARB_shader_texture_lod_execution_tex-miplevel-selection_*ProjGradARB_3D fails"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=81405">bug 81405</a>
              from <span class="vcard"><a class="email" href="mailto:itoral@igalia.com" title="Iago Toral <itoral@igalia.com>"> <span class="fn">Iago Toral</span></a>
</span></b>
        <pre>Fixed in piglit with:

commit 181c26495634ba1a5603b4b75c47e2dee7c97c0f
Author: Iago Toral Quiroga <<a href="mailto:itoral@igalia.com">itoral@igalia.com</a>>
Date:   Wed Mar 11 08:25:24 2015 +0100

    tex-miplevel-selection: Fix textureProj failures due to precision errors

    The textureProj tests multiply expected texture coordinates by the
projector
    in advance so that when the driver does the division we obtain the same
    coordinates. However, the division can lead to small rounding errors that
    can affect the selected layer and fail the tests. This is currently
happening
    on Intel hardware for all projector tests involving 3D textures.

    When we test a 3D texture for texture level 0 we have 32 layers, which
    means that each layer takes 1/32 = 0.03125 space in the [0, 1] texture
    coordinate space. The test uses 0.5 for the Z coordinate, which is exactly
    the boundary between layers 15 and 16 (16 * 0.03125 = 0.5). Because we
    first multiply 0.5 by the projector in CPU and then we divide the
coordinate
    by the driver in the GPU, the result may be subject to rounding/precision
    errors and if the result of this operation is even slighly smaller than 0.5
    the hardware will select layer 15 instead of layer 16, leading to the
    test failures we currently see, at least on Intel hardware, for all piglit
    tests that involve textureProj with 3D textures.

    The patch prevents this rounding from affecting the result of the test by
    using 0.51 as the target texture coordinates instead of 0.5. Because 0.51
    is 0.01 into layer 16, we are giving a small room for rounding/precision
    errors that won't lead the hardware to select a different layer.

    This fixes all projector tests on Intel hardware:
    bin/tex-miplevel-selection *ProjGradARB 3D -fbo -auto
    bin/tex-miplevel-selection *ProjLod 3D -fbo -auto
    bin/tex-miplevel-selection textureProj 3D -fbo -auto
    bin/tex-miplevel-selection textureProjGrad 3D -fbo -auto
    bin/tex-miplevel-selection textureProjGradOffset 3D -fbo -auto
    bin/tex-miplevel-selection textureProjOffset 3D -fbo -auto
    bin/tex-miplevel-selection "textureProj(bias)" 3D -fbo -auto
    bin/tex-miplevel-selection "textureProjOffset(bias)" 3D -fbo -auto

    Bugzilla: <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [SNB+]Piglit/spec_ARB_shader_texture_lod_execution_tex-miplevel-selection_*ProjGradARB_3D fails"
   href="show_bug.cgi?id=81405">https://bugs.freedesktop.org/show_bug.cgi?id=81405</a></pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>