diff --git a/webrender/src/renderer.rs b/webrender/src/renderer.rs index 5e8cc6fa50..7b779ab3d8 100644 --- a/webrender/src/renderer.rs +++ b/webrender/src/renderer.rs @@ -1324,14 +1324,18 @@ impl VertexDataTexture { } fn update(&mut self, device: &mut Device, data: &mut Vec) { - if data.is_empty() { - return; - } - debug_assert!(mem::size_of::() % 16 == 0); let texels_per_item = mem::size_of::() / 16; let items_per_row = MAX_VERTEX_TEXTURE_WIDTH / texels_per_item; + // Ensure we always end up with a texture when leaving this method. + if data.is_empty() { + if self.texture.is_some() { + return; + } + data.push(unsafe { mem::uninitialized() }); + } + // Extend the data array to be a multiple of the row size. // This ensures memory safety when the array is passed to // OpenGL to upload to the GPU.