@babylonjs/core
Version:
Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.
72 lines (71 loc) • 2.99 kB
TypeScript
import type { InternalTexture } from "../Materials/Textures/internalTexture.js";
import { AbstractEngine } from "./abstractEngine.js";
import type { WebGPUCacheRenderPipeline } from "./WebGPU/webgpuCacheRenderPipeline.js";
import type { WebGPUTextureManager } from "./WebGPU/webgpuTextureManager.js";
import type { Nullable } from "../types.js";
import { WebGPUPerfCounter } from "./WebGPU/webgpuPerfCounter.js";
import type { WebGPUSnapshotRendering } from "./WebGPU/webgpuSnapshotRendering.js";
import type { WebGPUBundleList } from "./WebGPU/webgpuBundleList.js";
import type { WebGPUTimestampQuery } from "./WebGPU/webgpuTimestampQuery.js";
import type { WebGPUOcclusionQuery } from "./WebGPU/webgpuOcclusionQuery.js";
/**
* The base engine class for WebGPU
*/
export declare abstract class ThinWebGPUEngine extends AbstractEngine {
/** @internal */
dbgShowShaderCode: boolean;
/** @internal */
dbgSanityChecks: boolean;
/** @internal */
dbgVerboseLogsNumFrames: number;
/** @internal */
dbgLogIfNotDrawWrapper: boolean;
/** @internal */
dbgShowEmptyEnableEffectCalls: boolean;
/** @internal */
dbgVerboseLogsForFirstFrames: boolean;
/** @internal */
_textureHelper: WebGPUTextureManager;
/** @internal */
_cacheRenderPipeline: WebGPUCacheRenderPipeline;
/** @internal */
_occlusionQuery: WebGPUOcclusionQuery;
/** @internal */
_renderEncoder: GPUCommandEncoder;
/** @internal */
_uploadEncoder: GPUCommandEncoder;
/** @internal */
_currentRenderPass: Nullable<GPURenderPassEncoder>;
protected _snapshotRendering: WebGPUSnapshotRendering;
protected _snapshotRenderingMode: number;
/** @internal */
_timestampQuery: WebGPUTimestampQuery;
/** @internal */
_timestampIndex: number;
/** @internal */
_debugStackRenderPass: string[];
/**
* Gets the GPU time spent in the main render pass for the last frame rendered (in nanoseconds).
* You have to enable the "timestamp-query" extension in the engine constructor options and set engine.enableGPUTimingMeasurements = true.
* It will only return time spent in the main pass, not additional render target / compute passes (if any)!
*/
readonly gpuTimeInFrameForMainPass?: WebGPUPerfCounter;
/**
* Used for both the compatibilityMode=false and the snapshot rendering modes (as both can't be enabled at the same time)
* @internal
*/
_bundleList: WebGPUBundleList;
/**
* Enables or disables GPU timing measurements.
* Note that this is only supported if the "timestamp-query" extension is enabled in the options.
*/
get enableGPUTimingMeasurements(): boolean;
set enableGPUTimingMeasurements(enable: boolean);
protected _currentPassIsMainPass(): boolean;
/** @internal */
_endCurrentRenderPass(): number;
/**
* @internal
*/
_generateMipmaps(texture: InternalTexture, commandEncoder?: GPUCommandEncoder): void;
}