aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-07-01 11:33:28 +0200
committermarha <marha@users.sourceforge.net>2013-07-01 11:55:53 +0200
commit28d1f604563d9c738a4c5630364d0e6b4e9b13ff (patch)
tree1fbc6bd5cc5a1c950c6dfdf64c348f81604e9e9e /mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
parentced1a6b8f5a750fcd3b8d3d0d9bbdee830064e6c (diff)
downloadvcxsrv-28d1f604563d9c738a4c5630364d0e6b4e9b13ff.tar.gz
vcxsrv-28d1f604563d9c738a4c5630364d0e6b4e9b13ff.tar.bz2
vcxsrv-28d1f604563d9c738a4c5630364d0e6b4e9b13ff.zip
mesa git update 1 Jul 2013
mesa commit bf95ca7de0c02a00a75d1d5e2693a33b68ff784d
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_cb_drawpixels.c')
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_drawpixels.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c b/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
index 0200a6270..2ce4728ad 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c
@@ -1546,6 +1546,7 @@ st_CopyPixels(struct gl_context *ctx, GLint srcx, GLint srcy,
if (!screen->is_format_supported(screen, srcFormat, st->internal_target, 0,
srcBind)) {
+ /* srcFormat is non-renderable. Find a compatible renderable format. */
if (type == GL_DEPTH) {
srcFormat = st_choose_format(st, GL_DEPTH_COMPONENT, GL_NONE,
GL_NONE, st->internal_target, 0,
@@ -1569,6 +1570,11 @@ st_CopyPixels(struct gl_context *ctx, GLint srcx, GLint srcy,
GL_NONE, st->internal_target, 0,
srcBind, FALSE);
}
+ else if (util_format_is_snorm(srcFormat)) {
+ srcFormat = st_choose_format(st, GL_RGBA16_SNORM, GL_NONE,
+ GL_NONE, st->internal_target, 0,
+ srcBind, FALSE);
+ }
else {
srcFormat = st_choose_format(st, GL_RGBA, GL_NONE,
GL_NONE, st->internal_target, 0,