Bug 1586062 - Fix WebRender with picture caching path disabled. r=kvark

We need to detect this code path in renderer, and call the
legacy draw_color_target method.

Differential Revision: https://phabricator.services.mozilla.com/D48105

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Glenn Watson 2019-10-03 19:32:09 +00:00
Родитель 1ed4302759
Коммит ead3514ee7
1 изменённых файлов: 23 добавлений и 7 удалений

Просмотреть файл

@ -1747,6 +1747,7 @@ pub struct Renderer {
clear_color: Option<ColorF>,
enable_clear_scissor: bool,
enable_picture_caching: bool,
enable_advanced_blend_barriers: bool,
debug: LazyInitializedDebugRenderer,
@ -2295,6 +2296,7 @@ impl Renderer {
clear_color: options.clear_color,
enable_clear_scissor: options.enable_clear_scissor,
enable_advanced_blend_barriers: !ext_blend_equation_advanced_coherent,
enable_picture_caching: options.enable_picture_caching,
last_time: 0,
gpu_profile,
vaos: RendererVAOs {
@ -4720,7 +4722,7 @@ impl Renderer {
);
match pass.kind {
RenderPassKind::MainFramebuffer { .. } => {
RenderPassKind::MainFramebuffer { ref main_target, .. } => {
if let Some(device_size) = device_size {
stats.color_target_count += 1;
@ -4751,12 +4753,26 @@ impl Renderer {
None);
}
if self.enable_picture_caching {
self.composite(
&frame.composite_config,
draw_target,
&projection,
stats,
);
} else {
self.draw_color_target(
draw_target,
main_target,
frame.content_origin,
None,
None,
&frame.render_tasks,
&projection,
frame_id,
stats,
);
}
}
}
RenderPassKind::OffScreen {