gecko-dev/gfx/ipc/GraphicsMessages.ipdlh
Andrew Osmond 78afd0ab38 Bug 1760663 - Add blocklist support for WebGPU. r=gfx-reviewers,nical
This patch just adds the plumbing to allow for baked in blocklist rules
or the downloadable blocklist to prevent certain configurations from
getting WebGPU. It does not add any rules.

It also changes us from allowing WebGPU only in nightly, including
tests, to not release and not beta. This allows try to run the WebGPU
tests as expected, since even try builds forked from mozilla-central are
not considered nightly builds by CI (or so it seems).

Differential Revision: https://phabricator.services.mozilla.com/D141682
2022-03-22 15:22:39 +00:00

92 lines
2.0 KiB
Plaintext

/* -*- 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/. */
include "mozilla/GfxMessageUtils.h";
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 useD2D1;
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;
D3D11DeviceStatus? gpuDevice;
};
union GfxVarValue
{
BackendType;
bool;
gfxImageFormat;
IntSize;
nsCString;
nsString;
int32_t;
float;
};
struct GfxVarUpdate
{
uint32_t index;
GfxVarValue value;
};
struct GfxInfoFeatureStatus
{
int32_t feature;
int32_t status;
nsCString failureId;
};
} // namespace gfx
} // namespace mozilla