[Bug 100925] [HSW/BSW/BDW/SKL] Google Earth is not resolving all the details in the map correctly
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Fri May 19 00:08:42 UTC 2017
https://bugs.freedesktop.org/show_bug.cgi?id=100925
Nanley Chery <nanleychery at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #18 from Nanley Chery <nanleychery at gmail.com> ---
Thank you for taking the time to report this issue. This bug has been fixed
upstream with the following commit:
commit 688ddb85c8c3357d8e1e9d360c74cd728b128d98
Author: Nanley Chery <nanley.g.chery at intel.com>
Date: Thu May 11 15:57:59 2017 -0700
i965/formats: Update the three-channel DXT1 mappings
The procedure for decompressing an opaque DXT1 OpenGL format is
dependant on the comparison of two colors stored in the first 32 bits of
the compressed block. Here's the specified OpenGL behavior for
reference:
The RGB color for a texel at location (x,y) in the block is given by:
RGB0, if color0 > color1 and code(x,y) == 0
RGB1, if color0 > color1 and code(x,y) == 1
(2*RGB0+RGB1)/3, if color0 > color1 and code(x,y) == 2
(RGB0+2*RGB1)/3, if color0 > color1 and code(x,y) == 3
RGB0, if color0 <= color1 and code(x,y) == 0
RGB1, if color0 <= color1 and code(x,y) == 1
(RGB0+RGB1)/2, if color0 <= color1 and code(x,y) == 2
BLACK, if color0 <= color1 and code(x,y) == 3
The sampling operation performed on an opaque DXT1 Intel format essentially
hard-codes the comparison result of the two colors as color0 > color1.
This means that the behavior is incompatible with OpenGL. This is stated
in the SKL PRM, Vol 5: Memory Views:
Opaque Textures (DXT1_RGB)
Texture format DXT1_RGB is identical to DXT1, with the exception that
the
One-bit Alpha encoding is removed. Color 0 and Color 1 are not
compared, and
the resulting texel color is derived strictly from the Opaque Color
Encoding.
The alpha channel defaults to 1.0.
Programming Note
Context: Opaque Textures (DXT1_RGB)
The behavior of this format is not compliant with the OGL spec.
The opaque and non-opaque DXT1 OpenGL formats are specified to be
decoded in exactly the same way except the BLACK value must have a
transparent alpha channel in the latter. Use the four-channel BC1 Intel
formats with the alpha set to 1 to provide the behavior required by the
spec. Note that the alpha is already set to 1 for RGB formats in
brw_get_texture_swizzle().
v2: Provide a more detailed commit message (Kenneth Graunke).
v3: Ensure the alpha channel is set to 1 for DXT1 formats.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100925
Cc: <mesa-stable at lists.freedesktop.org>
Acked-by: Tapani Pälli <tapani.palli at intel.com> (v1)
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>
--
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20170519/d3f7a28f/attachment.html>
More information about the intel-3d-bugs
mailing list