diff --git a/client/renderers/EGL/desktop.c b/client/renderers/EGL/desktop.c index 7dff6643..efb3acfa 100644 --- a/client/renderers/EGL/desktop.c +++ b/client/renderers/EGL/desktop.c @@ -346,6 +346,11 @@ bool egl_desktopSetup(EGL_Desktop * desktop, const LG_RendererFormat format) case FRAME_TYPE_RGB_24: pixFmt = EGL_PF_RGB_24; + // the data width is correct per the format, but we are going to use a + // 32-bit texture to load the data, so we need to alter the width for the + // different bpp + desktop->format.dataWidth = + desktop->format.dataWidth / 4 * 3; break; default: @@ -361,10 +366,10 @@ bool egl_desktopSetup(EGL_Desktop * desktop, const LG_RendererFormat format) if (!egl_textureSetup( desktop->texture, pixFmt, - format.dataWidth, - format.dataHeight, - format.stride, - format.pitch + desktop->format.dataWidth, + desktop->format.dataHeight, + desktop->format.stride, + desktop->format.pitch )) { DEBUG_ERROR("Failed to setup the desktop texture"); diff --git a/client/renderers/EGL/texture_util.c b/client/renderers/EGL/texture_util.c index e82adde2..cd7f6074 100644 --- a/client/renderers/EGL/texture_util.c +++ b/client/renderers/EGL/texture_util.c @@ -81,9 +81,6 @@ bool egl_texUtilGetFormat(const EGL_TexSetup * setup, EGL_TexFormat * fmt) fmt->intFormat = GL_BGRA_EXT; fmt->dataType = GL_UNSIGNED_BYTE; fmt->fourcc = DRM_FORMAT_ARGB8888; - - // adjust the width as the texture is 32bpp but our source is 24bpp - fmt->width = fmt->width / 4 * 3; break; default: