<div dir="ltr">It's come to my attention that Mesa's handling of GL_TEXTURE_BASE_LEVEL and GL_TEXTURE_MAX_LEVEL in glTexParameter and glGetTexParameter may be incorrect. The issue happens with the following sequence:<div>



<br></div><div><div style="font-family:arial,sans-serif;font-size:13px">glTexStorage2D(GL_TEXTURE_2D, 4, GL_RGBA8, 128, 128);</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">



glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 5);</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">glGetTexParameter(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, &n);</div>



<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">The key question is: What is the value of n?</div><div style="font-family:arial,sans-serif;font-size:13px">



<br></div><div style="font-family:arial,sans-serif;font-size:13px">Right now, the Mesa driver will clamp the glTexParameter call to the range 0 .. 3 (as specified by the TexStorage call) and n = 3 after the GetTexParameter call. However, the value returned on the Intel Windows driver and NVIDIA's Linux driver return 5. This has apparently been discussed among Kronos members in bug: 9342 (<a href="https://cvs.khronos.org/bugzilla/show_bug.cgi?id=9342" target="_blank">https://cvs.khronos.org/bugzilla/show_bug.cgi?id=9342</a>) which I don't have visibility of.</div>


<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">To match that behavior the texture object will likely need two BaseLevel and MaxLevel attributes. One that's clamped and used locally and the other that simply holds the set value as given by the application in the glTexParameter call.</div>

</div><div><br></div><div style>Thoughts?</div><div style><br></div><div style>Courtney</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Dec 3, 2013 at 4:30 PM, Courtney Goeltzenleuchter <span dir="ltr"><<a href="mailto:courtney@lunarg.com" target="_blank">courtney@lunarg.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Tue, Dec 3, 2013 at 4:28 PM, Brian Paul <span dir="ltr"><<a href="mailto:brianp@vmware.com" target="_blank">brianp@vmware.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On 12/03/2013 02:56 PM, Courtney Goeltzenleuchter wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
Hi Brian,<br>
<br>
I've made all the recommended changes.<br>
<br>
I also added one, a test that the Driver.TextureView != NULL before<br>
calling. This lets me test the non DD functionality with the<br>
MESA_EXTENSION_OVERRIDE=+GL_<u></u>ARB_texture_view<br>
<br>
I've also rebased to latest master (no changes required). Whole stream<br>
can be found at:<br>
<a href="https://github.com/courtney-lunarg/mesa/tree/texture_view-rc6" target="_blank">https://github.com/courtney-<u></u>lunarg/mesa/tree/texture_view-<u></u>rc6</a><br></div>
<<a href="https://urldefense.proofpoint.com/v1/url?u=https://github.com/courtney-lunarg/mesa/tree/texture_view-rc6&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=lGQMzzTgII0I7jefp2FHq7WtZ%2BTLs8wadB%2BiIj9xpBY%3D%0A&m=StSJ4O%2Fa%2B9Zp%2FeTtJIDzJ1NxrKtDXrENaO%2FoFA9gY1k%3D%0A&s=0439e3fc50d195734c13b4c5e22024f034c27b7e657c8f79e08993b98f117518" target="_blank">https://urldefense.<u></u>proofpoint.com/v1/url?u=https:<u></u>//github.com/courtney-lunarg/<u></u>mesa/tree/texture_view-rc6&k=<u></u>oIvRg1%2BdGAgOoM1BIlLLqw%3D%<u></u>3D%0A&r=<u></u>lGQMzzTgII0I7jefp2FHq7WtZ%<u></u>2BTLs8wadB%2BiIj9xpBY%3D%0A&m=<u></u>StSJ4O%2Fa%2B9Zp%<u></u>2FeTtJIDzJ1NxrKtDXrENaO%<u></u>2FoFA9gY1k%3D%0A&s=<u></u>0439e3fc50d195734c13b4c5e22024<u></u>f034c27b7e657c8f79e08993b98f11<u></u>7518</a>><div>

<br>
<br>
Let me know if you need me to post the patches to the mail list or not.<br>
</div></blockquote>
<br>
The series LGTM.  Thanks.  Reviewed-by: Brian Paul <<a href="mailto:brianp@vmware.com" target="_blank">brianp@vmware.com</a>><br>
<br>
Do you need someone to push to master for you?</blockquote><div><br></div></div></div><div>Yes please!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span><font color="#888888"><br>

<br>
-Brian<br>
<br>
</font></span></blockquote></div><div class="im"><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Courtney Goeltzenleuchter<br><div>LunarG</div><div><img src="http://media.lunarg.com/wp-content/themes/LunarG/images/logo.png" width="96" height="65"><br>

</div></div>
</div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Courtney Goeltzenleuchter<br><div>LunarG</div><div><img src="http://media.lunarg.com/wp-content/themes/LunarG/images/logo.png" width="96" height="65"><br>
</div></div>
</div>