New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove PrimitiveMetadata struct. #3218

Merged
merged 2 commits into from Oct 19, 2018

Conversation

Projects
None yet
3 participants
@gw3583
Collaborator

gw3583 commented Oct 19, 2018

It doesn't really serve any useful purpose anymore, and it
will slightly simplify things as we move to storing primitives
as interned / immutable data + prim instances.


This change is Reviewable

Store picture primitives in a vec, and refer by index in prims.
This is prep work for changing the structure of the prepare_prims
pass.

Currently, the code is (roughly):
 - Traverse primitive tree, recursing through pictures.
  - When visible, call prepare_prim to update GPU cache, clips etc.
 - Assign render tasks to passes.
 - Assign primitive lists for each picture to batches.

In future, it will instead be:
 - Traverse picture tree, but not individual primitives.
  - Determine surface allocation, plane-splitting, visibility.
 - For each visible picture, prepare_prims and add to batches.

This will simplify some existing code, as well as making possible
some requirements for picture caching (e.g. determining the scale
to rasterize a picture at before creating the child render tasks).
@gw3583

This comment has been minimized.

Collaborator

gw3583 commented Oct 19, 2018

r? @kvark

In the spirit of landing bits and pieces for picture caching that are not risky with the beta merge for Gecko early next week.

This includes #3213 - so once that's approved, only the last commit here should need review.

@gw3583

This comment has been minimized.

@gw3583

This comment has been minimized.

Collaborator

gw3583 commented Oct 19, 2018

Try run looks good.

Remove PrimitiveMetadata struct.
It doesn't really serve any useful purpose anymore, and it
will slightly simplify things as we move to storing primitives
as interned / immutable data + prim instances.
@kvark

:lgtm_strong:

Reviewed 3 of 3 files at r2.
Reviewable status: 3 of 7 files reviewed, all discussions resolved

@kvark

This comment has been minimized.

Member

kvark commented Oct 19, 2018

@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Oct 19, 2018

📌 Commit b7ba28b has been approved by kvark

@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Oct 19, 2018

⌛️ Testing commit b7ba28b with merge a453cf3...

bors-servo added a commit that referenced this pull request Oct 19, 2018

Auto merge of #3218 - gw3583:prim-metadata, r=kvark
Remove PrimitiveMetadata struct.

It doesn't really serve any useful purpose anymore, and it
will slightly simplify things as we move to storing primitives
as interned / immutable data + prim instances.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/3218)
<!-- Reviewable:end -->
@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Oct 19, 2018

💔 Test failed - status-appveyor

@kvark

This comment has been minimized.

Member

kvark commented Oct 19, 2018

AppVeyor network error again:

error: unable to get packages from source

Time to migrate the Windows CI to Travis?

@bors-servo retry

bors-servo added a commit that referenced this pull request Oct 19, 2018

Auto merge of #3218 - gw3583:prim-metadata, r=kvark
Remove PrimitiveMetadata struct.

It doesn't really serve any useful purpose anymore, and it
will slightly simplify things as we move to storing primitives
as interned / immutable data + prim instances.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/3218)
<!-- Reviewable:end -->
@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Oct 19, 2018

⌛️ Testing commit b7ba28b with merge 15656cb...

@bors-servo

This comment has been minimized.

Contributor

bors-servo commented Oct 19, 2018

☀️ Test successful - status-appveyor, status-taskcluster
Approved by: kvark
Pushing 15656cb to master...

@bors-servo bors-servo merged commit b7ba28b into servo:master Oct 19, 2018

3 of 4 checks passed

code-review/reviewable 4 files left
Details
Taskcluster (pull_request) TaskGroup: success
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
homu Test successful
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment