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읽기 전용stringThe operation as the IR names it: a builtin id (
sin,fma,textureSample), a binary operator (/,%, and forf64every 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 emulatedf64. An operation whose result is not a float is listed under the float it reads: apack’s argument, and the coordinate of atextureGatheron an integer texture, which isf32.kind읽기 전용DeterminismKindWhy the result may differ.
accuracy읽기 전용stringThe bound in words, from WGSL §15.7.4 for
f32, from the emulation forf64, and from Rule 7.2’s tree for anorderrow.count읽기 전용numberHow 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선택 사항읽기 전용stringWhat the GLSL ES 3.00 spelling does differently, when that matters.
함께 보기
소스
src/core/passes/determinism.ts, 91행, 커밋 c66579bf 기준