D3D12: Use typed integers for the HeapVersionID
This will prevent mixing it up with other serial types in the future. Bug: dawn:442 Change-Id: I32f356c62f19ef29f3bf51c19873369fb817bb16 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/28960 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Austin Eng <enga@chromium.org>
This commit is contained in:
parent
306fc502cf
commit
cac14e0067
|
@ -314,6 +314,7 @@ source_set("dawn_native_sources") {
|
||||||
"d3d12/HeapAllocatorD3D12.h",
|
"d3d12/HeapAllocatorD3D12.h",
|
||||||
"d3d12/HeapD3D12.cpp",
|
"d3d12/HeapD3D12.cpp",
|
||||||
"d3d12/HeapD3D12.h",
|
"d3d12/HeapD3D12.h",
|
||||||
|
"d3d12/IntegerTypes.h",
|
||||||
"d3d12/NativeSwapChainImplD3D12.cpp",
|
"d3d12/NativeSwapChainImplD3D12.cpp",
|
||||||
"d3d12/NativeSwapChainImplD3D12.h",
|
"d3d12/NativeSwapChainImplD3D12.h",
|
||||||
"d3d12/PageableD3D12.cpp",
|
"d3d12/PageableD3D12.cpp",
|
||||||
|
|
|
@ -209,6 +209,7 @@ if (DAWN_ENABLE_D3D12)
|
||||||
"d3d12/HeapAllocatorD3D12.h"
|
"d3d12/HeapAllocatorD3D12.h"
|
||||||
"d3d12/HeapD3D12.cpp"
|
"d3d12/HeapD3D12.cpp"
|
||||||
"d3d12/HeapD3D12.h"
|
"d3d12/HeapD3D12.h"
|
||||||
|
"d3d12/IntegerTypes.h"
|
||||||
"d3d12/NativeSwapChainImplD3D12.cpp"
|
"d3d12/NativeSwapChainImplD3D12.cpp"
|
||||||
"d3d12/NativeSwapChainImplD3D12.h"
|
"d3d12/NativeSwapChainImplD3D12.h"
|
||||||
"d3d12/PageableD3D12.cpp"
|
"d3d12/PageableD3D12.cpp"
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace dawn_native { namespace d3d12 {
|
||||||
GPUDescriptorHeapAllocation::GPUDescriptorHeapAllocation(
|
GPUDescriptorHeapAllocation::GPUDescriptorHeapAllocation(
|
||||||
D3D12_GPU_DESCRIPTOR_HANDLE baseDescriptor,
|
D3D12_GPU_DESCRIPTOR_HANDLE baseDescriptor,
|
||||||
Serial lastUsageSerial,
|
Serial lastUsageSerial,
|
||||||
Serial heapSerial)
|
HeapVersionID heapSerial)
|
||||||
: mBaseDescriptor(baseDescriptor),
|
: mBaseDescriptor(baseDescriptor),
|
||||||
mLastUsageSerial(lastUsageSerial),
|
mLastUsageSerial(lastUsageSerial),
|
||||||
mHeapSerial(heapSerial) {
|
mHeapSerial(heapSerial) {
|
||||||
|
@ -33,7 +33,7 @@ namespace dawn_native { namespace d3d12 {
|
||||||
return mLastUsageSerial;
|
return mLastUsageSerial;
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial GPUDescriptorHeapAllocation::GetHeapSerial() const {
|
HeapVersionID GPUDescriptorHeapAllocation::GetHeapSerial() const {
|
||||||
return mHeapSerial;
|
return mHeapSerial;
|
||||||
}
|
}
|
||||||
}} // namespace dawn_native::d3d12
|
}} // namespace dawn_native::d3d12
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#define DAWNNATIVE_D3D12_GPUDESCRIPTORHEAPALLOCATION_H_
|
#define DAWNNATIVE_D3D12_GPUDESCRIPTORHEAPALLOCATION_H_
|
||||||
|
|
||||||
#include "common/Serial.h"
|
#include "common/Serial.h"
|
||||||
|
#include "dawn_native/d3d12/IntegerTypes.h"
|
||||||
#include "dawn_native/d3d12/d3d12_platform.h"
|
#include "dawn_native/d3d12/d3d12_platform.h"
|
||||||
|
|
||||||
namespace dawn_native { namespace d3d12 {
|
namespace dawn_native { namespace d3d12 {
|
||||||
|
@ -26,16 +27,16 @@ namespace dawn_native { namespace d3d12 {
|
||||||
GPUDescriptorHeapAllocation() = default;
|
GPUDescriptorHeapAllocation() = default;
|
||||||
GPUDescriptorHeapAllocation(D3D12_GPU_DESCRIPTOR_HANDLE baseDescriptor,
|
GPUDescriptorHeapAllocation(D3D12_GPU_DESCRIPTOR_HANDLE baseDescriptor,
|
||||||
Serial lastUsageSerial,
|
Serial lastUsageSerial,
|
||||||
Serial heapSerial);
|
HeapVersionID heapSerial);
|
||||||
|
|
||||||
D3D12_GPU_DESCRIPTOR_HANDLE GetBaseDescriptor() const;
|
D3D12_GPU_DESCRIPTOR_HANDLE GetBaseDescriptor() const;
|
||||||
Serial GetLastUsageSerial() const;
|
Serial GetLastUsageSerial() const;
|
||||||
Serial GetHeapSerial() const;
|
HeapVersionID GetHeapSerial() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
D3D12_GPU_DESCRIPTOR_HANDLE mBaseDescriptor = {0};
|
D3D12_GPU_DESCRIPTOR_HANDLE mBaseDescriptor = {0};
|
||||||
Serial mLastUsageSerial = 0;
|
Serial mLastUsageSerial = 0;
|
||||||
Serial mHeapSerial = 0;
|
HeapVersionID mHeapSerial = HeapVersionID(0);
|
||||||
};
|
};
|
||||||
|
|
||||||
}} // namespace dawn_native::d3d12
|
}} // namespace dawn_native::d3d12
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright 2020 The Dawn Authors
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
#ifndef DAWNNATIVE_D3D12_INTEGERTYPES_H_
|
||||||
|
#define DAWNNATIVE_D3D12_INTEGERTYPES_H_
|
||||||
|
|
||||||
|
#include "common/Constants.h"
|
||||||
|
#include "common/TypedInteger.h"
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
namespace dawn_native { namespace d3d12 {
|
||||||
|
|
||||||
|
// An ID used to desambiguate between multiple uses of the same descriptor heap in the
|
||||||
|
// BindGroup allocations.
|
||||||
|
using HeapVersionID = TypedInteger<struct HeapVersionIDT, uint64_t>;
|
||||||
|
|
||||||
|
}} // namespace dawn_native::d3d12
|
||||||
|
|
||||||
|
#endif // DAWNNATIVE_D3D12_INTEGERTYPES_H_
|
|
@ -209,7 +209,7 @@ namespace dawn_native { namespace d3d12 {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial ShaderVisibleDescriptorAllocator::GetShaderVisibleHeapSerialForTesting() const {
|
HeapVersionID ShaderVisibleDescriptorAllocator::GetShaderVisibleHeapSerialForTesting() const {
|
||||||
return mHeapSerial;
|
return mHeapSerial;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
|
|
||||||
#include "dawn_native/Error.h"
|
#include "dawn_native/Error.h"
|
||||||
#include "dawn_native/RingBufferAllocator.h"
|
#include "dawn_native/RingBufferAllocator.h"
|
||||||
|
#include "dawn_native/d3d12/IntegerTypes.h"
|
||||||
#include "dawn_native/d3d12/PageableD3D12.h"
|
#include "dawn_native/d3d12/PageableD3D12.h"
|
||||||
#include "dawn_native/d3d12/d3d12_platform.h"
|
#include "dawn_native/d3d12/d3d12_platform.h"
|
||||||
|
|
||||||
|
@ -64,7 +65,7 @@ namespace dawn_native { namespace d3d12 {
|
||||||
MaybeError AllocateAndSwitchShaderVisibleHeap();
|
MaybeError AllocateAndSwitchShaderVisibleHeap();
|
||||||
|
|
||||||
// For testing purposes only.
|
// For testing purposes only.
|
||||||
Serial GetShaderVisibleHeapSerialForTesting() const;
|
HeapVersionID GetShaderVisibleHeapSerialForTesting() const;
|
||||||
uint64_t GetShaderVisibleHeapSizeForTesting() const;
|
uint64_t GetShaderVisibleHeapSizeForTesting() const;
|
||||||
uint64_t GetShaderVisiblePoolSizeForTesting() const;
|
uint64_t GetShaderVisiblePoolSizeForTesting() const;
|
||||||
bool IsShaderVisibleHeapLockedResidentForTesting() const;
|
bool IsShaderVisibleHeapLockedResidentForTesting() const;
|
||||||
|
@ -91,7 +92,7 @@ namespace dawn_native { namespace d3d12 {
|
||||||
// The serial value of 0 means the shader-visible heaps have not been allocated.
|
// The serial value of 0 means the shader-visible heaps have not been allocated.
|
||||||
// This value is never returned in the GPUDescriptorHeapAllocation after
|
// This value is never returned in the GPUDescriptorHeapAllocation after
|
||||||
// AllocateGPUDescriptors() is called.
|
// AllocateGPUDescriptors() is called.
|
||||||
Serial mHeapSerial = 0;
|
HeapVersionID mHeapSerial = HeapVersionID(0);
|
||||||
|
|
||||||
uint32_t mSizeIncrement;
|
uint32_t mSizeIncrement;
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ TEST_P(D3D12DescriptorHeapTests, SwitchOverViewHeap) {
|
||||||
d3dDevice->GetViewShaderVisibleDescriptorAllocator();
|
d3dDevice->GetViewShaderVisibleDescriptorAllocator();
|
||||||
const uint64_t heapSize = allocator->GetShaderVisibleHeapSizeForTesting();
|
const uint64_t heapSize = allocator->GetShaderVisibleHeapSizeForTesting();
|
||||||
|
|
||||||
const Serial heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
const HeapVersionID heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
||||||
|
|
||||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||||
{
|
{
|
||||||
|
@ -158,7 +158,7 @@ TEST_P(D3D12DescriptorHeapTests, SwitchOverViewHeap) {
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
|
||||||
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(), heapSerial + 1);
|
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(), heapSerial + HeapVersionID(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify the shader visible sampler heaps does not switch over within a single submit.
|
// Verify the shader visible sampler heaps does not switch over within a single submit.
|
||||||
|
@ -194,7 +194,7 @@ TEST_P(D3D12DescriptorHeapTests, NoSwitchOverSamplerHeap) {
|
||||||
d3dDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
d3dDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
||||||
const uint64_t samplerHeapSize = allocator->GetShaderVisibleHeapSizeForTesting();
|
const uint64_t samplerHeapSize = allocator->GetShaderVisibleHeapSizeForTesting();
|
||||||
|
|
||||||
const Serial heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
const HeapVersionID HeapVersionID = allocator->GetShaderVisibleHeapSerialForTesting();
|
||||||
|
|
||||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||||
{
|
{
|
||||||
|
@ -214,7 +214,7 @@ TEST_P(D3D12DescriptorHeapTests, NoSwitchOverSamplerHeap) {
|
||||||
wgpu::CommandBuffer commands = encoder.Finish();
|
wgpu::CommandBuffer commands = encoder.Finish();
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
|
||||||
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(), heapSerial);
|
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(), HeapVersionID);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify shader-visible heaps can be recycled for multiple submits.
|
// Verify shader-visible heaps can be recycled for multiple submits.
|
||||||
|
@ -265,7 +265,7 @@ TEST_P(D3D12DescriptorHeapTests, PoolHeapsInPendingSubmit) {
|
||||||
ShaderVisibleDescriptorAllocator* allocator =
|
ShaderVisibleDescriptorAllocator* allocator =
|
||||||
mD3DDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
mD3DDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
||||||
|
|
||||||
const Serial heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
const HeapVersionID heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
||||||
|
|
||||||
std::set<ComPtr<ID3D12DescriptorHeap>> heaps = {allocator->GetShaderVisibleHeap()};
|
std::set<ComPtr<ID3D12DescriptorHeap>> heaps = {allocator->GetShaderVisibleHeap()};
|
||||||
|
|
||||||
|
@ -280,7 +280,8 @@ TEST_P(D3D12DescriptorHeapTests, PoolHeapsInPendingSubmit) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// After |kNumOfSwitches|, no heaps are recycled.
|
// After |kNumOfSwitches|, no heaps are recycled.
|
||||||
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(), heapSerial + kNumOfSwitches);
|
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(),
|
||||||
|
heapSerial + HeapVersionID(kNumOfSwitches));
|
||||||
EXPECT_EQ(allocator->GetShaderVisiblePoolSizeForTesting(), kNumOfSwitches);
|
EXPECT_EQ(allocator->GetShaderVisiblePoolSizeForTesting(), kNumOfSwitches);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -295,7 +296,7 @@ TEST_P(D3D12DescriptorHeapTests, PoolHeapsInPendingAndMultipleSubmits) {
|
||||||
|
|
||||||
ShaderVisibleDescriptorAllocator* allocator =
|
ShaderVisibleDescriptorAllocator* allocator =
|
||||||
mD3DDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
mD3DDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
||||||
const Serial heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
const HeapVersionID heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
||||||
|
|
||||||
std::set<ComPtr<ID3D12DescriptorHeap>> heaps = {allocator->GetShaderVisibleHeap()};
|
std::set<ComPtr<ID3D12DescriptorHeap>> heaps = {allocator->GetShaderVisibleHeap()};
|
||||||
|
|
||||||
|
@ -309,7 +310,8 @@ TEST_P(D3D12DescriptorHeapTests, PoolHeapsInPendingAndMultipleSubmits) {
|
||||||
heaps.insert(heap);
|
heaps.insert(heap);
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(), heapSerial + kNumOfSwitches);
|
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(),
|
||||||
|
heapSerial + HeapVersionID(kNumOfSwitches));
|
||||||
EXPECT_EQ(allocator->GetShaderVisiblePoolSizeForTesting(), kNumOfSwitches);
|
EXPECT_EQ(allocator->GetShaderVisiblePoolSizeForTesting(), kNumOfSwitches);
|
||||||
|
|
||||||
// Ensure switched-over heaps can be recycled by advancing the GPU by at-least |kFrameDepth|.
|
// Ensure switched-over heaps can be recycled by advancing the GPU by at-least |kFrameDepth|.
|
||||||
|
@ -326,7 +328,8 @@ TEST_P(D3D12DescriptorHeapTests, PoolHeapsInPendingAndMultipleSubmits) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// After switching-over |kNumOfSwitches| x 2, ensure no additional heaps exist.
|
// After switching-over |kNumOfSwitches| x 2, ensure no additional heaps exist.
|
||||||
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(), heapSerial + kNumOfSwitches * 2);
|
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(),
|
||||||
|
heapSerial + HeapVersionID(kNumOfSwitches * 2));
|
||||||
EXPECT_EQ(allocator->GetShaderVisiblePoolSizeForTesting(), kNumOfSwitches);
|
EXPECT_EQ(allocator->GetShaderVisiblePoolSizeForTesting(), kNumOfSwitches);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -335,7 +338,7 @@ TEST_P(D3D12DescriptorHeapTests, GrowHeapsInMultipleSubmits) {
|
||||||
ShaderVisibleDescriptorAllocator* allocator =
|
ShaderVisibleDescriptorAllocator* allocator =
|
||||||
mD3DDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
mD3DDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
||||||
|
|
||||||
const Serial heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
const HeapVersionID heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
||||||
|
|
||||||
std::set<ComPtr<ID3D12DescriptorHeap>> heaps = {allocator->GetShaderVisibleHeap()};
|
std::set<ComPtr<ID3D12DescriptorHeap>> heaps = {allocator->GetShaderVisibleHeap()};
|
||||||
|
|
||||||
|
@ -352,7 +355,8 @@ TEST_P(D3D12DescriptorHeapTests, GrowHeapsInMultipleSubmits) {
|
||||||
|
|
||||||
// Verify the number of switches equals the size of heaps allocated (minus the initial).
|
// Verify the number of switches equals the size of heaps allocated (minus the initial).
|
||||||
EXPECT_EQ(allocator->GetShaderVisiblePoolSizeForTesting(), 1u);
|
EXPECT_EQ(allocator->GetShaderVisiblePoolSizeForTesting(), 1u);
|
||||||
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(), heapSerial + heaps.size() - 1);
|
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(),
|
||||||
|
heapSerial + HeapVersionID(heaps.size() - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify shader-visible heaps do not recycle in a pending submit.
|
// Verify shader-visible heaps do not recycle in a pending submit.
|
||||||
|
@ -360,7 +364,7 @@ TEST_P(D3D12DescriptorHeapTests, GrowHeapsInPendingSubmit) {
|
||||||
ShaderVisibleDescriptorAllocator* allocator =
|
ShaderVisibleDescriptorAllocator* allocator =
|
||||||
mD3DDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
mD3DDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
||||||
|
|
||||||
const Serial heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
const HeapVersionID heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
||||||
|
|
||||||
std::set<ComPtr<ID3D12DescriptorHeap>> heaps = {allocator->GetShaderVisibleHeap()};
|
std::set<ComPtr<ID3D12DescriptorHeap>> heaps = {allocator->GetShaderVisibleHeap()};
|
||||||
|
|
||||||
|
@ -376,7 +380,8 @@ TEST_P(D3D12DescriptorHeapTests, GrowHeapsInPendingSubmit) {
|
||||||
|
|
||||||
// Verify the number of switches equals the size of heaps allocated (minus the initial).
|
// Verify the number of switches equals the size of heaps allocated (minus the initial).
|
||||||
EXPECT_EQ(allocator->GetShaderVisiblePoolSizeForTesting(), 1u);
|
EXPECT_EQ(allocator->GetShaderVisiblePoolSizeForTesting(), 1u);
|
||||||
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(), heapSerial + heaps.size() - 1);
|
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(),
|
||||||
|
heapSerial + HeapVersionID(heaps.size() - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify switching shader-visible heaps do not recycle in a pending submit but do so
|
// Verify switching shader-visible heaps do not recycle in a pending submit but do so
|
||||||
|
@ -806,8 +811,9 @@ TEST_P(D3D12DescriptorHeapTests, EncodeManyUBOAndSamplers) {
|
||||||
ShaderVisibleDescriptorAllocator* samplerAllocator =
|
ShaderVisibleDescriptorAllocator* samplerAllocator =
|
||||||
mD3DDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
mD3DDevice->GetSamplerShaderVisibleDescriptorAllocator();
|
||||||
|
|
||||||
const Serial viewHeapSerial = viewAllocator->GetShaderVisibleHeapSerialForTesting();
|
const HeapVersionID viewHeapSerial = viewAllocator->GetShaderVisibleHeapSerialForTesting();
|
||||||
const Serial samplerHeapSerial = samplerAllocator->GetShaderVisibleHeapSerialForTesting();
|
const HeapVersionID samplerHeapSerial =
|
||||||
|
samplerAllocator->GetShaderVisibleHeapSerialForTesting();
|
||||||
|
|
||||||
const uint32_t viewHeapSize = viewAllocator->GetShaderVisibleHeapSizeForTesting();
|
const uint32_t viewHeapSize = viewAllocator->GetShaderVisibleHeapSizeForTesting();
|
||||||
|
|
||||||
|
@ -867,7 +873,7 @@ TEST_P(D3D12DescriptorHeapTests, EncodeManyUBOAndSamplers) {
|
||||||
|
|
||||||
EXPECT_EQ(viewAllocator->GetShaderVisiblePoolSizeForTesting(), kNumOfViewHeaps);
|
EXPECT_EQ(viewAllocator->GetShaderVisiblePoolSizeForTesting(), kNumOfViewHeaps);
|
||||||
EXPECT_EQ(viewAllocator->GetShaderVisibleHeapSerialForTesting(),
|
EXPECT_EQ(viewAllocator->GetShaderVisibleHeapSerialForTesting(),
|
||||||
viewHeapSerial + kNumOfViewHeaps);
|
viewHeapSerial + HeapVersionID(kNumOfViewHeaps));
|
||||||
|
|
||||||
EXPECT_EQ(samplerAllocator->GetShaderVisiblePoolSizeForTesting(), 0u);
|
EXPECT_EQ(samplerAllocator->GetShaderVisiblePoolSizeForTesting(), 0u);
|
||||||
EXPECT_EQ(samplerAllocator->GetShaderVisibleHeapSerialForTesting(), samplerHeapSerial);
|
EXPECT_EQ(samplerAllocator->GetShaderVisibleHeapSerialForTesting(), samplerHeapSerial);
|
||||||
|
|
|
@ -367,7 +367,8 @@ TEST_P(D3D12DescriptorResidencyTests, SwitchedViewHeapResidency) {
|
||||||
d3dDevice->GetViewShaderVisibleDescriptorAllocator();
|
d3dDevice->GetViewShaderVisibleDescriptorAllocator();
|
||||||
const uint64_t heapSize = allocator->GetShaderVisibleHeapSizeForTesting();
|
const uint64_t heapSize = allocator->GetShaderVisibleHeapSizeForTesting();
|
||||||
|
|
||||||
const Serial heapSerial = allocator->GetShaderVisibleHeapSerialForTesting();
|
const dawn_native::d3d12::HeapVersionID heapSerial =
|
||||||
|
allocator->GetShaderVisibleHeapSerialForTesting();
|
||||||
|
|
||||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||||
{
|
{
|
||||||
|
@ -392,7 +393,8 @@ TEST_P(D3D12DescriptorResidencyTests, SwitchedViewHeapResidency) {
|
||||||
queue.Submit(1, &commands);
|
queue.Submit(1, &commands);
|
||||||
|
|
||||||
// Check the heap serial to ensure the heap has switched.
|
// Check the heap serial to ensure the heap has switched.
|
||||||
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(), heapSerial + 1);
|
EXPECT_EQ(allocator->GetShaderVisibleHeapSerialForTesting(),
|
||||||
|
heapSerial + dawn_native::d3d12::HeapVersionID(1));
|
||||||
|
|
||||||
// Check that currrently bound ShaderVisibleHeap is locked resident.
|
// Check that currrently bound ShaderVisibleHeap is locked resident.
|
||||||
EXPECT_TRUE(allocator->IsShaderVisibleHeapLockedResidentForTesting());
|
EXPECT_TRUE(allocator->IsShaderVisibleHeapLockedResidentForTesting());
|
||||||
|
|
Loading…
Reference in New Issue