(view as text)
diff --git a/Source/Core/VideoBackends/OGL/Src/TextureConverter.cpp b/Source/Core/VideoBackends/OGL/Src/TextureConverter.cpp
index 290dc51..4531e23 100644
--- a/Source/Core/VideoBackends/OGL/Src/TextureConverter.cpp
+++ b/Source/Core/VideoBackends/OGL/Src/TextureConverter.cpp
@@ -277,34 +277,25 @@ void EncodeToRamUsingShader(GLuint srcTexture, const TargetRectangle& sourceRc,
 	int readHeight = readStride / dstWidth / 4; // 4 bytes per pixel
 	int readLoops = dstHeight / readHeight;
 
-	if (writeStride != readStride && readLoops > 1 && toTexture)
+	// copy into one pbo first, map this buffer, and then memcpy into gc memory
+	// in this way, we only have one vram->ram transfer, but maybe a bigger
+	// cpu overhead because of the pbo
+	glBindBuffer(GL_PIXEL_PACK_BUFFER, s_PBO);
+	glBufferData(GL_PIXEL_PACK_BUFFER, dstSize, NULL, GL_STREAM_READ);
+	glReadPixels(0, 0, (GLsizei)dstWidth, (GLsizei)dstHeight, GL_BGRA, GL_UNSIGNED_BYTE, 0);
+	u8* pbo = (u8*)glMapBufferRange(GL_PIXEL_PACK_BUFFER, 0, dstSize, GL_MAP_READ_BIT);
+
+	//int readStart = 0;
+	for (int i = 0; i < readLoops; i++)
 	{
-		// writing to a texture of a different size
-		// also copy more then one block line, so the different strides matters
-		// copy into one pbo first, map this buffer, and then memcpy into gc memory
-		// in this way, we only have one vram->ram transfer, but maybe a bigger
-		// cpu overhead because of the pbo
-		glBindBuffer(GL_PIXEL_PACK_BUFFER, s_PBO);
-		glBufferData(GL_PIXEL_PACK_BUFFER, dstSize, NULL, GL_STREAM_READ);
-		glReadPixels(0, 0, (GLsizei)dstWidth, (GLsizei)dstHeight, GL_BGRA, GL_UNSIGNED_BYTE, 0);
-		u8* pbo = (u8*)glMapBufferRange(GL_PIXEL_PACK_BUFFER, 0, dstSize, GL_MAP_READ_BIT);
-
-		//int readStart = 0;
-		for (int i = 0; i < readLoops; i++)
-		{
-			memcpy(destAddr, pbo, readStride);
-			pbo += readStride;
-			destAddr += writeStride;
-		}
-
-		glUnmapBuffer(GL_PIXEL_PACK_BUFFER);
-		glBindBuffer(GL_PIXEL_PACK_BUFFER, 0);
-	}
-	else
-	{
-		glReadPixels(0, 0, (GLsizei)dstWidth, (GLsizei)dstHeight, GL_BGRA, GL_UNSIGNED_BYTE, destAddr);
+		memcpy(destAddr, pbo, readStride);
+		pbo += readStride;
+		destAddr += writeStride;
 	}
 
+	glUnmapBuffer(GL_PIXEL_PACK_BUFFER);
+	glBindBuffer(GL_PIXEL_PACK_BUFFER, 0);
+
 	GL_REPORT_ERRORD();
 
 }