From 1ee09ced0af722d3c7394560a7afdb94c92a0c05 Mon Sep 17 00:00:00 2001 From: magumagu Date: Sun, 25 Jan 2015 21:38:30 -0800 Subject: Fix OpenGL coordinate computation. --- Source/Core/VideoBackends/OGL/TextureConverter.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'Source/Core/VideoBackends/OGL/TextureConverter.cpp') diff --git a/Source/Core/VideoBackends/OGL/TextureConverter.cpp b/Source/Core/VideoBackends/OGL/TextureConverter.cpp index 6384991ceb..5edeebd50b 100644 --- a/Source/Core/VideoBackends/OGL/TextureConverter.cpp +++ b/Source/Core/VideoBackends/OGL/TextureConverter.cpp @@ -320,14 +320,16 @@ int EncodeToRamFromTexture(u32 address,GLuint source_texture, bool bFromZBuffer, source.left, source.top, expandedWidth, bScaleByHalf ? 2 : 1); - int cacheBytes = 32; + unsigned int numBlocksX = expandedWidth / TexDecoder_GetBlockWidthInTexels(format); + unsigned int numBlocksY = expandedHeight / TexDecoder_GetBlockHeightInTexels(format); + unsigned int cacheLinesPerRow; if ((format & 0x0f) == 6) - cacheBytes = 64; + cacheLinesPerRow = numBlocksX * 2; + else + cacheLinesPerRow = numBlocksX; - int readStride = (expandedWidth * cacheBytes) / - TexDecoder_GetBlockWidthInTexels(format); EncodeToRamUsingShader(source_texture, - dest_ptr, expandedWidth / samples, expandedHeight, readStride, + dest_ptr, cacheLinesPerRow * 8, numBlocksY, cacheLinesPerRow * 32, bScaleByHalf > 0 && !bFromZBuffer); return size_in_bytes; // TODO: D3D11 is calculating this value differently! -- cgit v1.2.3 From 9dbb9bf3b558416dd2c7c61766ec9ce5e841a510 Mon Sep 17 00:00:00 2001 From: magumagu Date: Sun, 25 Jan 2015 23:32:32 -0800 Subject: Make sure EFB2RAM buffer is wide enough for new coordinate system. --- Source/Core/VideoBackends/OGL/TextureConverter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Core/VideoBackends/OGL/TextureConverter.cpp') diff --git a/Source/Core/VideoBackends/OGL/TextureConverter.cpp b/Source/Core/VideoBackends/OGL/TextureConverter.cpp index 5edeebd50b..cc9f348743 100644 --- a/Source/Core/VideoBackends/OGL/TextureConverter.cpp +++ b/Source/Core/VideoBackends/OGL/TextureConverter.cpp @@ -35,7 +35,7 @@ static GLuint s_texConvFrameBuffer[2] = {0,0}; static GLuint s_srcTexture = 0; // for decoding from RAM static GLuint s_dstTexture = 0; // for encoding to RAM -const int renderBufferWidth = 1024; +const int renderBufferWidth = EFB_WIDTH * 4; const int renderBufferHeight = 1024; static SHADER s_rgbToYuyvProgram; -- cgit v1.2.3