mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-10 05:57:51 +00:00
Support BC formats as the first extension in Dawn
This patch refactors the current implementation of BC formats to treat it as the first extension in Dawn and adds all the related tests. Note that in Dawn all the extensions are disabled unless we enable them when we create the device, which means the BC formats can only be used when we enable the related extension on the creation of the device, and the creation of the device will fail if the adapter does not support the extension BUG=dawn:42 TEST=dawn_end2end_tests TEST=dawn_unittests Change-Id: I04d818b0218ebb3b1b7a70a4fea71779f308f85f Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/9520 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Austin Eng <enga@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
56f3a7b90d
commit
574b951188
@@ -50,6 +50,7 @@ namespace dawn_native {
|
||||
// An optional parameter of Adapter::CreateDevice() to send additional information when creating
|
||||
// a Device. For example, we can use it to enable a workaround, optimization or feature.
|
||||
struct DAWN_NATIVE_EXPORT DeviceDescriptor {
|
||||
std::vector<const char*> requiredExtensions;
|
||||
std::vector<const char*> forceEnabledToggles;
|
||||
std::vector<const char*> forceDisabledToggles;
|
||||
};
|
||||
@@ -63,6 +64,11 @@ namespace dawn_native {
|
||||
const char* url;
|
||||
};
|
||||
|
||||
// A struct to record the information of an extension. An extension is a GPU feature that is not
|
||||
// required to be supported by all Dawn backends and can only be used when it is enabled on the
|
||||
// creation of device.
|
||||
using ExtensionInfo = ToggleInfo;
|
||||
|
||||
// An adapter is an object that represent on possibility of creating devices in the system.
|
||||
// Most of the time it will represent a combination of a physical GPU and an API. Not that the
|
||||
// same GPU can be represented by multiple adapters but on different APIs.
|
||||
@@ -78,6 +84,7 @@ namespace dawn_native {
|
||||
BackendType GetBackendType() const;
|
||||
DeviceType GetDeviceType() const;
|
||||
const PCIInfo& GetPCIInfo() const;
|
||||
std::vector<const char*> GetSupportedExtensions() const;
|
||||
|
||||
explicit operator bool() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user