Fix BC6h decoder The alpha channel was never written to the result because it was only ever set in the variable's default value, which would only be set by the default constructor. Since the output is only cast as a Color, and never constructed, then the constructor was never called on the output, and the alpha was never set. This CL sets the alpha channel on both copy operations, making sure the output alpha is set. Bug: b/202978657 Change-Id: I0716a4067862cacdbdc3218a4b4cb2e0a2aa8a58 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/58169 Tested-by: Alexis Hétu <sugoi@google.com> Presubmit-Ready: Alexis Hétu <sugoi@google.com> Commit-Queue: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Device/BC_Decoder.cpp b/src/Device/BC_Decoder.cpp index 325efdb..cf16e44 100644 --- a/src/Device/BC_Decoder.cpp +++ b/src/Device/BC_Decoder.cpp
@@ -314,7 +314,7 @@ uint16_t r = 0; uint16_t g = 0; uint16_t b = 0; - const uint16_t a = halfFloat1; + uint16_t a = halfFloat1; RGBA(uint16_t r, uint16_t g, uint16_t b) : r(r) @@ -328,6 +328,7 @@ this->r = other.r; this->g = other.g; this->b = other.b; + this->a = halfFloat1; return *this; }