WebGPU의 새로운 기능 (Chrome 147~148)

François Beaufort
François Beaufort

게시일: 2026년 4월 22일

WGSL linear_indexing 확장

WGSL 언어 확장 프로그램 linear_indexing을 사용하면 작업 그룹에서 다음 기본 제공 값을 사용할 수 있습니다.

  • global_invocation_index: 전체 컴퓨팅 셰이더 그리드 내에서 현재 호출의 선형 위치입니다. global_invocation_id, workgroup_size, num_workgroups를 기반으로 계산된 u32 입력 값입니다.

  • workgroup_index: 전체 컴퓨팅 셰이더 그리드 내에서 현재 작업 그룹의 선형 위치입니다. 동일한 작업 그룹 내의 모든 호출이 동일한 색인을 공유하는 u32 입력 값입니다.

이 확장 프로그램은 반복적이고 오류가 발생하기 쉬운 프로세스인 3D 좌표에서 수동 색인 계산을 처리합니다. 이 로직을 언어 자체로 이동함으로써 WGSL은 코드 가독성을 개선하고 일반적인 반복 계산을 삭제합니다.

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

if (!navigator.gpu.wgslLanguageFeatures.has("linear_indexing")) {
  throw new Error(`WGSL global_invocation_index and workgroup_index built-in values are not available`);
}

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

const shaderModule = device.createShaderModule({ code: `
  requires linear_indexing;

  override x : u32;
  override y : u32;
  override z : u32;

  @compute @workgroup_size(x, y, z)
  fn main(@builtin(workgroup_index) wg_index : u32,
          @builtin(global_invocation_index) g_index : u32) {

  // The workgroup_index built-in value is equivalent to:
  // (@builtin(workgroup_id).x +
  // (@builtin(workgroup_id).y * @builtin(num_workgroups).x) +
  // (@builtin(workgroup_id).z * @builtin(num_workgroups).x * @builtin(num_workgroups).y))

  // The global_invocation_index built-in value is equivalent to:
  // (@builtin(global_invocation_id).x +
  // (@builtin(global_invocation_id).y * x * @builtin(num_workgroups).x) +
  // (@builtin(global_invocation_id).z * x * @builtin(num_workgroups).x * y * @builtin(num_workgroups).y))
  }`,
});

Linux NVIDIA의 WebGPU

이전의 Linux에서 WebGPU 출시 후 Wayland에서 최신 NVIDIA 드라이버 (2024-05)를 포함하도록 지원이 확장되고 있습니다. 문제 442791440을 참고하세요.

Dawn 업데이트

Vulkan에서만 사용할 수 있는 wgpu::FeatureName::AdapterPropertiesDRM을 사용하면 어댑터에 관한 Linux DRM 정보를 쿼리할 수 있습니다. Dawn CL 299575를 참고하세요.

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

WebGPU의 새로운 기능

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

Chrome 147~148

Chrome 146

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