diff --git a/webrender/res/prim_shared.glsl b/webrender/res/prim_shared.glsl index 193dcd79c7..7753298899 100644 --- a/webrender/res/prim_shared.glsl +++ b/webrender/res/prim_shared.glsl @@ -648,7 +648,7 @@ VertexInfo write_transform_vertex(RectWithSize local_segment_rect, // 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; diff --git a/wrench/reftests/transforms/content-offset.png b/wrench/reftests/transforms/content-offset.png new file mode 100644 index 0000000000..60eec2f6c3 Binary files /dev/null and b/wrench/reftests/transforms/content-offset.png differ diff --git a/wrench/reftests/transforms/content-offset.yaml b/wrench/reftests/transforms/content-offset.yaml new file mode 100644 index 0000000000..95c1e00e99 --- /dev/null +++ b/wrench/reftests/transforms/content-offset.yaml @@ -0,0 +1,16 @@ +--- +root: + items: + - + type: "stacking-context" + perspective: 1000 + items: + - + type: "stacking-context" + transform: rotate-x(45) translate(100, 100, 0) + "transform-style": "preserve-3d" + items: + - + bounds: [0, 0, 200, 200] + type: rect + color: red diff --git a/wrench/reftests/transforms/perspective.png b/wrench/reftests/transforms/perspective.png index 65e0b29e74..70141c633b 100644 Binary files a/wrench/reftests/transforms/perspective.png and b/wrench/reftests/transforms/perspective.png differ diff --git a/wrench/reftests/transforms/reftest.list b/wrench/reftests/transforms/reftest.list index 91bfce9fa4..bebf785ca5 100644 --- a/wrench/reftests/transforms/reftest.list +++ b/wrench/reftests/transforms/reftest.list @@ -5,6 +5,8 @@ # but fails when all the tests are run fuzzy(1,2) == rotated-image.yaml rotated-image.png == singular.yaml singular-ref.yaml -fuzzy(1,82) == perspective.yaml perspective.png +fuzzy(1,88) == perspective.yaml perspective.png == prim-suite.yaml prim-suite.png == segments-bug.yaml segments-bug-ref.yaml +== content-offset.yaml content-offset.png +