Closed Bug 1681012 Opened 4 years ago Closed 4 years ago

Directly use XDR buffer from decoded stencil

Categories

(Core :: JavaScript Engine, task, P1)

task

Tracking

()

RESOLVED FIXED
86 Branch
Tracking Status
firefox86 --- fixed

People

(Reporter: arai, Assigned: arai)

References

Details

Attachments

(4 files)

As a preparation for directly using pinned data from decoded stencil, using XDR buffer directly from decoded stencil will help decoding performance.
It requires the following:

  • Add alignment requirement for TranscodeRange and TranscodeBuffer, when encoding and decoding, so that the content can be aligned to 32-bit etc boundary
  • Add lifetime requirement for TranscodeRange and TranscodeBuffer, when decoding, in order to make the underlying XDR buffer alive while decoded stencil is alive
  • when encoding/decoding, align before each 32-bit etc field that is directly referred from decoded stencil
Depends on: 1681304
Depends on: 1681308

filed bug 1681304 and bug 1681308 because they'll affect API consumer.

TODO:

  • assert the alignment of those structs is 4 bytes or less, in StencilXdr.cpp
    • this will also assert that those structs don't contain pointers, on 64-bit arch

Depends on D101429

Depends on D101430

Pushed by arai_a@mac.com: https://hg.mozilla.org/integration/autoland/rev/0e86358ebe06 Part 1: Add align32 method. r=nbp https://hg.mozilla.org/integration/autoland/rev/94306219bca3 Part 2: Align before main buf. r=nbp https://hg.mozilla.org/integration/autoland/rev/bb1260eb0986 Part 3: Align before span and scope data and atom. r=nbp https://hg.mozilla.org/integration/autoland/rev/1aff06604426 Part 4: Directly use XDR buffer from decoded stencil. r=nbp
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: