On Thu, Jan 26, 2012 at 2:56 PM, Brian Paul <span dir="ltr">&lt;<a href="mailto:brian.e.paul@gmail.com">brian.e.paul@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="HOEnZb"><div class="h5">On Thu, Jan 26, 2012 at 4:55 PM, Ian Romanick &lt;<a href="mailto:idr@freedesktop.org">idr@freedesktop.org</a>&gt; wrote:<br>
&gt; On 01/26/2012 06:40 AM, Brian Paul wrote:<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Jan 24, 2012 at 10:58 PM, Anuj Phogat&lt;<a href="mailto:anuj.phogat@gmail.com">anuj.phogat@gmail.com</a>&gt;<br>
&gt;&gt;  wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Color clamping should be enabled in glGetTexImage if texture dataType is<br>
&gt;&gt;&gt; GL_UNSIGNED_NORMALIZED and format is GL_LUMINANCE or GL_LUMINANCE_ALPHA<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Fixes 2 Intel oglconform test cases: pxconv-gettex and pxtrans-gettex<br>
&gt;&gt;&gt; <a href="https://bugs.freedesktop.org/show_bug.cgi?id=40864" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=40864</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; NOTE: This is a candidate for the 8.0 branch<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Signed-off-by: Anuj Phogat&lt;<a href="mailto:anuj.phogat@gmail.com">anuj.phogat@gmail.com</a>&gt;<br>
&gt;&gt;&gt; ---<br>
&gt;&gt;&gt;  src/mesa/main/texgetimage.c |    7 ++++++-<br>
&gt;&gt;&gt;  1 files changed, 6 insertions(+), 1 deletions(-)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c<br>
&gt;&gt;&gt; index 8c85c1e..f89b868 100644<br>
&gt;&gt;&gt; --- a/src/mesa/main/texgetimage.c<br>
&gt;&gt;&gt; +++ b/src/mesa/main/texgetimage.c<br>
&gt;&gt;&gt; @@ -415,7 +415,12 @@ get_tex_rgba(struct gl_context *ctx, GLuint<br>
&gt;&gt;&gt; dimensions,<br>
&gt;&gt;&gt;          transferOps |= IMAGE_CLAMP_BIT;<br>
&gt;&gt;&gt;       }<br>
&gt;&gt;&gt;    }<br>
&gt;&gt;&gt; -<br>
&gt;&gt;&gt; +   else if ((format == GL_LUMINANCE ||<br>
&gt;&gt;&gt; +            format == GL_LUMINANCE_ALPHA)&amp;&amp;<br>
&gt;&gt;&gt; +            dataType == GL_UNSIGNED_NORMALIZED) {<br>
&gt;&gt;&gt; +      transferOps |= IMAGE_CLAMP_BIT;<br>
&gt;&gt;&gt; +   }<br>
&gt;&gt;&gt; +<br>
&gt;&gt;&gt;    if (_mesa_is_format_compressed(texImage-&gt;TexFormat)) {<br>
&gt;&gt;&gt;       get_tex_rgba_compressed(ctx, dimensions, format, type,<br>
&gt;&gt;&gt;                               pixels, texImage, transferOps);<br>
&gt;&gt;&gt; --<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; This looks OK.  However, we need to add more comments here.  I had to<br>
&gt;&gt; do some digging to recall why luminance and lum/alpha are special.<br>
&gt;&gt; The reason is if the source image is RGB, the returned luminance is<br>
&gt;&gt; R+G+B and we need to clamp the sum to [0,1].<br>
&gt;<br>
&gt;<br>
&gt; When Anuj and I discussed this patch, I had another concern, but I&#39;m not<br>
&gt; sure it matters.  If dataType is GL_SIGNED_NORMALIZED, it seems like the<br>
&gt; value should clamp to [-1,1].  We don&#39;t currently have a way to do that.<br>
&gt;  Does that seem right to you?<br>
<br>
</div></div>I would expect so too.  I&#39;ll put it on my to-do list, but it might be a while.</blockquote><div>I can add clamp [-1, 1] . I&#39;ll send out a separate patch for that.</div></div><br>