Điểm cập nhật về khả năng tạo ảnh động được tăng tốc phần cứng

Tóm tắt: Chromium đang tự động cập nhật khả năng tăng tốc phần cứng cho ảnh động SVG, các phép biến đổi dựa trên tỷ lệ phần trăm và sắp tới là ảnh động có màu nền và đường dẫn clip.

Khi nói đến hiệu suất ảnh động trên web, các thuật ngữ ảnh động "được tăng tốc phần cứng" và "tăng tốc GPU" có thể sẽ xuất hiện. Nhưng những điều này thậm chí có nghĩa là gì? Kiểu có tăng tốc phần cứng là những kiểu tận dụng GPU (Bộ xử lý đồ hoạ) thay vì CPU (Bộ xử lý trung tâm) để kết xuất kiểu hình ảnh. Điều này là do GPU có thể kết xuất các thay đổi về hình ảnh trên trang web nhanh hơn CPU.

Việc sử dụng GPU để giảm tải các hiệu ứng chuyển đổi và ảnh động cần nhiều đồ hoạ giúp hình ảnh mượt mà hơn và ít bị giật hơn vì những ảnh động này không bị luồng chính ảnh hưởng. Bằng cách kéo chúng ra khỏi luồng chính, ảnh động của bạn sẽ bỏ qua phần vỏ của các tập lệnh đang hoạt động khác đang chạy trên trang. Điều này sẽ làm chậm hình ảnh của bạn và tạo ra hiện tượng giật.

Bật ảnh động được tăng tốc phần cứng

Các ảnh động được tăng tốc phần cứng được kết hợp dưới dạng các lớp và giúp nhà phát triển đạt được ảnh động 60 FPS (khung hình/giây) mượt mà để cải thiện hiệu suất kết xuất hình ảnh. Hiện có một vài cách để chỉ định và bật các ảnh động và hiệu ứng chuyển đổi được tăng tốc phần cứng trên web:

  • Dùng các hàm transform của CSS hoặc chuyển đổi các giá trị opacity hay filter
  • Thêm thuộc tính will-change vào phần tử.
  • Tạo một bản vẽ canvas động qua OffscreenCanvas
  • Tạo bản vẽ 3D WebGL
Nhóm kết xuất Chromium liên tục theo dõi việc sử dụng các thuộc tính động nhất để xác định bước tiếp theo cần thực hiện liên quan đến việc bật tính năng tăng tốc phần cứng. Mặc dù các thuộc tính CSS hiện tại được tăng tốc phần cứng theo mặc định chỉ bao gồm opacity, filtertransform, nhưng background-colorclip-path sẽ sớm tham gia danh sách này.

Tính năng nào khác đang được tăng tốc phần cứng theo mặc định trong Chromium? Sắp tới sẽ có một số tính năng trong tương lai, bao gồm ảnh động SVG – nội dung mà các nhà phát triển đã rất yêu cầu.

Hoạt ảnh SVG được tăng tốc phần cứng

SVG là một công cụ bổ sung tuyệt vời cho mọi trang web. Giờ đây, các hoạt động tương tác đó với SVG có thể mang lại hiệu quả cao hơn. Kể từ Chromium 89, Chrome sẽ cùng với Firefox để cho phép tăng tốc phần cứng trên ảnh động SVG theo mặc định. Bạn, với tư cách là nhà phát triển, cần làm gì? Không có gì xảy ra – thành phần này sẽ tự động áp dụng cho ảnh động SVG trong Chromium 89 trở lên.

Ví dụ:

Hãy cùng tìm hiểu sự khác biệt giữa ảnh động SVG khi bật tính năng tăng tốc phần cứng và chưa bật tính năng tăng tốc phần cứng. Chỉ báo đang tải là các thành phần thường dùng trên giao diện người dùng, chẳng hạn như chỉ báo có trên facebook.com. Các chỉ báo này cho biết công việc đang được thực hiện trên máy chủ, trong khi người dùng chờ phản hồi. Trong trường hợp hiển thị ở đây, phản hồi sẽ là tải các kết quả bổ sung trong thanh bên.

Giao diện người dùng thanh bên của Facebook hiển thị một trình tải hình tròn trong khi tải nội dung bổ sung.

Khi mở Công cụ cho nhà phát triển, chúng ta có thể bắt đầu lập hồ sơ và thực sự thấy được sự khác biệt giữa trải nghiệm ảnh động được tăng tốc bằng CPU và GPU.

