DeterminismEntry
이 페이지에서

DeterminismEntry

인터페이스, 도구 분류

One row of determinismReport: an operation the module uses whose result may differ by driver, with the spec's bound, how many times it occurs and where, in declaration order.

import type { DeterminismEntry } from 'typeshade'

시그니처, 설명, 예제는 커밋 c66579bf의 컴파일러 소스에서 그대로 가져온 영어 원문입니다.

구문

interface DeterminismEntry {
readonly op: string;
readonly elem: 'f32' | 'f64';
readonly kind: DeterminismKind;
readonly accuracy: string;
readonly count: number;
readonly where: readonly string[];
readonly note?: string;
}

설명

An operation used on f32 and on emulated f64 is two rows.

인스턴스 속성

op읽기 전용 string

The operation as the IR names it: a builtin id (sin, fma, textureSample), a binary operator (/, %, and for f64 every arithmetic operator), or a matrix product (mat * vec, vec * mat, mat * mat), which is a sum of products and not the component-wise *.

elem읽기 전용 'f32' | 'f64'

The float the operation computes in: native f32, or emulated f64. An operation whose result is not a float is listed under the float it reads: a pack’s argument, and the coordinate of a textureGather on an integer texture, which is f32.

kind읽기 전용 DeterminismKind

Why the result may differ.

accuracy읽기 전용 string

The bound in words, from WGSL §15.7.4 for f32, from the emulation for f64, and from Rule 7.2’s tree for an order row.

count읽기 전용 number

How many times the operation occurs in the module.

where읽기 전용 readonly string[]

Where it occurs: the module constants, module variables and functions whose initializer or body holds it, by name, in declaration order, each once.

note선택 사항읽기 전용 string

What the GLSL ES 3.00 spelling does differently, when that matters.

함께 보기

소스

src/core/passes/determinism.ts, 91행, 커밋 c66579bf 기준

이 페이지 편집 문제 보고