Commit a5a7566d by Nicolas Capens Committed by Nicolas Capens

Fix floating-point luminance/alpha pixel upload.

We were expecting R or RG internal formats, instead of L, A, or LA. Change-Id: I6ee145341819460dda262b017db6d8105860f49a Reviewed-on: https://swiftshader-review.googlesource.com/17508Tested-by: 's avatarNicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
parent 0988fb8e
...@@ -1548,12 +1548,13 @@ namespace egl ...@@ -1548,12 +1548,13 @@ namespace egl
case GL_FLOAT: case GL_FLOAT:
switch(internalformat) switch(internalformat)
{ {
case GL_RG32F: return Transfer<Bytes>(buffer, input, rect); case GL_LUMINANCE_ALPHA32F_EXT: return Transfer<Bytes>(buffer, input, rect);
case GL_RG16F: return Transfer<RG32FtoRG16F>(buffer, input, rect); case GL_LUMINANCE_ALPHA16F_EXT: return Transfer<RG32FtoRG16F>(buffer, input, rect);
default: UNREACHABLE(internalformat); default: UNREACHABLE(internalformat);
} }
case GL_HALF_FLOAT: case GL_HALF_FLOAT:
case GL_HALF_FLOAT_OES: case GL_HALF_FLOAT_OES:
ASSERT_OR_RETURN(internalformat == GL_LUMINANCE_ALPHA16F_EXT);
return Transfer<Bytes>(buffer, input, rect); return Transfer<Bytes>(buffer, input, rect);
default: default:
UNREACHABLE(type); UNREACHABLE(type);
...@@ -1567,12 +1568,15 @@ namespace egl ...@@ -1567,12 +1568,15 @@ namespace egl
case GL_FLOAT: case GL_FLOAT:
switch(internalformat) switch(internalformat)
{ {
case GL_R32F: return Transfer<Bytes>(buffer, input, rect); case GL_LUMINANCE32F_EXT: return Transfer<Bytes>(buffer, input, rect);
case GL_R16F: return Transfer<R32FtoR16F>(buffer, input, rect); case GL_LUMINANCE16F_EXT: return Transfer<R32FtoR16F>(buffer, input, rect);
case GL_ALPHA32F_EXT: return Transfer<Bytes>(buffer, input, rect);
case GL_ALPHA16F_EXT: return Transfer<R32FtoR16F>(buffer, input, rect);
default: UNREACHABLE(internalformat); default: UNREACHABLE(internalformat);
} }
case GL_HALF_FLOAT: case GL_HALF_FLOAT:
case GL_HALF_FLOAT_OES: case GL_HALF_FLOAT_OES:
ASSERT_OR_RETURN(internalformat == GL_LUMINANCE16F_EXT || internalformat == GL_ALPHA16F_EXT);
return Transfer<Bytes>(buffer, input, rect); return Transfer<Bytes>(buffer, input, rect);
default: default:
UNREACHABLE(type); UNREACHABLE(type);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment