diff options
author | bunnei <bunneidev@gmail.com> | 2019-04-09 23:20:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-09 23:20:43 +0200 |
commit | bc7e1498352d99368de3cbf3645e3e6c50f600b8 (patch) | |
tree | ec9b6ab236da4b72f55249072542f13da8f74ddd /src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | |
parent | Merge pull request #2368 from FernandoS27/fix-lop (diff) | |
parent | gl_backend: Align Pixel Storage (diff) | |
download | yuzu-bc7e1498352d99368de3cbf3645e3e6c50f600b8.tar yuzu-bc7e1498352d99368de3cbf3645e3e6c50f600b8.tar.gz yuzu-bc7e1498352d99368de3cbf3645e3e6c50f600b8.tar.bz2 yuzu-bc7e1498352d99368de3cbf3645e3e6c50f600b8.tar.lz yuzu-bc7e1498352d99368de3cbf3645e3e6c50f600b8.tar.xz yuzu-bc7e1498352d99368de3cbf3645e3e6c50f600b8.tar.zst yuzu-bc7e1498352d99368de3cbf3645e3e6c50f600b8.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer_cache.cpp')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 7a3280620..5876145ef 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp @@ -661,8 +661,8 @@ void CachedSurface::FlushGLBuffer() { gl_buffer[0].resize(GetSizeInBytes()); const FormatTuple& tuple = GetFormatTuple(params.pixel_format, params.component_type); - // Ensure no bad interactions with GL_UNPACK_ALIGNMENT - ASSERT(params.width * GetBytesPerPixel(params.pixel_format) % 4 == 0); + const u32 align = std::clamp(params.RowAlign(0), 1U, 8U); + glPixelStorei(GL_PACK_ALIGNMENT, align); glPixelStorei(GL_PACK_ROW_LENGTH, static_cast<GLint>(params.width)); ASSERT(!tuple.compressed); glBindBuffer(GL_PIXEL_PACK_BUFFER, 0); @@ -707,8 +707,8 @@ void CachedSurface::UploadGLMipmapTexture(u32 mip_map, GLuint read_fb_handle, const FormatTuple& tuple = GetFormatTuple(params.pixel_format, params.component_type); - // Ensure no bad interactions with GL_UNPACK_ALIGNMENT - ASSERT(params.MipWidth(mip_map) * GetBytesPerPixel(params.pixel_format) % 4 == 0); + const u32 align = std::clamp(params.RowAlign(mip_map), 1U, 8U); + glPixelStorei(GL_UNPACK_ALIGNMENT, align); glPixelStorei(GL_UNPACK_ROW_LENGTH, static_cast<GLint>(params.MipWidth(mip_map))); const auto image_size = static_cast<GLsizei>(params.GetMipmapSizeGL(mip_map, false)); |