From 9ad28d3633a792d0bd3df4124fbcf3f6aa0fa8bf Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Tue, 9 Aug 2016 15:21:04 -0700 Subject: [PATCH 1/7] Incorrect barrier for binary occlusion query --- .../D3D12PredicationQueries/src/D3D12PredicationQueries.cpp | 2 ++ .../UWP/D3D12PredicationQueries/src/D3D12PredicationQueries.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Samples/Desktop/D3D12PredicationQueries/src/D3D12PredicationQueries.cpp b/Samples/Desktop/D3D12PredicationQueries/src/D3D12PredicationQueries.cpp index 18ab88743..0dd4a8685 100644 --- a/Samples/Desktop/D3D12PredicationQueries/src/D3D12PredicationQueries.cpp +++ b/Samples/Desktop/D3D12PredicationQueries/src/D3D12PredicationQueries.cpp @@ -539,9 +539,11 @@ void D3D12PredicationQueries::PopulateCommandList() PIXBeginEvent(m_commandList.Get(), 0, L"Execute occlusion query"); m_commandList->SetGraphicsRootDescriptorTable(0, cbvFarQuad); m_commandList->SetPipelineState(m_queryState.Get()); + m_commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_depthStencil.Get(), D3D12_RESOURCE_STATE_DEPTH_WRITE, D3D12_RESOURCE_STATE_DEPTH_READ)); m_commandList->BeginQuery(m_queryHeap.Get(), D3D12_QUERY_TYPE_BINARY_OCCLUSION, 0); m_commandList->DrawInstanced(4, 1, 8, 0); m_commandList->EndQuery(m_queryHeap.Get(), D3D12_QUERY_TYPE_BINARY_OCCLUSION, 0); + m_commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_depthStencil.Get(), D3D12_RESOURCE_STATE_DEPTH_READ, D3D12_RESOURCE_STATE_DEPTH_WRITE)); PIXEndEvent(m_commandList.Get()); // Resolve the occlusion query and store the results in the query result buffer diff --git a/Samples/UWP/D3D12PredicationQueries/src/D3D12PredicationQueries.cpp b/Samples/UWP/D3D12PredicationQueries/src/D3D12PredicationQueries.cpp index b9f2971fb..692588f5c 100644 --- a/Samples/UWP/D3D12PredicationQueries/src/D3D12PredicationQueries.cpp +++ b/Samples/UWP/D3D12PredicationQueries/src/D3D12PredicationQueries.cpp @@ -535,9 +535,11 @@ void D3D12PredicationQueries::PopulateCommandList() PIXBeginEvent(m_commandList.Get(), 0, L"Execute occlusion query"); m_commandList->SetGraphicsRootDescriptorTable(0, cbvFarQuad); m_commandList->SetPipelineState(m_queryState.Get()); + m_commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_depthStencil.Get(), D3D12_RESOURCE_STATE_DEPTH_WRITE, D3D12_RESOURCE_STATE_DEPTH_READ)); m_commandList->BeginQuery(m_queryHeap.Get(), D3D12_QUERY_TYPE_BINARY_OCCLUSION, 0); m_commandList->DrawInstanced(4, 1, 8, 0); m_commandList->EndQuery(m_queryHeap.Get(), D3D12_QUERY_TYPE_BINARY_OCCLUSION, 0); + m_commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_depthStencil.Get(), D3D12_RESOURCE_STATE_DEPTH_READ, D3D12_RESOURCE_STATE_DEPTH_WRITE)); PIXEndEvent(m_commandList.Get()); // Resolve the occlusion query and store the results in the query result buffer From bf7c803c7bf631f1aca85985b312da9b35fe539d Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Tue, 9 Aug 2016 15:21:54 -0700 Subject: [PATCH 2/7] Residency library fixes fix a write out of bounds and replace NULL with nullptr --- Libraries/D3DX12Residency/d3dx12Residency.h | 4 ++-- Samples/Desktop/D3D12Residency/src/d3dx12Residency.h | 4 ++-- Samples/UWP/D3D12Residency/src/d3dx12Residency.h | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Libraries/D3DX12Residency/d3dx12Residency.h b/Libraries/D3DX12Residency/d3dx12Residency.h index bab138bda..3141eba91 100644 --- a/Libraries/D3DX12Residency/d3dx12Residency.h +++ b/Libraries/D3DX12Residency/d3dx12Residency.h @@ -186,7 +186,7 @@ namespace D3DX12Residency if (pObject->CommandListsUsedOn[CommandListIndex] == false) { pObject->CommandListsUsedOn[CommandListIndex] = true; - if (ppSet == nullptr || CurrentSetSize > MaxResidencySetSize) + if (ppSet == nullptr || CurrentSetSize >= MaxResidencySetSize) { Realloc(); } @@ -727,7 +727,7 @@ namespace D3DX12Residency #if !RESIDENCY_SINGLE_THREADED if (SUCCEEDED(hr)) { - AsyncWorkThread = CreateThread(NULL, 0, AsyncThreadStart, (void*) this, 0, nullptr); + AsyncWorkThread = CreateThread(nullptr, 0, AsyncThreadStart, (void*) this, 0, nullptr); if (AsyncWorkThread == INVALID_HANDLE_VALUE) { diff --git a/Samples/Desktop/D3D12Residency/src/d3dx12Residency.h b/Samples/Desktop/D3D12Residency/src/d3dx12Residency.h index bab138bda..3141eba91 100644 --- a/Samples/Desktop/D3D12Residency/src/d3dx12Residency.h +++ b/Samples/Desktop/D3D12Residency/src/d3dx12Residency.h @@ -186,7 +186,7 @@ namespace D3DX12Residency if (pObject->CommandListsUsedOn[CommandListIndex] == false) { pObject->CommandListsUsedOn[CommandListIndex] = true; - if (ppSet == nullptr || CurrentSetSize > MaxResidencySetSize) + if (ppSet == nullptr || CurrentSetSize >= MaxResidencySetSize) { Realloc(); } @@ -727,7 +727,7 @@ namespace D3DX12Residency #if !RESIDENCY_SINGLE_THREADED if (SUCCEEDED(hr)) { - AsyncWorkThread = CreateThread(NULL, 0, AsyncThreadStart, (void*) this, 0, nullptr); + AsyncWorkThread = CreateThread(nullptr, 0, AsyncThreadStart, (void*) this, 0, nullptr); if (AsyncWorkThread == INVALID_HANDLE_VALUE) { diff --git a/Samples/UWP/D3D12Residency/src/d3dx12Residency.h b/Samples/UWP/D3D12Residency/src/d3dx12Residency.h index bab138bda..3141eba91 100644 --- a/Samples/UWP/D3D12Residency/src/d3dx12Residency.h +++ b/Samples/UWP/D3D12Residency/src/d3dx12Residency.h @@ -186,7 +186,7 @@ namespace D3DX12Residency if (pObject->CommandListsUsedOn[CommandListIndex] == false) { pObject->CommandListsUsedOn[CommandListIndex] = true; - if (ppSet == nullptr || CurrentSetSize > MaxResidencySetSize) + if (ppSet == nullptr || CurrentSetSize >= MaxResidencySetSize) { Realloc(); } @@ -727,7 +727,7 @@ namespace D3DX12Residency #if !RESIDENCY_SINGLE_THREADED if (SUCCEEDED(hr)) { - AsyncWorkThread = CreateThread(NULL, 0, AsyncThreadStart, (void*) this, 0, nullptr); + AsyncWorkThread = CreateThread(nullptr, 0, AsyncThreadStart, (void*) this, 0, nullptr); if (AsyncWorkThread == INVALID_HANDLE_VALUE) { From 4d6d03026cd24f7331c3c10253a5813053f4310a Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Tue, 9 Aug 2016 15:22:38 -0700 Subject: [PATCH 3/7] incorrect usage of CreateEventEx and NULL -> nullptr changes --- .../Desktop/CD3DX12AffinityCommandQueue.cpp | 4 ++-- .../D3DX12AffinityLayer/Desktop/CD3DX12AffinityDevice.cpp | 2 +- .../D3DX12AffinityLayer/Desktop/CD3DX12AffinityFence.cpp | 2 +- .../D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.cpp | 4 ++-- Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityDevice.cpp | 2 +- Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityFence.cpp | 2 +- .../src/D3D12HeterogeneousMultiadapter.cpp | 2 +- .../src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp | 4 ++-- .../src/D3DX12AffinityLayer/CD3DX12AffinityDevice.cpp | 2 +- .../src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp | 2 +- .../src/D3D12HeterogeneousMultiadapter.cpp | 2 +- .../src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp | 4 ++-- .../src/D3DX12AffinityLayer/CD3DX12AffinityDevice.cpp | 2 +- .../src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp | 2 +- 14 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.cpp b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.cpp index 1dd05ab75..e6e6cb4b5 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.cpp +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.cpp @@ -111,7 +111,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::ExecuteCommandLists( ID3D12Fence* pFence; GetParentDevice()->mDevices[0]->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); Queue->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); @@ -278,7 +278,7 @@ void CD3DX12AffinityCommandQueue::WaitForCompletion(UINT AffinityMask) GetParentDevice()->GetChildObject(0) : GetParentDevice()->GetChildObject(i); pDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); mCommandQueues[i]->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityDevice.cpp b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityDevice.cpp index 0f3b461ba..33e354b3e 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityDevice.cpp +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityDevice.cpp @@ -1560,7 +1560,7 @@ void CD3DX12AffinityDevice::SwitchToNextNode() ID3D12Fence* pFence; GetParentDevice()->mDevices[0]->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); mSyncCommandQueues[mActiveNodeIndex]->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityFence.cpp b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityFence.cpp index 0e5f3a7a3..ccefdb91e 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityFence.cpp +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityFence.cpp @@ -79,7 +79,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityFence::WaitOnFenceCompletion( { ID3D12Fence* Fence = mFences[i]; Events.push_back(0); - Events[EventCount] = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); + Events[EventCount] = CreateEvent(nullptr, FALSE, FALSE, nullptr); HRESULT const hr = Fence->SetEventOnCompletion(Value, Events[EventCount]); if (hr != S_OK) diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.cpp b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.cpp index 1dd05ab75..e6e6cb4b5 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.cpp +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.cpp @@ -111,7 +111,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::ExecuteCommandLists( ID3D12Fence* pFence; GetParentDevice()->mDevices[0]->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); Queue->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); @@ -278,7 +278,7 @@ void CD3DX12AffinityCommandQueue::WaitForCompletion(UINT AffinityMask) GetParentDevice()->GetChildObject(0) : GetParentDevice()->GetChildObject(i); pDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); mCommandQueues[i]->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityDevice.cpp b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityDevice.cpp index 0f3b461ba..33e354b3e 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityDevice.cpp +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityDevice.cpp @@ -1560,7 +1560,7 @@ void CD3DX12AffinityDevice::SwitchToNextNode() ID3D12Fence* pFence; GetParentDevice()->mDevices[0]->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); mSyncCommandQueues[mActiveNodeIndex]->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityFence.cpp b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityFence.cpp index 0e5f3a7a3..ccefdb91e 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityFence.cpp +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityFence.cpp @@ -79,7 +79,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityFence::WaitOnFenceCompletion( { ID3D12Fence* Fence = mFences[i]; Events.push_back(0); - Events[EventCount] = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); + Events[EventCount] = CreateEvent(nullptr, FALSE, FALSE, nullptr); HRESULT const hr = Fence->SetEventOnCompletion(Value, Events[EventCount]); if (hr != S_OK) diff --git a/Samples/Desktop/D3D12HeterogeneousMultiadapter/src/D3D12HeterogeneousMultiadapter.cpp b/Samples/Desktop/D3D12HeterogeneousMultiadapter/src/D3D12HeterogeneousMultiadapter.cpp index 041349bea..f12d76e6b 100644 --- a/Samples/Desktop/D3D12HeterogeneousMultiadapter/src/D3D12HeterogeneousMultiadapter.cpp +++ b/Samples/Desktop/D3D12HeterogeneousMultiadapter/src/D3D12HeterogeneousMultiadapter.cpp @@ -772,7 +772,7 @@ void D3D12HeterogeneousMultiadapter::LoadAssets() for (UINT i = 0; i < GraphicsAdaptersCount; i++) { // Create an event handle to use for frame synchronization. - m_fenceEvents[i] = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); + m_fenceEvents[i] = CreateEvent(nullptr, FALSE, FALSE, nullptr); if (m_fenceEvents == nullptr) { ThrowIfFailed(HRESULT_FROM_WIN32(GetLastError())); diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp index 1dd05ab75..e6e6cb4b5 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp @@ -111,7 +111,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::ExecuteCommandLists( ID3D12Fence* pFence; GetParentDevice()->mDevices[0]->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); Queue->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); @@ -278,7 +278,7 @@ void CD3DX12AffinityCommandQueue::WaitForCompletion(UINT AffinityMask) GetParentDevice()->GetChildObject(0) : GetParentDevice()->GetChildObject(i); pDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); mCommandQueues[i]->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDevice.cpp b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDevice.cpp index 0f3b461ba..33e354b3e 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDevice.cpp +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDevice.cpp @@ -1560,7 +1560,7 @@ void CD3DX12AffinityDevice::SwitchToNextNode() ID3D12Fence* pFence; GetParentDevice()->mDevices[0]->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); mSyncCommandQueues[mActiveNodeIndex]->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp index 0e5f3a7a3..ccefdb91e 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp @@ -79,7 +79,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityFence::WaitOnFenceCompletion( { ID3D12Fence* Fence = mFences[i]; Events.push_back(0); - Events[EventCount] = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); + Events[EventCount] = CreateEvent(nullptr, FALSE, FALSE, nullptr); HRESULT const hr = Fence->SetEventOnCompletion(Value, Events[EventCount]); if (hr != S_OK) diff --git a/Samples/UWP/D3D12HeterogeneousMultiadapter/src/D3D12HeterogeneousMultiadapter.cpp b/Samples/UWP/D3D12HeterogeneousMultiadapter/src/D3D12HeterogeneousMultiadapter.cpp index ecb938b20..ddfbb6983 100644 --- a/Samples/UWP/D3D12HeterogeneousMultiadapter/src/D3D12HeterogeneousMultiadapter.cpp +++ b/Samples/UWP/D3D12HeterogeneousMultiadapter/src/D3D12HeterogeneousMultiadapter.cpp @@ -768,7 +768,7 @@ void D3D12HeterogeneousMultiadapter::LoadAssets() for (UINT i = 0; i < GraphicsAdaptersCount; i++) { // Create an event handle to use for frame synchronization. - m_fenceEvents[i] = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); + m_fenceEvents[i] = CreateEvent(nullptr, FALSE, FALSE, nullptr); if (m_fenceEvents == nullptr) { ThrowIfFailed(HRESULT_FROM_WIN32(GetLastError())); diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp index 1dd05ab75..e6e6cb4b5 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp @@ -111,7 +111,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::ExecuteCommandLists( ID3D12Fence* pFence; GetParentDevice()->mDevices[0]->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); Queue->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); @@ -278,7 +278,7 @@ void CD3DX12AffinityCommandQueue::WaitForCompletion(UINT AffinityMask) GetParentDevice()->GetChildObject(0) : GetParentDevice()->GetChildObject(i); pDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); mCommandQueues[i]->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDevice.cpp b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDevice.cpp index 0f3b461ba..33e354b3e 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDevice.cpp +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDevice.cpp @@ -1560,7 +1560,7 @@ void CD3DX12AffinityDevice::SwitchToNextNode() ID3D12Fence* pFence; GetParentDevice()->mDevices[0]->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)); mSyncCommandQueues[mActiveNodeIndex]->Signal(pFence, 1); - HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + HANDLE hEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); pFence->SetEventOnCompletion(1, hEvent); WaitForSingleObject(hEvent, INFINITE); CloseHandle(hEvent); diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp index 0e5f3a7a3..ccefdb91e 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp @@ -79,7 +79,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityFence::WaitOnFenceCompletion( { ID3D12Fence* Fence = mFences[i]; Events.push_back(0); - Events[EventCount] = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); + Events[EventCount] = CreateEvent(nullptr, FALSE, FALSE, nullptr); HRESULT const hr = Fence->SetEventOnCompletion(Value, Events[EventCount]); if (hr != S_OK) From a422981dfdf3d9db4b20b68647d219cc7875d262 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Tue, 9 Aug 2016 16:06:31 -0700 Subject: [PATCH 4/7] fixing premature command list reset in Bundles and DynamicIndexing samples --- Samples/Desktop/D3D12Bundles/src/D3D12Bundles.cpp | 12 ++---------- .../src/D3D12DynamicIndexing.cpp | 12 ++---------- Samples/UWP/D3D12Bundles/src/D3D12Bundles.cpp | 12 ++---------- .../src/D3D12DynamicIndexing.cpp | 12 ++---------- 4 files changed, 8 insertions(+), 40 deletions(-) diff --git a/Samples/Desktop/D3D12Bundles/src/D3D12Bundles.cpp b/Samples/Desktop/D3D12Bundles/src/D3D12Bundles.cpp index da9cdd176..ddbc2b84f 100644 --- a/Samples/Desktop/D3D12Bundles/src/D3D12Bundles.cpp +++ b/Samples/Desktop/D3D12Bundles/src/D3D12Bundles.cpp @@ -424,13 +424,13 @@ void D3D12Bundles::LoadAssets() m_device->CreateDepthStencilView(m_depthStencil.Get(), &depthStencilDesc, m_dsvHeap->GetCPUDescriptorHandleForHeapStart()); } + CreateFrameResources(); + // Close the command list and execute it to begin the initial GPU setup. ThrowIfFailed(m_commandList->Close()); ID3D12CommandList* ppCommandLists[] = { m_commandList.Get() }; m_commandQueue->ExecuteCommandLists(_countof(ppCommandLists), ppCommandLists); - CreateFrameResources(); - // Create synchronization objects and wait until assets have been uploaded to the GPU. { ThrowIfFailed(m_device->CreateFence(m_fenceValue, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&m_fence))); @@ -557,8 +557,6 @@ void D3D12Bundles::OnKeyUp(UINT8 key) // Create the resources that will be used every frame. void D3D12Bundles::CreateFrameResources() { - ThrowIfFailed(m_commandList->Reset(m_commandAllocator.Get(), m_pipelineState1.Get())); - // Initialize each frame resource. CD3DX12_CPU_DESCRIPTOR_HANDLE cbvSrvHandle(m_cbvSrvHeap->GetCPUDescriptorHandleForHeapStart(), 1, m_cbvSrvDescriptorSize); // Move past the SRV in slot 1. for (UINT i = 0; i < FrameCount; i++) @@ -585,12 +583,6 @@ void D3D12Bundles::CreateFrameResources() m_frameResources.push_back(pFrameResource); } - - // Close the command list and use it to execute the initial setup. - // This places the CBVs in the heap. - ThrowIfFailed(m_commandList->Close()); - ID3D12CommandList* ppCommandLists[] = { m_commandList.Get() }; - m_commandQueue->ExecuteCommandLists(_countof(ppCommandLists), ppCommandLists); } void D3D12Bundles::PopulateCommandList(FrameResource* pFrameResource) diff --git a/Samples/Desktop/D3D12DynamicIndexing/src/D3D12DynamicIndexing.cpp b/Samples/Desktop/D3D12DynamicIndexing/src/D3D12DynamicIndexing.cpp index acd04411a..2d20f9842 100644 --- a/Samples/Desktop/D3D12DynamicIndexing/src/D3D12DynamicIndexing.cpp +++ b/Samples/Desktop/D3D12DynamicIndexing/src/D3D12DynamicIndexing.cpp @@ -522,13 +522,13 @@ void D3D12DynamicIndexing::LoadAssets() m_device->CreateDepthStencilView(m_depthStencil.Get(), &depthStencilDesc, m_dsvHeap->GetCPUDescriptorHandleForHeapStart()); } + CreateFrameResources(); + // Close the command list and execute it to begin the initial GPU setup. ThrowIfFailed(m_commandList->Close()); ID3D12CommandList* ppCommandLists[] = { m_commandList.Get() }; m_commandQueue->ExecuteCommandLists(_countof(ppCommandLists), ppCommandLists); - CreateFrameResources(); - // Create synchronization objects and wait until assets have been uploaded to the GPU. { ThrowIfFailed(m_device->CreateFence(m_fenceValue, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&m_fence))); @@ -655,8 +655,6 @@ void D3D12DynamicIndexing::OnKeyUp(UINT8 key) // Create the resources that will be used every frame. void D3D12DynamicIndexing::CreateFrameResources() { - ThrowIfFailed(m_commandList->Reset(m_commandAllocator.Get(), m_pipelineState.Get())); - // Initialize each frame resource. CD3DX12_CPU_DESCRIPTOR_HANDLE cbvSrvHandle(m_cbvSrvHeap->GetCPUDescriptorHandleForHeapStart(), CityMaterialCount + 1, m_cbvSrvDescriptorSize); // Move past the SRVs. for (UINT i = 0; i < FrameCount; i++) @@ -683,12 +681,6 @@ void D3D12DynamicIndexing::CreateFrameResources() m_frameResources.push_back(pFrameResource); } - - // Close the command list and use it to execute the initial setup. - // This places the CBVs in the heap. - ThrowIfFailed(m_commandList->Close()); - ID3D12CommandList* ppCommandLists[] = { m_commandList.Get() }; - m_commandQueue->ExecuteCommandLists(_countof(ppCommandLists), ppCommandLists); } void D3D12DynamicIndexing::PopulateCommandList(FrameResource* pFrameResource) diff --git a/Samples/UWP/D3D12Bundles/src/D3D12Bundles.cpp b/Samples/UWP/D3D12Bundles/src/D3D12Bundles.cpp index b944b4646..179d7f5ae 100644 --- a/Samples/UWP/D3D12Bundles/src/D3D12Bundles.cpp +++ b/Samples/UWP/D3D12Bundles/src/D3D12Bundles.cpp @@ -420,13 +420,13 @@ void D3D12Bundles::LoadAssets() m_device->CreateDepthStencilView(m_depthStencil.Get(), &depthStencilDesc, m_dsvHeap->GetCPUDescriptorHandleForHeapStart()); } + CreateFrameResources(); + // Close the command list and execute it to begin the initial GPU setup. ThrowIfFailed(m_commandList->Close()); ID3D12CommandList* ppCommandLists[] = { m_commandList.Get() }; m_commandQueue->ExecuteCommandLists(_countof(ppCommandLists), ppCommandLists); - CreateFrameResources(); - // Create synchronization objects and wait until assets have been uploaded to the GPU. { ThrowIfFailed(m_device->CreateFence(m_fenceValue, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&m_fence))); @@ -553,8 +553,6 @@ void D3D12Bundles::OnKeyUp(UINT8 key) // Create the resources that will be used every frame. void D3D12Bundles::CreateFrameResources() { - ThrowIfFailed(m_commandList->Reset(m_commandAllocator.Get(), m_pipelineState1.Get())); - // Initialize each frame resource. CD3DX12_CPU_DESCRIPTOR_HANDLE cbvSrvHandle(m_cbvSrvHeap->GetCPUDescriptorHandleForHeapStart(), 1, m_cbvSrvDescriptorSize); // Move past the SRV in slot 1. for (UINT i = 0; i < FrameCount; i++) @@ -581,12 +579,6 @@ void D3D12Bundles::CreateFrameResources() m_frameResources.push_back(pFrameResource); } - - // Close the command list and use it to execute the initial setup. - // This places the CBVs in the heap. - ThrowIfFailed(m_commandList->Close()); - ID3D12CommandList* ppCommandLists[] = { m_commandList.Get() }; - m_commandQueue->ExecuteCommandLists(_countof(ppCommandLists), ppCommandLists); } void D3D12Bundles::PopulateCommandList(FrameResource* pFrameResource) diff --git a/Samples/UWP/D3D12DynamicIndexing/src/D3D12DynamicIndexing.cpp b/Samples/UWP/D3D12DynamicIndexing/src/D3D12DynamicIndexing.cpp index 8b956f30e..3dd530323 100644 --- a/Samples/UWP/D3D12DynamicIndexing/src/D3D12DynamicIndexing.cpp +++ b/Samples/UWP/D3D12DynamicIndexing/src/D3D12DynamicIndexing.cpp @@ -518,13 +518,13 @@ void D3D12DynamicIndexing::LoadAssets() m_device->CreateDepthStencilView(m_depthStencil.Get(), &depthStencilDesc, m_dsvHeap->GetCPUDescriptorHandleForHeapStart()); } + CreateFrameResources(); + // Close the command list and execute it to begin the initial GPU setup. ThrowIfFailed(m_commandList->Close()); ID3D12CommandList* ppCommandLists[] = { m_commandList.Get() }; m_commandQueue->ExecuteCommandLists(_countof(ppCommandLists), ppCommandLists); - CreateFrameResources(); - // Create synchronization objects and wait until assets have been uploaded to the GPU. { ThrowIfFailed(m_device->CreateFence(m_fenceValue, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&m_fence))); @@ -651,8 +651,6 @@ void D3D12DynamicIndexing::OnKeyUp(UINT8 key) // Create the resources that will be used every frame. void D3D12DynamicIndexing::CreateFrameResources() { - ThrowIfFailed(m_commandList->Reset(m_commandAllocator.Get(), m_pipelineState.Get())); - // Initialize each frame resource. CD3DX12_CPU_DESCRIPTOR_HANDLE cbvSrvHandle(m_cbvSrvHeap->GetCPUDescriptorHandleForHeapStart(), CityMaterialCount + 1, m_cbvSrvDescriptorSize); // Move past the SRVs. for (UINT i = 0; i < FrameCount; i++) @@ -679,12 +677,6 @@ void D3D12DynamicIndexing::CreateFrameResources() m_frameResources.push_back(pFrameResource); } - - // Close the command list and use it to execute the initial setup. - // This places the CBVs in the heap. - ThrowIfFailed(m_commandList->Close()); - ID3D12CommandList* ppCommandLists[] = { m_commandList.Get() }; - m_commandQueue->ExecuteCommandLists(_countof(ppCommandLists), ppCommandLists); } void D3D12DynamicIndexing::PopulateCommandList(FrameResource* pFrameResource) From 55f154162356c873f686bccbe794031fdb28429a Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Thu, 11 Aug 2016 09:23:24 -0700 Subject: [PATCH 5/7] The UWP pipeline state cache sample must use a storage location accessible to UWP apps in order to successfully create the cache files. --- Samples/UWP/D3D12PipelineStateCache/src/PSOLibrary.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Samples/UWP/D3D12PipelineStateCache/src/PSOLibrary.cpp b/Samples/UWP/D3D12PipelineStateCache/src/PSOLibrary.cpp index d042ca7db..da18bb406 100644 --- a/Samples/UWP/D3D12PipelineStateCache/src/PSOLibrary.cpp +++ b/Samples/UWP/D3D12PipelineStateCache/src/PSOLibrary.cpp @@ -27,9 +27,8 @@ PSOLibrary::PSOLibrary(UINT frameCount, UINT cbvRootSignatureIndex) : ZeroMemory(m_inflightPSOFlags, sizeof(m_inflightPSOFlags)); ZeroMemory(m_workerThreads, sizeof(m_workerThreads)); - WCHAR path[512]; - GetAssetsPath(path, _countof(path)); - m_assetsPath = path; + m_assetsPath = Windows::Storage::ApplicationData::Current->LocalCacheFolder->Path->Data(); + m_assetsPath += L"\\"; m_flagsMutex = CreateMutex(nullptr, FALSE, nullptr); } From 785cf9b0f986eb7ae68c31526b28695cc515c444 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Thu, 21 Jul 2016 11:30:13 -0700 Subject: [PATCH 6/7] Use CreateEvent instead of CreateEventEx This was fixed in most samples already, but some cases were missed. Also changing NULL -> nullptr in related call sites. --- Templates/DirectX12App/Common/DeviceResources.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Templates/DirectX12App/Common/DeviceResources.cpp b/Templates/DirectX12App/Common/DeviceResources.cpp index 85e38b0c6..806f154e6 100644 --- a/Templates/DirectX12App/Common/DeviceResources.cpp +++ b/Templates/DirectX12App/Common/DeviceResources.cpp @@ -168,7 +168,11 @@ void DX::DeviceResources::CreateDeviceResources() DX::ThrowIfFailed(m_d3dDevice->CreateFence(m_fenceValues[m_currentFrame], D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&m_fence))); m_fenceValues[m_currentFrame]++; - m_fenceEvent = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); + m_fenceEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr); + if (m_fenceEvent == nullptr) + { + DX::ThrowIfFailed(HRESULT_FROM_WIN32(GetLastError())); + } } // These resources need to be recreated every time the window size is changed. From ae0a31046b6631cfa473ee4b43bb76961657f2a2 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Thu, 11 Aug 2016 09:48:02 -0700 Subject: [PATCH 7/7] Affinity Layer update - Add default values for AffinityIndex to allow for better compatibility with the D3D12 API. - Use vector::data() method instead of &vector[0] to correctly handle cases where the vector is empty --- .../Desktop/CD3DX12AffinityCommandList.h | 2 +- .../Desktop/CD3DX12AffinityCommandQueue.cpp | 6 +++--- .../Desktop/CD3DX12AffinityCommandQueue.h | 10 +++++----- .../Desktop/CD3DX12AffinityDescriptorHeap.h | 2 +- .../Desktop/CD3DX12AffinityFence.cpp | 2 +- .../Desktop/CD3DX12AffinityGraphicsCommandList.cpp | 12 ++++++------ .../Desktop/CD3DX12AffinityObject.cpp | 4 +--- .../Desktop/CD3DX12AffinityObject.h | 6 +++--- .../Desktop/CD3DX12AffinityResource.cpp | 3 +-- .../Desktop/CD3DX12AffinityResource.h | 4 ++-- .../Desktop/CDXGIAffinitySwapChain.cpp | 4 ++-- .../Desktop/CDXGIAffinitySwapChain.h | 6 +++--- .../UWP/CD3DX12AffinityCommandList.h | 2 +- .../UWP/CD3DX12AffinityCommandQueue.cpp | 6 +++--- .../UWP/CD3DX12AffinityCommandQueue.h | 10 +++++----- .../UWP/CD3DX12AffinityDescriptorHeap.h | 2 +- .../D3DX12AffinityLayer/UWP/CD3DX12AffinityFence.cpp | 2 +- .../UWP/CD3DX12AffinityGraphicsCommandList.cpp | 12 ++++++------ .../UWP/CD3DX12AffinityObject.cpp | 4 +--- .../D3DX12AffinityLayer/UWP/CD3DX12AffinityObject.h | 6 +++--- .../UWP/CD3DX12AffinityResource.cpp | 3 +-- .../UWP/CD3DX12AffinityResource.h | 4 ++-- .../UWP/CDXGIAffinitySwapChain.cpp | 4 ++-- .../D3DX12AffinityLayer/UWP/CDXGIAffinitySwapChain.h | 6 +++--- .../D3DX12AffinityLayer/CD3DX12AffinityCommandList.h | 2 +- .../CD3DX12AffinityCommandQueue.cpp | 6 +++--- .../CD3DX12AffinityCommandQueue.h | 10 +++++----- .../CD3DX12AffinityDescriptorHeap.h | 2 +- .../src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp | 2 +- .../CD3DX12AffinityGraphicsCommandList.cpp | 12 ++++++------ .../D3DX12AffinityLayer/CD3DX12AffinityObject.cpp | 4 +--- .../src/D3DX12AffinityLayer/CD3DX12AffinityObject.h | 6 +++--- .../D3DX12AffinityLayer/CD3DX12AffinityResource.cpp | 3 +-- .../D3DX12AffinityLayer/CD3DX12AffinityResource.h | 4 ++-- .../D3DX12AffinityLayer/CDXGIAffinitySwapChain.cpp | 4 ++-- .../src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.h | 6 +++--- .../D3DX12AffinityLayer/CD3DX12AffinityCommandList.h | 2 +- .../CD3DX12AffinityCommandQueue.cpp | 6 +++--- .../CD3DX12AffinityCommandQueue.h | 10 +++++----- .../CD3DX12AffinityDescriptorHeap.h | 2 +- .../src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp | 2 +- .../CD3DX12AffinityGraphicsCommandList.cpp | 12 ++++++------ .../D3DX12AffinityLayer/CD3DX12AffinityObject.cpp | 4 +--- .../src/D3DX12AffinityLayer/CD3DX12AffinityObject.h | 6 +++--- .../D3DX12AffinityLayer/CD3DX12AffinityResource.cpp | 3 +-- .../D3DX12AffinityLayer/CD3DX12AffinityResource.h | 4 ++-- .../D3DX12AffinityLayer/CDXGIAffinitySwapChain.cpp | 4 ++-- .../src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.h | 6 +++--- 48 files changed, 116 insertions(+), 128 deletions(-) diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandList.h b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandList.h index 7c5a947b6..4382c497d 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandList.h +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandList.h @@ -19,7 +19,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityCo public: CD3DX12AffinityCommandList(CD3DX12AffinityDevice* device, ID3D12CommandList** commandLists, UINT Count); - D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(UINT AffinityIndex); + D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(UINT AffinityIndex = 0); BOOL STDMETHODCALLTYPE AssertResourceState( _In_ CD3DX12AffinityResource* pResource, diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.cpp b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.cpp index e6e6cb4b5..4b3c20b65 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.cpp +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.cpp @@ -105,7 +105,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::ExecuteCommandLists( } } - Queue->ExecuteCommandLists(index, &mCachedCommandLists[0]); + Queue->ExecuteCommandLists(index, mCachedCommandLists.data()); #ifdef SERIALIZE_COMMNANDLIST_EXECUTION ID3D12Fence* pFence; @@ -236,9 +236,9 @@ D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::GetDesc( return mCommandQueues[AffinityIndex]->GetDesc(); } -ID3D12CommandQueue* CD3DX12AffinityCommandQueue::GetQueueForSwapChainCreation(UINT const Index) +ID3D12CommandQueue* CD3DX12AffinityCommandQueue::GetQueueForSwapChainCreation(UINT AffinityIndex) { - return mCommandQueues[Index]; + return mCommandQueues[AffinityIndex]; } CD3DX12AffinityCommandQueue::CD3DX12AffinityCommandQueue(CD3DX12AffinityDevice* device, ID3D12CommandQueue** commandQueues, UINT Count) diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.h b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.h index a4e2478fd..dd15d7a3a 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.h +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityCommandQueue.h @@ -71,18 +71,18 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityCo HRESULT STDMETHODCALLTYPE GetTimestampFrequency( _Out_ UINT64* pFrequency, - _In_ UINT AffinityIndex = 0); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetClockCalibration( _Out_ UINT64* pGpuTimestamp, _Out_ UINT64* pCpuTimestamp, - UINT AffinityIndex); + UINT AffinityIndex = 0); - D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex); + D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex = 0); - ID3D12CommandQueue* GetQueueForSwapChainCreation(UINT const Index = 0); + ID3D12CommandQueue* GetQueueForSwapChainCreation(UINT AffinityIndex); ID3D12CommandQueue* GetChildObject(UINT AffinityIndex); - void WaitForCompletion(UINT AffinityMask = 0); + void WaitForCompletion(UINT AffinityMask = EAffinityMask::AllNodes); CD3DX12AffinityCommandQueue(CD3DX12AffinityDevice* device, ID3D12CommandQueue** commandQueues, UINT Count); diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityDescriptorHeap.h b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityDescriptorHeap.h index d4fc8ccdb..6e744365e 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityDescriptorHeap.h +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityDescriptorHeap.h @@ -19,7 +19,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityDe friend class CD3DX12AffinityDevice; public: - D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex); + D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex = 0); D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(void); diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityFence.cpp b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityFence.cpp index ccefdb91e..0b6caef54 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityFence.cpp +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityFence.cpp @@ -90,7 +90,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityFence::WaitOnFenceCompletion( ++EventCount; } } - WaitForMultipleObjects((DWORD)EventCount, &(Events[0]), TRUE, INFINITE); + WaitForMultipleObjects((DWORD)EventCount, Events.data(), TRUE, INFINITE); return S_OK; } diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityGraphicsCommandList.cpp b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityGraphicsCommandList.cpp index d64c8c42f..09b37769f 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityGraphicsCommandList.cpp +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityGraphicsCommandList.cpp @@ -357,7 +357,7 @@ void CD3DX12AffinityGraphicsCommandList::ResourceBarrier( mCachedResourceBarriers[b] = Use; } - List->ResourceBarrier(NumBarriers, &mCachedResourceBarriers[0]); + List->ResourceBarrier(NumBarriers, mCachedResourceBarriers.data()); } } } @@ -392,7 +392,7 @@ void CD3DX12AffinityGraphicsCommandList::SetDescriptorHeaps( mCachedDescriptorHeaps[h] = static_cast(ppDescriptorHeaps[h])->GetChildObject(i); } - List->SetDescriptorHeaps(NumDescriptorHeaps, &mCachedDescriptorHeaps[0]); + List->SetDescriptorHeaps(NumDescriptorHeaps, mCachedDescriptorHeaps.data()); } } } @@ -602,7 +602,7 @@ void CD3DX12AffinityGraphicsCommandList::IASetVertexBuffers( mCachedBufferViews[v].BufferLocation = GetParentDevice()->GetGPUVirtualAddress(pViews[v].BufferLocation, i); } - List->IASetVertexBuffers(StartSlot, NumViews, &mCachedBufferViews[0]); + List->IASetVertexBuffers(StartSlot, NumViews, mCachedBufferViews.data()); } } } @@ -627,7 +627,7 @@ void CD3DX12AffinityGraphicsCommandList::SOSetTargets( mCachedStreamOutBufferViews[v].BufferFilledSizeLocation = GetParentDevice()->GetGPUVirtualAddress(pViews[v].BufferFilledSizeLocation, i); } - List->SOSetTargets(StartSlot, NumViews, &mCachedStreamOutBufferViews[0]); + List->SOSetTargets(StartSlot, NumViews, mCachedStreamOutBufferViews.data()); } } } @@ -653,11 +653,11 @@ void CD3DX12AffinityGraphicsCommandList::OMSetRenderTargets( if (pDepthStencilDescriptor) { D3D12_CPU_DESCRIPTOR_HANDLE ActualDepthStencilDescriptor = GetParentDevice()->GetCPUHeapPointer(*pDepthStencilDescriptor, i); - List->OMSetRenderTargets(NumRenderTargetDescriptors, &mCachedRenderTargetViews[0], RTsSingleHandleToDescriptorRange, &ActualDepthStencilDescriptor); + List->OMSetRenderTargets(NumRenderTargetDescriptors, mCachedRenderTargetViews.data(), RTsSingleHandleToDescriptorRange, &ActualDepthStencilDescriptor); } else { - List->OMSetRenderTargets(NumRenderTargetDescriptors, &mCachedRenderTargetViews[0], RTsSingleHandleToDescriptorRange, nullptr); + List->OMSetRenderTargets(NumRenderTargetDescriptors, mCachedRenderTargetViews.data(), RTsSingleHandleToDescriptorRange, nullptr); } } } diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityObject.cpp b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityObject.cpp index 8f7ba456f..f12a20441 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityObject.cpp +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityObject.cpp @@ -67,7 +67,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityObject::SetName( { for (UINT i = 0; i < D3DX12_MAX_ACTIVE_NODES; ++i) { - if(mObjects[i]) + if (mObjects[i]) { ((ID3D12Object*)mObjects[i])->SetName(Name); } @@ -87,7 +87,6 @@ void STDMETHODCALLTYPE CD3DX12AffinityObject::SetAffinity( UINT AffinityMask) { mAffinityMask = AffinityMask & GetNodeMask(); - } UINT CD3DX12AffinityObject::AffinityIndexToMask(UINT const Index) @@ -126,7 +125,6 @@ CD3DX12AffinityObject::~CD3DX12AffinityObject() DebugLog(L"Releasing handle 0x%p, ref count is now %lu\n", mObjects[i], RefCount); } } - } ULONG CD3DX12AffinityObject::AddRef() diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityObject.h b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityObject.h index b2e1a883c..f3fd727f7 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityObject.h +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityObject.h @@ -34,18 +34,18 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityOb _In_ REFGUID guid, _Inout_ UINT* pDataSize, _Out_writes_bytes_opt_(*pDataSize) void* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetPrivateData( _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_(DataSize) const void* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( _In_ REFGUID guid, _In_opt_ const IUnknown* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetName( _In_z_ LPCWSTR Name, diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityResource.cpp b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityResource.cpp index 481be65dd..356535742 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityResource.cpp +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityResource.cpp @@ -73,8 +73,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityResource::Unmap( UINT Subresource, const D3D12_RANGE* pWrittenRange) { - if (GetParentDevice()->GetAffinityMode() == EAffinityMode::LDA - ) + if (GetParentDevice()->GetAffinityMode() == EAffinityMode::LDA) { mResources[0]->Unmap(Subresource, pWrittenRange); return; diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityResource.h b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityResource.h index 9bca8fcd9..db3a98a9d 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityResource.h +++ b/Libraries/D3DX12AffinityLayer/Desktop/CD3DX12AffinityResource.h @@ -43,12 +43,12 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityRe UINT DstDepthPitch, UINT SrcSubresource, _In_opt_ const D3D12_BOX* pSrcBox, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetHeapProperties( _Out_opt_ D3D12_HEAP_PROPERTIES* pHeapProperties, _Out_opt_ D3D12_HEAP_FLAGS* pHeapFlags, - UINT AffinityIndex); + UINT AffinityIndex = 0); CD3DX12AffinityResource(CD3DX12AffinityDevice* device, ID3D12Resource** resources, UINT Count, ID3D12Heap** heaps = nullptr); ~CD3DX12AffinityResource(); diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CDXGIAffinitySwapChain.cpp b/Libraries/D3DX12AffinityLayer/Desktop/CDXGIAffinitySwapChain.cpp index f673dc7c8..328120c21 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CDXGIAffinitySwapChain.cpp +++ b/Libraries/D3DX12AffinityLayer/Desktop/CDXGIAffinitySwapChain.cpp @@ -349,8 +349,8 @@ HRESULT STDMETHODCALLTYPE CDXGIAffinitySwapChain::ResizeBuffers( Height, NewFormat, SwapChainFlags, - &creationNodeMasks[0], - &pQueues[0])); + creationNodeMasks.data(), + pQueues.data())); GetParentDevice()->g_ActiveNodeIndex = 0; } diff --git a/Libraries/D3DX12AffinityLayer/Desktop/CDXGIAffinitySwapChain.h b/Libraries/D3DX12AffinityLayer/Desktop/CDXGIAffinitySwapChain.h index 7fddd4d68..009b33019 100644 --- a/Libraries/D3DX12AffinityLayer/Desktop/CDXGIAffinitySwapChain.h +++ b/Libraries/D3DX12AffinityLayer/Desktop/CDXGIAffinitySwapChain.h @@ -55,7 +55,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap HRESULT STDMETHODCALLTYPE GetParent( _In_ REFIID riid, _COM_Outptr_ void** ppParent, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE Present( UINT SyncInterval, @@ -96,7 +96,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap HRESULT STDMETHODCALLTYPE GetContainingOutput( _COM_Outptr_ IDXGIOutput** ppOutput, - UINT AffinityIndex = EAffinityMask::AllNodes); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetFrameStatistics( _Out_ DXGI_FRAME_STATISTICS* pStats, @@ -131,7 +131,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap _In_ const DXGI_PRESENT_PARAMETERS* pPresentParameters, UINT AffinityMask = EAffinityMask::AllNodes); - BOOL STDMETHODCALLTYPE IsTemporaryMonoSupported(UINT AffinityIndex); + BOOL STDMETHODCALLTYPE IsTemporaryMonoSupported(UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetRestrictToOutput( _Out_ IDXGIOutput** ppRestrictToOutput, diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandList.h b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandList.h index 7c5a947b6..4382c497d 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandList.h +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandList.h @@ -19,7 +19,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityCo public: CD3DX12AffinityCommandList(CD3DX12AffinityDevice* device, ID3D12CommandList** commandLists, UINT Count); - D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(UINT AffinityIndex); + D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(UINT AffinityIndex = 0); BOOL STDMETHODCALLTYPE AssertResourceState( _In_ CD3DX12AffinityResource* pResource, diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.cpp b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.cpp index e6e6cb4b5..4b3c20b65 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.cpp +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.cpp @@ -105,7 +105,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::ExecuteCommandLists( } } - Queue->ExecuteCommandLists(index, &mCachedCommandLists[0]); + Queue->ExecuteCommandLists(index, mCachedCommandLists.data()); #ifdef SERIALIZE_COMMNANDLIST_EXECUTION ID3D12Fence* pFence; @@ -236,9 +236,9 @@ D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::GetDesc( return mCommandQueues[AffinityIndex]->GetDesc(); } -ID3D12CommandQueue* CD3DX12AffinityCommandQueue::GetQueueForSwapChainCreation(UINT const Index) +ID3D12CommandQueue* CD3DX12AffinityCommandQueue::GetQueueForSwapChainCreation(UINT AffinityIndex) { - return mCommandQueues[Index]; + return mCommandQueues[AffinityIndex]; } CD3DX12AffinityCommandQueue::CD3DX12AffinityCommandQueue(CD3DX12AffinityDevice* device, ID3D12CommandQueue** commandQueues, UINT Count) diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.h b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.h index a4e2478fd..dd15d7a3a 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.h +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityCommandQueue.h @@ -71,18 +71,18 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityCo HRESULT STDMETHODCALLTYPE GetTimestampFrequency( _Out_ UINT64* pFrequency, - _In_ UINT AffinityIndex = 0); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetClockCalibration( _Out_ UINT64* pGpuTimestamp, _Out_ UINT64* pCpuTimestamp, - UINT AffinityIndex); + UINT AffinityIndex = 0); - D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex); + D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex = 0); - ID3D12CommandQueue* GetQueueForSwapChainCreation(UINT const Index = 0); + ID3D12CommandQueue* GetQueueForSwapChainCreation(UINT AffinityIndex); ID3D12CommandQueue* GetChildObject(UINT AffinityIndex); - void WaitForCompletion(UINT AffinityMask = 0); + void WaitForCompletion(UINT AffinityMask = EAffinityMask::AllNodes); CD3DX12AffinityCommandQueue(CD3DX12AffinityDevice* device, ID3D12CommandQueue** commandQueues, UINT Count); diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityDescriptorHeap.h b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityDescriptorHeap.h index d4fc8ccdb..6e744365e 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityDescriptorHeap.h +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityDescriptorHeap.h @@ -19,7 +19,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityDe friend class CD3DX12AffinityDevice; public: - D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex); + D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex = 0); D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(void); diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityFence.cpp b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityFence.cpp index ccefdb91e..0b6caef54 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityFence.cpp +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityFence.cpp @@ -90,7 +90,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityFence::WaitOnFenceCompletion( ++EventCount; } } - WaitForMultipleObjects((DWORD)EventCount, &(Events[0]), TRUE, INFINITE); + WaitForMultipleObjects((DWORD)EventCount, Events.data(), TRUE, INFINITE); return S_OK; } diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityGraphicsCommandList.cpp b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityGraphicsCommandList.cpp index d64c8c42f..09b37769f 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityGraphicsCommandList.cpp +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityGraphicsCommandList.cpp @@ -357,7 +357,7 @@ void CD3DX12AffinityGraphicsCommandList::ResourceBarrier( mCachedResourceBarriers[b] = Use; } - List->ResourceBarrier(NumBarriers, &mCachedResourceBarriers[0]); + List->ResourceBarrier(NumBarriers, mCachedResourceBarriers.data()); } } } @@ -392,7 +392,7 @@ void CD3DX12AffinityGraphicsCommandList::SetDescriptorHeaps( mCachedDescriptorHeaps[h] = static_cast(ppDescriptorHeaps[h])->GetChildObject(i); } - List->SetDescriptorHeaps(NumDescriptorHeaps, &mCachedDescriptorHeaps[0]); + List->SetDescriptorHeaps(NumDescriptorHeaps, mCachedDescriptorHeaps.data()); } } } @@ -602,7 +602,7 @@ void CD3DX12AffinityGraphicsCommandList::IASetVertexBuffers( mCachedBufferViews[v].BufferLocation = GetParentDevice()->GetGPUVirtualAddress(pViews[v].BufferLocation, i); } - List->IASetVertexBuffers(StartSlot, NumViews, &mCachedBufferViews[0]); + List->IASetVertexBuffers(StartSlot, NumViews, mCachedBufferViews.data()); } } } @@ -627,7 +627,7 @@ void CD3DX12AffinityGraphicsCommandList::SOSetTargets( mCachedStreamOutBufferViews[v].BufferFilledSizeLocation = GetParentDevice()->GetGPUVirtualAddress(pViews[v].BufferFilledSizeLocation, i); } - List->SOSetTargets(StartSlot, NumViews, &mCachedStreamOutBufferViews[0]); + List->SOSetTargets(StartSlot, NumViews, mCachedStreamOutBufferViews.data()); } } } @@ -653,11 +653,11 @@ void CD3DX12AffinityGraphicsCommandList::OMSetRenderTargets( if (pDepthStencilDescriptor) { D3D12_CPU_DESCRIPTOR_HANDLE ActualDepthStencilDescriptor = GetParentDevice()->GetCPUHeapPointer(*pDepthStencilDescriptor, i); - List->OMSetRenderTargets(NumRenderTargetDescriptors, &mCachedRenderTargetViews[0], RTsSingleHandleToDescriptorRange, &ActualDepthStencilDescriptor); + List->OMSetRenderTargets(NumRenderTargetDescriptors, mCachedRenderTargetViews.data(), RTsSingleHandleToDescriptorRange, &ActualDepthStencilDescriptor); } else { - List->OMSetRenderTargets(NumRenderTargetDescriptors, &mCachedRenderTargetViews[0], RTsSingleHandleToDescriptorRange, nullptr); + List->OMSetRenderTargets(NumRenderTargetDescriptors, mCachedRenderTargetViews.data(), RTsSingleHandleToDescriptorRange, nullptr); } } } diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityObject.cpp b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityObject.cpp index 8f7ba456f..f12a20441 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityObject.cpp +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityObject.cpp @@ -67,7 +67,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityObject::SetName( { for (UINT i = 0; i < D3DX12_MAX_ACTIVE_NODES; ++i) { - if(mObjects[i]) + if (mObjects[i]) { ((ID3D12Object*)mObjects[i])->SetName(Name); } @@ -87,7 +87,6 @@ void STDMETHODCALLTYPE CD3DX12AffinityObject::SetAffinity( UINT AffinityMask) { mAffinityMask = AffinityMask & GetNodeMask(); - } UINT CD3DX12AffinityObject::AffinityIndexToMask(UINT const Index) @@ -126,7 +125,6 @@ CD3DX12AffinityObject::~CD3DX12AffinityObject() DebugLog(L"Releasing handle 0x%p, ref count is now %lu\n", mObjects[i], RefCount); } } - } ULONG CD3DX12AffinityObject::AddRef() diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityObject.h b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityObject.h index b2e1a883c..f3fd727f7 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityObject.h +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityObject.h @@ -34,18 +34,18 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityOb _In_ REFGUID guid, _Inout_ UINT* pDataSize, _Out_writes_bytes_opt_(*pDataSize) void* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetPrivateData( _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_(DataSize) const void* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( _In_ REFGUID guid, _In_opt_ const IUnknown* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetName( _In_z_ LPCWSTR Name, diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityResource.cpp b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityResource.cpp index 481be65dd..356535742 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityResource.cpp +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityResource.cpp @@ -73,8 +73,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityResource::Unmap( UINT Subresource, const D3D12_RANGE* pWrittenRange) { - if (GetParentDevice()->GetAffinityMode() == EAffinityMode::LDA - ) + if (GetParentDevice()->GetAffinityMode() == EAffinityMode::LDA) { mResources[0]->Unmap(Subresource, pWrittenRange); return; diff --git a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityResource.h b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityResource.h index 9bca8fcd9..db3a98a9d 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityResource.h +++ b/Libraries/D3DX12AffinityLayer/UWP/CD3DX12AffinityResource.h @@ -43,12 +43,12 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityRe UINT DstDepthPitch, UINT SrcSubresource, _In_opt_ const D3D12_BOX* pSrcBox, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetHeapProperties( _Out_opt_ D3D12_HEAP_PROPERTIES* pHeapProperties, _Out_opt_ D3D12_HEAP_FLAGS* pHeapFlags, - UINT AffinityIndex); + UINT AffinityIndex = 0); CD3DX12AffinityResource(CD3DX12AffinityDevice* device, ID3D12Resource** resources, UINT Count, ID3D12Heap** heaps = nullptr); ~CD3DX12AffinityResource(); diff --git a/Libraries/D3DX12AffinityLayer/UWP/CDXGIAffinitySwapChain.cpp b/Libraries/D3DX12AffinityLayer/UWP/CDXGIAffinitySwapChain.cpp index f673dc7c8..328120c21 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CDXGIAffinitySwapChain.cpp +++ b/Libraries/D3DX12AffinityLayer/UWP/CDXGIAffinitySwapChain.cpp @@ -349,8 +349,8 @@ HRESULT STDMETHODCALLTYPE CDXGIAffinitySwapChain::ResizeBuffers( Height, NewFormat, SwapChainFlags, - &creationNodeMasks[0], - &pQueues[0])); + creationNodeMasks.data(), + pQueues.data())); GetParentDevice()->g_ActiveNodeIndex = 0; } diff --git a/Libraries/D3DX12AffinityLayer/UWP/CDXGIAffinitySwapChain.h b/Libraries/D3DX12AffinityLayer/UWP/CDXGIAffinitySwapChain.h index 7fddd4d68..009b33019 100644 --- a/Libraries/D3DX12AffinityLayer/UWP/CDXGIAffinitySwapChain.h +++ b/Libraries/D3DX12AffinityLayer/UWP/CDXGIAffinitySwapChain.h @@ -55,7 +55,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap HRESULT STDMETHODCALLTYPE GetParent( _In_ REFIID riid, _COM_Outptr_ void** ppParent, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE Present( UINT SyncInterval, @@ -96,7 +96,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap HRESULT STDMETHODCALLTYPE GetContainingOutput( _COM_Outptr_ IDXGIOutput** ppOutput, - UINT AffinityIndex = EAffinityMask::AllNodes); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetFrameStatistics( _Out_ DXGI_FRAME_STATISTICS* pStats, @@ -131,7 +131,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap _In_ const DXGI_PRESENT_PARAMETERS* pPresentParameters, UINT AffinityMask = EAffinityMask::AllNodes); - BOOL STDMETHODCALLTYPE IsTemporaryMonoSupported(UINT AffinityIndex); + BOOL STDMETHODCALLTYPE IsTemporaryMonoSupported(UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetRestrictToOutput( _Out_ IDXGIOutput** ppRestrictToOutput, diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandList.h b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandList.h index 7c5a947b6..4382c497d 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandList.h +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandList.h @@ -19,7 +19,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityCo public: CD3DX12AffinityCommandList(CD3DX12AffinityDevice* device, ID3D12CommandList** commandLists, UINT Count); - D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(UINT AffinityIndex); + D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(UINT AffinityIndex = 0); BOOL STDMETHODCALLTYPE AssertResourceState( _In_ CD3DX12AffinityResource* pResource, diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp index e6e6cb4b5..4b3c20b65 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp @@ -105,7 +105,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::ExecuteCommandLists( } } - Queue->ExecuteCommandLists(index, &mCachedCommandLists[0]); + Queue->ExecuteCommandLists(index, mCachedCommandLists.data()); #ifdef SERIALIZE_COMMNANDLIST_EXECUTION ID3D12Fence* pFence; @@ -236,9 +236,9 @@ D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::GetDesc( return mCommandQueues[AffinityIndex]->GetDesc(); } -ID3D12CommandQueue* CD3DX12AffinityCommandQueue::GetQueueForSwapChainCreation(UINT const Index) +ID3D12CommandQueue* CD3DX12AffinityCommandQueue::GetQueueForSwapChainCreation(UINT AffinityIndex) { - return mCommandQueues[Index]; + return mCommandQueues[AffinityIndex]; } CD3DX12AffinityCommandQueue::CD3DX12AffinityCommandQueue(CD3DX12AffinityDevice* device, ID3D12CommandQueue** commandQueues, UINT Count) diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.h b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.h index a4e2478fd..dd15d7a3a 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.h +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.h @@ -71,18 +71,18 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityCo HRESULT STDMETHODCALLTYPE GetTimestampFrequency( _Out_ UINT64* pFrequency, - _In_ UINT AffinityIndex = 0); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetClockCalibration( _Out_ UINT64* pGpuTimestamp, _Out_ UINT64* pCpuTimestamp, - UINT AffinityIndex); + UINT AffinityIndex = 0); - D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex); + D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex = 0); - ID3D12CommandQueue* GetQueueForSwapChainCreation(UINT const Index = 0); + ID3D12CommandQueue* GetQueueForSwapChainCreation(UINT AffinityIndex); ID3D12CommandQueue* GetChildObject(UINT AffinityIndex); - void WaitForCompletion(UINT AffinityMask = 0); + void WaitForCompletion(UINT AffinityMask = EAffinityMask::AllNodes); CD3DX12AffinityCommandQueue(CD3DX12AffinityDevice* device, ID3D12CommandQueue** commandQueues, UINT Count); diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDescriptorHeap.h b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDescriptorHeap.h index d4fc8ccdb..6e744365e 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDescriptorHeap.h +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDescriptorHeap.h @@ -19,7 +19,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityDe friend class CD3DX12AffinityDevice; public: - D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex); + D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex = 0); D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(void); diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp index ccefdb91e..0b6caef54 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp @@ -90,7 +90,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityFence::WaitOnFenceCompletion( ++EventCount; } } - WaitForMultipleObjects((DWORD)EventCount, &(Events[0]), TRUE, INFINITE); + WaitForMultipleObjects((DWORD)EventCount, Events.data(), TRUE, INFINITE); return S_OK; } diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityGraphicsCommandList.cpp b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityGraphicsCommandList.cpp index d64c8c42f..09b37769f 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityGraphicsCommandList.cpp +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityGraphicsCommandList.cpp @@ -357,7 +357,7 @@ void CD3DX12AffinityGraphicsCommandList::ResourceBarrier( mCachedResourceBarriers[b] = Use; } - List->ResourceBarrier(NumBarriers, &mCachedResourceBarriers[0]); + List->ResourceBarrier(NumBarriers, mCachedResourceBarriers.data()); } } } @@ -392,7 +392,7 @@ void CD3DX12AffinityGraphicsCommandList::SetDescriptorHeaps( mCachedDescriptorHeaps[h] = static_cast(ppDescriptorHeaps[h])->GetChildObject(i); } - List->SetDescriptorHeaps(NumDescriptorHeaps, &mCachedDescriptorHeaps[0]); + List->SetDescriptorHeaps(NumDescriptorHeaps, mCachedDescriptorHeaps.data()); } } } @@ -602,7 +602,7 @@ void CD3DX12AffinityGraphicsCommandList::IASetVertexBuffers( mCachedBufferViews[v].BufferLocation = GetParentDevice()->GetGPUVirtualAddress(pViews[v].BufferLocation, i); } - List->IASetVertexBuffers(StartSlot, NumViews, &mCachedBufferViews[0]); + List->IASetVertexBuffers(StartSlot, NumViews, mCachedBufferViews.data()); } } } @@ -627,7 +627,7 @@ void CD3DX12AffinityGraphicsCommandList::SOSetTargets( mCachedStreamOutBufferViews[v].BufferFilledSizeLocation = GetParentDevice()->GetGPUVirtualAddress(pViews[v].BufferFilledSizeLocation, i); } - List->SOSetTargets(StartSlot, NumViews, &mCachedStreamOutBufferViews[0]); + List->SOSetTargets(StartSlot, NumViews, mCachedStreamOutBufferViews.data()); } } } @@ -653,11 +653,11 @@ void CD3DX12AffinityGraphicsCommandList::OMSetRenderTargets( if (pDepthStencilDescriptor) { D3D12_CPU_DESCRIPTOR_HANDLE ActualDepthStencilDescriptor = GetParentDevice()->GetCPUHeapPointer(*pDepthStencilDescriptor, i); - List->OMSetRenderTargets(NumRenderTargetDescriptors, &mCachedRenderTargetViews[0], RTsSingleHandleToDescriptorRange, &ActualDepthStencilDescriptor); + List->OMSetRenderTargets(NumRenderTargetDescriptors, mCachedRenderTargetViews.data(), RTsSingleHandleToDescriptorRange, &ActualDepthStencilDescriptor); } else { - List->OMSetRenderTargets(NumRenderTargetDescriptors, &mCachedRenderTargetViews[0], RTsSingleHandleToDescriptorRange, nullptr); + List->OMSetRenderTargets(NumRenderTargetDescriptors, mCachedRenderTargetViews.data(), RTsSingleHandleToDescriptorRange, nullptr); } } } diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.cpp b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.cpp index 8f7ba456f..f12a20441 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.cpp +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.cpp @@ -67,7 +67,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityObject::SetName( { for (UINT i = 0; i < D3DX12_MAX_ACTIVE_NODES; ++i) { - if(mObjects[i]) + if (mObjects[i]) { ((ID3D12Object*)mObjects[i])->SetName(Name); } @@ -87,7 +87,6 @@ void STDMETHODCALLTYPE CD3DX12AffinityObject::SetAffinity( UINT AffinityMask) { mAffinityMask = AffinityMask & GetNodeMask(); - } UINT CD3DX12AffinityObject::AffinityIndexToMask(UINT const Index) @@ -126,7 +125,6 @@ CD3DX12AffinityObject::~CD3DX12AffinityObject() DebugLog(L"Releasing handle 0x%p, ref count is now %lu\n", mObjects[i], RefCount); } } - } ULONG CD3DX12AffinityObject::AddRef() diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.h b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.h index b2e1a883c..f3fd727f7 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.h +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.h @@ -34,18 +34,18 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityOb _In_ REFGUID guid, _Inout_ UINT* pDataSize, _Out_writes_bytes_opt_(*pDataSize) void* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetPrivateData( _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_(DataSize) const void* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( _In_ REFGUID guid, _In_opt_ const IUnknown* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetName( _In_z_ LPCWSTR Name, diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.cpp b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.cpp index 481be65dd..356535742 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.cpp +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.cpp @@ -73,8 +73,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityResource::Unmap( UINT Subresource, const D3D12_RANGE* pWrittenRange) { - if (GetParentDevice()->GetAffinityMode() == EAffinityMode::LDA - ) + if (GetParentDevice()->GetAffinityMode() == EAffinityMode::LDA) { mResources[0]->Unmap(Subresource, pWrittenRange); return; diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.h b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.h index 9bca8fcd9..db3a98a9d 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.h +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.h @@ -43,12 +43,12 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityRe UINT DstDepthPitch, UINT SrcSubresource, _In_opt_ const D3D12_BOX* pSrcBox, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetHeapProperties( _Out_opt_ D3D12_HEAP_PROPERTIES* pHeapProperties, _Out_opt_ D3D12_HEAP_FLAGS* pHeapFlags, - UINT AffinityIndex); + UINT AffinityIndex = 0); CD3DX12AffinityResource(CD3DX12AffinityDevice* device, ID3D12Resource** resources, UINT Count, ID3D12Heap** heaps = nullptr); ~CD3DX12AffinityResource(); diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.cpp b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.cpp index f673dc7c8..328120c21 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.cpp +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.cpp @@ -349,8 +349,8 @@ HRESULT STDMETHODCALLTYPE CDXGIAffinitySwapChain::ResizeBuffers( Height, NewFormat, SwapChainFlags, - &creationNodeMasks[0], - &pQueues[0])); + creationNodeMasks.data(), + pQueues.data())); GetParentDevice()->g_ActiveNodeIndex = 0; } diff --git a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.h b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.h index 7fddd4d68..009b33019 100644 --- a/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.h +++ b/Samples/Desktop/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.h @@ -55,7 +55,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap HRESULT STDMETHODCALLTYPE GetParent( _In_ REFIID riid, _COM_Outptr_ void** ppParent, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE Present( UINT SyncInterval, @@ -96,7 +96,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap HRESULT STDMETHODCALLTYPE GetContainingOutput( _COM_Outptr_ IDXGIOutput** ppOutput, - UINT AffinityIndex = EAffinityMask::AllNodes); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetFrameStatistics( _Out_ DXGI_FRAME_STATISTICS* pStats, @@ -131,7 +131,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap _In_ const DXGI_PRESENT_PARAMETERS* pPresentParameters, UINT AffinityMask = EAffinityMask::AllNodes); - BOOL STDMETHODCALLTYPE IsTemporaryMonoSupported(UINT AffinityIndex); + BOOL STDMETHODCALLTYPE IsTemporaryMonoSupported(UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetRestrictToOutput( _Out_ IDXGIOutput** ppRestrictToOutput, diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandList.h b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandList.h index 7c5a947b6..4382c497d 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandList.h +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandList.h @@ -19,7 +19,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityCo public: CD3DX12AffinityCommandList(CD3DX12AffinityDevice* device, ID3D12CommandList** commandLists, UINT Count); - D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(UINT AffinityIndex); + D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType(UINT AffinityIndex = 0); BOOL STDMETHODCALLTYPE AssertResourceState( _In_ CD3DX12AffinityResource* pResource, diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp index e6e6cb4b5..4b3c20b65 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.cpp @@ -105,7 +105,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::ExecuteCommandLists( } } - Queue->ExecuteCommandLists(index, &mCachedCommandLists[0]); + Queue->ExecuteCommandLists(index, mCachedCommandLists.data()); #ifdef SERIALIZE_COMMNANDLIST_EXECUTION ID3D12Fence* pFence; @@ -236,9 +236,9 @@ D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE CD3DX12AffinityCommandQueue::GetDesc( return mCommandQueues[AffinityIndex]->GetDesc(); } -ID3D12CommandQueue* CD3DX12AffinityCommandQueue::GetQueueForSwapChainCreation(UINT const Index) +ID3D12CommandQueue* CD3DX12AffinityCommandQueue::GetQueueForSwapChainCreation(UINT AffinityIndex) { - return mCommandQueues[Index]; + return mCommandQueues[AffinityIndex]; } CD3DX12AffinityCommandQueue::CD3DX12AffinityCommandQueue(CD3DX12AffinityDevice* device, ID3D12CommandQueue** commandQueues, UINT Count) diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.h b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.h index a4e2478fd..dd15d7a3a 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.h +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityCommandQueue.h @@ -71,18 +71,18 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityCo HRESULT STDMETHODCALLTYPE GetTimestampFrequency( _Out_ UINT64* pFrequency, - _In_ UINT AffinityIndex = 0); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetClockCalibration( _Out_ UINT64* pGpuTimestamp, _Out_ UINT64* pCpuTimestamp, - UINT AffinityIndex); + UINT AffinityIndex = 0); - D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex); + D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex = 0); - ID3D12CommandQueue* GetQueueForSwapChainCreation(UINT const Index = 0); + ID3D12CommandQueue* GetQueueForSwapChainCreation(UINT AffinityIndex); ID3D12CommandQueue* GetChildObject(UINT AffinityIndex); - void WaitForCompletion(UINT AffinityMask = 0); + void WaitForCompletion(UINT AffinityMask = EAffinityMask::AllNodes); CD3DX12AffinityCommandQueue(CD3DX12AffinityDevice* device, ID3D12CommandQueue** commandQueues, UINT Count); diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDescriptorHeap.h b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDescriptorHeap.h index d4fc8ccdb..6e744365e 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDescriptorHeap.h +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityDescriptorHeap.h @@ -19,7 +19,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityDe friend class CD3DX12AffinityDevice; public: - D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex); + D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc(UINT AffinityIndex = 0); D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart(void); diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp index ccefdb91e..0b6caef54 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityFence.cpp @@ -90,7 +90,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityFence::WaitOnFenceCompletion( ++EventCount; } } - WaitForMultipleObjects((DWORD)EventCount, &(Events[0]), TRUE, INFINITE); + WaitForMultipleObjects((DWORD)EventCount, Events.data(), TRUE, INFINITE); return S_OK; } diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityGraphicsCommandList.cpp b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityGraphicsCommandList.cpp index d64c8c42f..09b37769f 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityGraphicsCommandList.cpp +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityGraphicsCommandList.cpp @@ -357,7 +357,7 @@ void CD3DX12AffinityGraphicsCommandList::ResourceBarrier( mCachedResourceBarriers[b] = Use; } - List->ResourceBarrier(NumBarriers, &mCachedResourceBarriers[0]); + List->ResourceBarrier(NumBarriers, mCachedResourceBarriers.data()); } } } @@ -392,7 +392,7 @@ void CD3DX12AffinityGraphicsCommandList::SetDescriptorHeaps( mCachedDescriptorHeaps[h] = static_cast(ppDescriptorHeaps[h])->GetChildObject(i); } - List->SetDescriptorHeaps(NumDescriptorHeaps, &mCachedDescriptorHeaps[0]); + List->SetDescriptorHeaps(NumDescriptorHeaps, mCachedDescriptorHeaps.data()); } } } @@ -602,7 +602,7 @@ void CD3DX12AffinityGraphicsCommandList::IASetVertexBuffers( mCachedBufferViews[v].BufferLocation = GetParentDevice()->GetGPUVirtualAddress(pViews[v].BufferLocation, i); } - List->IASetVertexBuffers(StartSlot, NumViews, &mCachedBufferViews[0]); + List->IASetVertexBuffers(StartSlot, NumViews, mCachedBufferViews.data()); } } } @@ -627,7 +627,7 @@ void CD3DX12AffinityGraphicsCommandList::SOSetTargets( mCachedStreamOutBufferViews[v].BufferFilledSizeLocation = GetParentDevice()->GetGPUVirtualAddress(pViews[v].BufferFilledSizeLocation, i); } - List->SOSetTargets(StartSlot, NumViews, &mCachedStreamOutBufferViews[0]); + List->SOSetTargets(StartSlot, NumViews, mCachedStreamOutBufferViews.data()); } } } @@ -653,11 +653,11 @@ void CD3DX12AffinityGraphicsCommandList::OMSetRenderTargets( if (pDepthStencilDescriptor) { D3D12_CPU_DESCRIPTOR_HANDLE ActualDepthStencilDescriptor = GetParentDevice()->GetCPUHeapPointer(*pDepthStencilDescriptor, i); - List->OMSetRenderTargets(NumRenderTargetDescriptors, &mCachedRenderTargetViews[0], RTsSingleHandleToDescriptorRange, &ActualDepthStencilDescriptor); + List->OMSetRenderTargets(NumRenderTargetDescriptors, mCachedRenderTargetViews.data(), RTsSingleHandleToDescriptorRange, &ActualDepthStencilDescriptor); } else { - List->OMSetRenderTargets(NumRenderTargetDescriptors, &mCachedRenderTargetViews[0], RTsSingleHandleToDescriptorRange, nullptr); + List->OMSetRenderTargets(NumRenderTargetDescriptors, mCachedRenderTargetViews.data(), RTsSingleHandleToDescriptorRange, nullptr); } } } diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.cpp b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.cpp index 8f7ba456f..f12a20441 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.cpp +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.cpp @@ -67,7 +67,7 @@ HRESULT STDMETHODCALLTYPE CD3DX12AffinityObject::SetName( { for (UINT i = 0; i < D3DX12_MAX_ACTIVE_NODES; ++i) { - if(mObjects[i]) + if (mObjects[i]) { ((ID3D12Object*)mObjects[i])->SetName(Name); } @@ -87,7 +87,6 @@ void STDMETHODCALLTYPE CD3DX12AffinityObject::SetAffinity( UINT AffinityMask) { mAffinityMask = AffinityMask & GetNodeMask(); - } UINT CD3DX12AffinityObject::AffinityIndexToMask(UINT const Index) @@ -126,7 +125,6 @@ CD3DX12AffinityObject::~CD3DX12AffinityObject() DebugLog(L"Releasing handle 0x%p, ref count is now %lu\n", mObjects[i], RefCount); } } - } ULONG CD3DX12AffinityObject::AddRef() diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.h b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.h index b2e1a883c..f3fd727f7 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.h +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityObject.h @@ -34,18 +34,18 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityOb _In_ REFGUID guid, _Inout_ UINT* pDataSize, _Out_writes_bytes_opt_(*pDataSize) void* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetPrivateData( _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_(DataSize) const void* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( _In_ REFGUID guid, _In_opt_ const IUnknown* pData, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE SetName( _In_z_ LPCWSTR Name, diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.cpp b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.cpp index 481be65dd..356535742 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.cpp +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.cpp @@ -73,8 +73,7 @@ void STDMETHODCALLTYPE CD3DX12AffinityResource::Unmap( UINT Subresource, const D3D12_RANGE* pWrittenRange) { - if (GetParentDevice()->GetAffinityMode() == EAffinityMode::LDA - ) + if (GetParentDevice()->GetAffinityMode() == EAffinityMode::LDA) { mResources[0]->Unmap(Subresource, pWrittenRange); return; diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.h b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.h index 9bca8fcd9..db3a98a9d 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.h +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CD3DX12AffinityResource.h @@ -43,12 +43,12 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CD3DX12AffinityRe UINT DstDepthPitch, UINT SrcSubresource, _In_opt_ const D3D12_BOX* pSrcBox, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetHeapProperties( _Out_opt_ D3D12_HEAP_PROPERTIES* pHeapProperties, _Out_opt_ D3D12_HEAP_FLAGS* pHeapFlags, - UINT AffinityIndex); + UINT AffinityIndex = 0); CD3DX12AffinityResource(CD3DX12AffinityDevice* device, ID3D12Resource** resources, UINT Count, ID3D12Heap** heaps = nullptr); ~CD3DX12AffinityResource(); diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.cpp b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.cpp index f673dc7c8..328120c21 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.cpp +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.cpp @@ -349,8 +349,8 @@ HRESULT STDMETHODCALLTYPE CDXGIAffinitySwapChain::ResizeBuffers( Height, NewFormat, SwapChainFlags, - &creationNodeMasks[0], - &pQueues[0])); + creationNodeMasks.data(), + pQueues.data())); GetParentDevice()->g_ActiveNodeIndex = 0; } diff --git a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.h b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.h index 7fddd4d68..009b33019 100644 --- a/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.h +++ b/Samples/UWP/D3D12LinkedGpus/src/D3DX12AffinityLayer/CDXGIAffinitySwapChain.h @@ -55,7 +55,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap HRESULT STDMETHODCALLTYPE GetParent( _In_ REFIID riid, _COM_Outptr_ void** ppParent, - UINT AffinityIndex); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE Present( UINT SyncInterval, @@ -96,7 +96,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap HRESULT STDMETHODCALLTYPE GetContainingOutput( _COM_Outptr_ IDXGIOutput** ppOutput, - UINT AffinityIndex = EAffinityMask::AllNodes); + UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetFrameStatistics( _Out_ DXGI_FRAME_STATISTICS* pStats, @@ -131,7 +131,7 @@ class __declspec(uuid("BE1D71C8-88FD-4623-ABFA-D0E546D12FAF")) CDXGIAffinitySwap _In_ const DXGI_PRESENT_PARAMETERS* pPresentParameters, UINT AffinityMask = EAffinityMask::AllNodes); - BOOL STDMETHODCALLTYPE IsTemporaryMonoSupported(UINT AffinityIndex); + BOOL STDMETHODCALLTYPE IsTemporaryMonoSupported(UINT AffinityIndex = 0); HRESULT STDMETHODCALLTYPE GetRestrictToOutput( _Out_ IDXGIOutput** ppRestrictToOutput,