mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-28 02:01:26 +00:00
This CL changes several includes which were using the system include syntax to the local syntax. This causes GN check to verify that the headers are specified correctly in the dependencies. Two missing dependencies are added to the BUILD.gn file for the Dawn tests. Bug: dawn:1373 Change-Id: I7afd5ab48f4f2e2ddaf1839058c6bbeec2b97fd0 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86940 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Dan Sinclair <dsinclair@chromium.org> Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
112 lines
4.0 KiB
C++
112 lines
4.0 KiB
C++
// Copyright 2018 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 INCLUDE_DAWN_NATIVE_D3D12BACKEND_H_
|
|
#define INCLUDE_DAWN_NATIVE_D3D12BACKEND_H_
|
|
|
|
#include <DXGI1_4.h>
|
|
#include <d3d12.h>
|
|
#include <windows.h>
|
|
#include <wrl/client.h>
|
|
|
|
#include <memory>
|
|
|
|
#include "dawn/dawn_wsi.h"
|
|
#include "dawn/native/DawnNative.h"
|
|
|
|
struct ID3D12Device;
|
|
struct ID3D12Resource;
|
|
|
|
namespace dawn::native::d3d12 {
|
|
|
|
class D3D11on12ResourceCache;
|
|
|
|
DAWN_NATIVE_EXPORT Microsoft::WRL::ComPtr<ID3D12Device> GetD3D12Device(WGPUDevice device);
|
|
DAWN_NATIVE_EXPORT DawnSwapChainImplementation CreateNativeSwapChainImpl(WGPUDevice device,
|
|
HWND window);
|
|
DAWN_NATIVE_EXPORT WGPUTextureFormat
|
|
GetNativeSwapChainPreferredFormat(const DawnSwapChainImplementation* swapChain);
|
|
|
|
enum MemorySegment {
|
|
Local,
|
|
NonLocal,
|
|
};
|
|
|
|
DAWN_NATIVE_EXPORT uint64_t SetExternalMemoryReservation(WGPUDevice device,
|
|
uint64_t requestedReservationSize,
|
|
MemorySegment memorySegment);
|
|
|
|
struct DAWN_NATIVE_EXPORT ExternalImageDescriptorDXGISharedHandle : ExternalImageDescriptor {
|
|
public:
|
|
ExternalImageDescriptorDXGISharedHandle();
|
|
|
|
// Note: SharedHandle must be a handle to a texture object.
|
|
HANDLE sharedHandle;
|
|
};
|
|
|
|
// Keyed mutex acquire/release uses a fixed key of 0 to match Chromium behavior.
|
|
constexpr UINT64 kDXGIKeyedMutexAcquireReleaseKey = 0;
|
|
|
|
struct DAWN_NATIVE_EXPORT ExternalImageAccessDescriptorDXGIKeyedMutex
|
|
: ExternalImageAccessDescriptor {
|
|
public:
|
|
// TODO(chromium:1241533): Remove deprecated keyed mutex params after removing associated
|
|
// code from Chromium - we use a fixed key of 0 for acquire and release everywhere now.
|
|
uint64_t acquireMutexKey;
|
|
uint64_t releaseMutexKey;
|
|
bool isSwapChainTexture = false;
|
|
};
|
|
|
|
class DAWN_NATIVE_EXPORT ExternalImageDXGI {
|
|
public:
|
|
~ExternalImageDXGI();
|
|
|
|
// Note: SharedHandle must be a handle to a texture object.
|
|
static std::unique_ptr<ExternalImageDXGI> Create(
|
|
WGPUDevice device,
|
|
const ExternalImageDescriptorDXGISharedHandle* descriptor);
|
|
|
|
WGPUTexture ProduceTexture(WGPUDevice device,
|
|
const ExternalImageAccessDescriptorDXGIKeyedMutex* descriptor);
|
|
|
|
private:
|
|
ExternalImageDXGI(Microsoft::WRL::ComPtr<ID3D12Resource> d3d12Resource,
|
|
const WGPUTextureDescriptor* descriptor);
|
|
|
|
Microsoft::WRL::ComPtr<ID3D12Resource> mD3D12Resource;
|
|
|
|
// Contents of WGPUTextureDescriptor are stored individually since the descriptor
|
|
// could outlive this image.
|
|
WGPUTextureUsageFlags mUsage;
|
|
WGPUTextureUsageFlags mUsageInternal = WGPUTextureUsage_None;
|
|
WGPUTextureDimension mDimension;
|
|
WGPUExtent3D mSize;
|
|
WGPUTextureFormat mFormat;
|
|
uint32_t mMipLevelCount;
|
|
uint32_t mSampleCount;
|
|
|
|
std::unique_ptr<D3D11on12ResourceCache> mD3D11on12ResourceCache;
|
|
};
|
|
|
|
struct DAWN_NATIVE_EXPORT AdapterDiscoveryOptions : public AdapterDiscoveryOptionsBase {
|
|
AdapterDiscoveryOptions();
|
|
explicit AdapterDiscoveryOptions(Microsoft::WRL::ComPtr<IDXGIAdapter> adapter);
|
|
|
|
Microsoft::WRL::ComPtr<IDXGIAdapter> dxgiAdapter;
|
|
};
|
|
|
|
} // namespace dawn::native::d3d12
|
|
|
|
#endif // INCLUDE_DAWN_NATIVE_D3D12BACKEND_H_
|