Test transform fix. try: -b do -p linux64 -u all[linux64-qr] -t all[linux64-qr]
Test transform fix. try: -b do -p linux64 -u all[linux64-qr] -t all[linux64-qr]
--- a/gfx/webrender/res/prim_shared.glsl
+++ b/gfx/webrender/res/prim_shared.glsl
@@ -671,17 +671,17 @@ VertexInfo write_transform_vertex(RectWi
// Convert the world positions to device pixel space.
vec2 device_pos = world_pos.xy / world_pos.w * uDevicePixelRatio;
vec2 task_offset = task.common_data.task_rect.p0 - task.content_origin;
// We want the world space coords to be perspective divided by W.
// We also want that to apply to any interpolators. However, we
// want a constant Z across the primitive, since we're using it
// for draw ordering - so scale by the W coord to ensure this.
- vec4 final_pos = vec4(world_pos.xy * uDevicePixelRatio + task_offset,
+ vec4 final_pos = vec4((device_pos + task_offset) * world_pos.w,
z * world_pos.w,
world_pos.w);
gl_Position = uTransform * final_pos;
vLocalBounds = mix(
vec4(prim_rect.p0, prim_rect.p1),
vec4(segment_rect.p0, segment_rect.p1),
clip_edge_mask