in src/webgpu/shader/execution/expression/call/builtin/texture_utils.ts [1436:1464]
function getCallArgType<T extends Dimensionality>(
call: TextureCall<T>,
argName: (typeof kTextureCallArgNames)[number]
) {
switch (argName) {
case 'coords':
case 'derivativeMult':
return call.coordType;
case 'component':
assert(call.componentType !== undefined);
return call.componentType;
case 'mipLevel':
assert(call.levelType !== undefined);
return call.levelType;
case 'arrayIndex':
assert(call.arrayIndexType !== undefined);
return call.arrayIndexType;
case 'sampleIndex':
assert(call.sampleIndexType !== undefined);
return call.sampleIndexType;
case 'bias':
case 'depthRef':
case 'ddx':
case 'ddy':
return 'f';
default:
unreachable();
}
}