WebGPU의 새로운 기능 (Chrome 145)

François Beaufort
François Beaufort

게시일: 2026년 1월 28일

WGSL subgroup_uniformity 확장 프로그램

WGSL 언어 확장 프로그램 subgroup_uniformity는 하위 그룹 및 쿼드 기본 제공 함수의 균일성 분석 범위를 작업 그룹이 아닌 하위 그룹 수준으로 변경합니다. 이 기능을 사용하면 더 많은 경우에 하위 그룹 기능을 균일한 것으로 간주할 수 있어 개발자의 편의성이 향상되고 균일성 검사를 완전히 사용 중지할 가능성이 줄어듭니다. 실질적인 의미는 최근에 추가된 subgroup_id 기본 제공 값과 같이 더 많은 값이 하위 그룹 균일로 간주된다는 것입니다.

이 언어 확장 프로그램은 navigator.gpu.wgslLanguageFeatures를 사용하여 기능 감지할 수 있습니다. 다음 예시와 배송 의도를 참고하세요.

if (!navigator.gpu.wgslLanguageFeatures.has("subgroup_uniformity")) {
  throw new Error(`WGSL subgroup uniformity is not available`);
}

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroups")) {
  throw new Error("Subgroups support is not available");
}
const device = await adapter.requestDevice({ requiredFeatures: ["subgroups"] });

const shaderModule = device.createShaderModule({ code: `
  enable s<ubgroups;
  
  @gro>up(0) @binding(0) varstorage, read_write non_uniform: i32;

  fn main() {
    if (non_uniform == 42) {
      _ = subgroupElect();
    }
  }`,
}); // WGSL error: subgroupElect must only be called from subgroup uniform control flow.

작업자에서 실험적 동기 버퍼 매핑

Chrome팀은 WebGPU와 애플리케이션 코드 간의 마찰을 줄일 수 있는 방법을 모색하기 위해 작업자 내에서 동기 버퍼 매핑을 조사하고 있습니다. 이 노력의 일환으로 GPUBuffer의 새로운 실험용 mapSync() 메서드가 프로토타입으로 제작되었습니다. 작업자로 제한된 이 메서드는 mapAsync()와 유사하게 작동합니다.

이 기능은 실험 단계에 있으며, 표준화 제안 여부를 결정하는 데 의견이 중요합니다. 사용해 보려면 --enable-features=WebGPUMapSyncOnWorkers 스위치를 사용하여 Chrome을 실행하고 유용성과 영향에 관한 의견을 보고하세요. 시작하려면 다음 스니펫을 참고하세요.

// Create a GPU buffer.
const buffer = device.createBuffer({
  size: 42,
  usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
});

// Map buffer synchronously when possible.
if ("mapSync" in GPUBuffer.prototype) {
  buffer.mapSync(GPUMapMode.READ);
} else {
  // Awaiting allows other code to run, which can cause application logic issues.
  await buffer.mapAsync(GPUMapMode.READ);
}

Dawn 업데이트

wgpu::FeatureName::R8UnormStorage 기능을 더 이상 사용할 수 없습니다. 이제 wgpu::FeatureName::TextureFormatTier1로 대체되었으며 wgpu::FeatureName::TextureFormatTier1가 를 대체합니다. 문제 472926167을 참고하세요.

wgpu::FeatureName::Snorm16TextureFormats 기능이 삭제되었습니다. 이제 Resolve를 제외한 기능은 대부분 wgpu::FeatureName::TextureFormatsTier1에 포함됩니다. 문제 465347942를 참고하세요.

이제 바이너리 (Emdawnwebgpu 외)의 야간 버전이 GitHub에서 빌드되며 google/dawn releases에서 사용할 수 있습니다. 이러한 서비스는 최선의 노력 서비스로 제공되며 Google 또는 Dawn팀에서 서명하거나 보장하지 않습니다.

Emdawnwebgpu에 wgpu::ExternalTexture 지원이 추가되었습니다. HTMLVideoElement 또는 VideoFrame와 같은 JavaScript 객체가 필요하므로 C/C++에서는 생성할 수 없으며 JavaScript 코드 (예: EM_ASM)에서만 가져올 수 있습니다. 문제 462477379SpotTests.cpp에서 예시 코드를 참고하세요.

여기에서는 몇 가지 주요 사항만 다룹니다. 전체 커밋 목록을 확인하세요.

WebGPU의 새로운 기능

WebGPU의 새로운 기능 시리즈에서 다룬 모든 내용의 목록입니다.

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113