зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1782405 - Fix UV sampling rect for blurs with downscale-adjusted sizes r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D153314
This commit is contained in:
Родитель
940ea9d31a
Коммит
07bcbd6c5e
|
@ -3979,6 +3979,7 @@ struct SurfaceAllocInfo {
|
|||
task_size: DeviceIntSize,
|
||||
needs_scissor_rect: bool,
|
||||
clipped: DeviceRect,
|
||||
unclipped: DeviceRect,
|
||||
clipped_local: PictureRect,
|
||||
uv_rect_kind: UvRectKind,
|
||||
}
|
||||
|
@ -5343,6 +5344,13 @@ impl PicturePrimitive {
|
|||
|
||||
let cmd_buffer_index = frame_state.cmd_buffers.create_cmd_buffer();
|
||||
|
||||
// Since we (may have) adjusted the render task size for downscaling accuracy
|
||||
// above, recalculate the uv rect for tasks that may sample from this blur output
|
||||
let uv_rect_kind = calculate_uv_rect_kind(
|
||||
DeviceRect::from_origin_and_size(surface_rects.clipped.min, adjusted_size.to_f32()),
|
||||
surface_rects.unclipped,
|
||||
);
|
||||
|
||||
let picture_task_id = frame_state.rg_builder.add().init(
|
||||
RenderTask::new_dynamic(
|
||||
adjusted_size,
|
||||
|
@ -5359,7 +5367,7 @@ impl PicturePrimitive {
|
|||
cmd_buffer_index,
|
||||
can_use_shared_surface,
|
||||
)
|
||||
).with_uv_rect_kind(surface_rects.uv_rect_kind)
|
||||
).with_uv_rect_kind(uv_rect_kind)
|
||||
);
|
||||
|
||||
let blur_render_task_id = RenderTask::new_blur(
|
||||
|
@ -7248,6 +7256,7 @@ fn get_surface_rects(
|
|||
task_size,
|
||||
needs_scissor_rect,
|
||||
clipped,
|
||||
unclipped,
|
||||
clipped_local,
|
||||
uv_rect_kind,
|
||||
})
|
||||
|
|
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 29 KiB После Ширина: | Высота: | Размер: 43 KiB |
Двоичные данные
gfx/wr/wrench/reftests/filters/filter-large-blur-radius.png
Двоичные данные
gfx/wr/wrench/reftests/filters/filter-large-blur-radius.png
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 103 KiB После Ширина: | Высота: | Размер: 106 KiB |
Загрузка…
Ссылка в новой задаче