diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp index eb7935969da..038489fffbd 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp @@ -171,18 +171,6 @@ try_blorp_blit(struct intel_context *intel, if (src_mt->format != dst_mt->format) return false; - /* Account for the fact that in the system framebuffer, the origin is at - * the lower left. - */ - if (read_fb->Name == 0) { - srcY0 = read_fb->Height - srcY0; - srcY1 = read_fb->Height - srcY1; - } - if (draw_fb->Name == 0) { - dstY0 = draw_fb->Height - dstY0; - dstY1 = draw_fb->Height - dstY1; - } - /* Detect if the blit needs to be mirrored */ bool mirror_x = false, mirror_y = false; fixup_mirroring(mirror_x, srcX0, srcX1); @@ -213,6 +201,22 @@ try_blorp_blit(struct intel_context *intel, return true; } + /* Account for the fact that in the system framebuffer, the origin is at + * the lower left. + */ + if (read_fb->Name == 0) { + GLint tmp = read_fb->Height - srcY0; + srcY0 = read_fb->Height - srcY1; + srcY1 = tmp; + mirror_y = !mirror_y; + } + if (draw_fb->Name == 0) { + GLint tmp = draw_fb->Height - dstY0; + dstY0 = draw_fb->Height - dstY1; + dstY1 = tmp; + mirror_y = !mirror_y; + } + /* Get ready to blit. This includes depth resolving the src and dst * buffers if necessary. */ |