/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=8 et : */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ using struct DxgiAdapterDesc from "mozilla/D3DMessageUtils.h"; using struct mozilla::null_t from "mozilla/ipc/IPCCore.h"; using mozilla::gfx::FeatureStatus from "gfxTelemetry.h"; using mozilla::gfx::BackendType from "mozilla/gfx/Types.h"; using mozilla::gfx::IntSize from "mozilla/gfx/Point.h"; using gfxImageFormat from "mozilla/gfx/Types.h"; using mozilla::gfx::D3D11Checks::VideoFormatOption from "mozilla/gfx/D3D11Checks.h"; using mozilla::gfx::D3D11Checks::VideoFormatOptionSet from "mozilla/gfx/D3D11Checks.h"; namespace mozilla { namespace gfx { struct D3D11DeviceStatus { bool isWARP; bool textureSharingWorks; uint32_t featureLevel; DxgiAdapterDesc adapter; int32_t sequenceNumber; VideoFormatOptionSet formatOptions; }; struct DevicePrefs { FeatureStatus hwCompositing; FeatureStatus d3d11Compositing; FeatureStatus oglCompositing; FeatureStatus advancedLayers; FeatureStatus useD2D1; FeatureStatus webGPU; FeatureStatus d3d11HwAngle; }; struct ContentDeviceData { DevicePrefs prefs; D3D11DeviceStatus d3d11; uint8_t[] cmsOutputProfileData; }; // Represents the state of a feature that has failed to initialize. struct FeatureFailure { FeatureStatus status; nsCString message; nsCString failureId; }; struct GPUDeviceData { // If a feature state has changed from Enabled -> Failure, these will be non- // null. FeatureFailure? d3d11Compositing; FeatureFailure? oglCompositing; FeatureFailure? advancedLayers; D3D11DeviceStatus? gpuDevice; FeatureFailure? webGPU; }; union GfxVarValue { BackendType; bool; gfxImageFormat; IntSize; nsCString; nsString; int32_t; }; struct GfxVarUpdate { uint32_t index; GfxVarValue value; }; struct GfxInfoFeatureStatus { int32_t feature; int32_t status; nsCString failureId; }; } // namespace gfx } // namespace mozilla