Bảng điều khiển hiệu suất với màu vẽ nhấp nháy đang bật
Trái: Chromium 88. Phải: Chromium 89, có tính năng tăng tốc phần cứng cho ảnh động SVG. Xem bản minh hoạ của Benoit Girard trên JSFiddle.

Bạn có thể thấy rằng ở bên trái (Chromium 87), hoạt động vẽ lại sẽ diễn ra mỗi khi vòng quay tạo ảnh động (liên tục). Không có bản vẽ lại nào ở bên phải (Chromium 89 và Firefox). Chúng ta có thể kiểm thử điều này trong bảng điều khiển Kết xuất trong Công cụ cho nhà phát triển khi bật chế độ nhấp nháy Paint.

Bảng điều khiển hiệu suất cho thấy quá trình kết xuất
Trái: Chromium 88. Phải: Chromium 89, có tính năng tăng tốc phần cứng cho ảnh động SVG. Xem bản minh hoạ của Benoit Girard trên JSFiddle.

Khi xem xét kỹ hơn bảng điều khiển Hiệu suất, bạn có thể thấy lại tác động này và mức độ ảnh hưởng của nó đến hiệu suất tổng thể của tài sản web. Bạn tránh được thời gian kết xuất và tô màu hoàn toàn cho ảnh động, nghĩa là ảnh động sẽ mượt mà hơn và các ứng dụng hiệu quả hơn. Mặc dù Facebook sẽ không vận chuyển trình tải dựa trên SVG này cho đến khi trình duyệt hỗ trợ SVG được tăng tốc phần cứng nhiều hơn, nhưng điều này sẽ cho phép bạn linh hoạt hơn trong các yêu cầu về tuỳ chỉnh giao diện, điều chỉnh tỷ lệ và độ phân giải, đồng thời dễ dàng bảo trì hơn.

Tỷ lệ phần trăm ảnh động

Nhóm Tương tác cũng hỗ trợ vận chuyển cho ảnh động biến đổi theo tỷ lệ phần trăm trong Chromium 89. Ảnh động dựa trên tỷ lệ phần trăm mô tả các hoạt động tương tác có chuyển động dựa trên tỷ lệ phần trăm. Ví dụ: bạn có thể tăng quy mô mục nào đó lên 20% hoặc trượt trình đơn thanh bên thích ứng từ ngoài màn hình bằng cách sử dụng lệnh như translateX: -100%.

Ví dụ về cách điều hướng trên waze.com, sử dụng tỷ lệ phần trăm biến đổi để mở và ẩn trình đơn ở những màn hình có kích thước nhỏ hơn.

Các loại ảnh động trên giao diện người dùng này tương đối phổ biến, nhưng hiện không tận dụng được tính năng tăng tốc phần cứng vì trước đây chúng tôi không thể kết hợp các ảnh động như vậy. Tỷ lệ phần trăm trong các phép biến đổi phụ thuộc vào kích thước hộp (tức là bố cục), nhưng hiện tại, miễn là kích thước bố cục không thay đổi mọi khung hình, trình duyệt có thể tính toán trước các giá trị biến đổi tuyệt đối và chạy các giá trị đó như thể nhà phát triển đã cung cấp giá trị pixel. Tin vui là nhóm Chromium đang nỗ lực phát triển tính năng này và sắp tới, các loại ảnh động này sẽ tự động được kết hợp và tăng tốc phần cứng.

Nội dung tiếp theo

Các ảnh động cập nhật này sẽ giúp việc tạo kiểu web trở nên mượt mà hơn nhiều. Và như đã đề cập ở trên, nhóm chúng tôi luôn tìm hiểu xem cần phát triển web sắp tới như thế nào. Hiện tại, chúng tôi dự kiến chuyển đổi background-colorclip-path để tự động sử dụng tính năng tăng tốc phần cứng trong các phiên bản Chromium trong tương lai.

background-color là một mức độ ưu tiên do có số lượng mức sử dụng cao đối với các hiệu ứng chuyển đổi và hiệu ứng, còn clip-path cho phép các hiệu ứng chuyển đổi hiệu quả hơn nhiều trên web. Khi hiệu suất hoà với tính tương tác thì tất cả mọi người đều có lợi!

transition.style: trang minh hoạ nêu bật các hiệu ứng chuyển đổi CSS của Adam Argyle.

Ảnh bìa: Siora Photography cho Unsplash.