Residency 5: Implement and Integrate Residency Management

Adds all D3D12 residency management logic.

Bug: dawn:193
Change-Id: Ibc160289c29cc85817dcfaaef1b92d04599aa802
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/16384
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brandon Jones <brandon1.jones@intel.com>
This commit is contained in:
Brandon Jones
2020-03-31 15:31:56 +00:00
committed by Commit Bot service account
parent 276b065265
commit 7982cc0527
16 changed files with 403 additions and 23 deletions

View File

@@ -7,6 +7,8 @@
#ifndef COMMON_LINKED_LIST_H
#define COMMON_LINKED_LIST_H
#include "common/Assert.h"
// Simple LinkedList type. (See the Q&A section to understand how this
// differs from std::list).
//
@@ -117,6 +119,12 @@ class LinkNode {
e->next_ = this;
}
// Check if |this| is in a list.
bool IsInList() const {
ASSERT((this->previous_ == nullptr) == (this->next_ == nullptr));
return this->next_ != nullptr;
}
// Remove |this| from the linked list.
void RemoveFromList() {
this->previous_->next_ = this->next_;