// Copyright 2024 The Dawn & Tint Authors
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this
//    list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
//    this list of conditions and the following disclaimer in the documentation
//    and/or other materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its
//    contributors may be used to endorse or promote products derived from
//    this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

////////////////////////////////////////////////////////////////////////////////
// HLSL builtin definition file                                               //
//                                                                            //
// After modifying this file, run:                                            //
//    tools/run gen                                                           //
// from the Dawn source directory.                                            //
//                                                                            //
// See docs/tint/intrinsic_definition_files.md for syntax                     //
////////////////////////////////////////////////////////////////////////////////

import "src/tint/lang/core/address_space.def"
import "src/tint/lang/core/access.def"
import "src/tint/lang/core/texel_format.def"

////////////////////////////////////////////////////////////////////////////////
// Types                                                                      //
////////////////////////////////////////////////////////////////////////////////

type i32
type u32
type f32
type f16
type ptr<S: address_space, T, A: access>
type vec2<T>
type vec3<T>
type vec4<T>
@display("vec{N}<{T}>")     type vec<N: num, T>
type mat2x2<T>
type mat2x3<T>
type mat2x4<T>
type mat3x2<T>
type mat3x3<T>
type mat3x4<T>
type mat4x2<T>
type mat4x3<T>
type mat4x4<T>
@display("mat{N}x{M}<{T}>") type mat<N: num, M: num, T>
type atomic<T>

type byte_address_buffer<A: access>
type int8_t4_packed
type uint8_t4_packed

type sampler
type sampler_comparison
type texture_1d<T>
type texture_2d<T>
type texture_2d_array<T>
type texture_3d<T>
type texture_cube<T>
type texture_cube_array<T>
type texture_depth_2d
type texture_depth_2d_array
type texture_depth_cube
type texture_depth_cube_array
type texture_depth_multisampled_2d
type texture_multisampled_2d<T>
type texture_storage_1d<F: texel_format, A: access>
type texture_storage_2d<F: texel_format, A: access>
type texture_storage_2d_array<F: texel_format, A: access>
type texture_storage_3d<F: texel_format, A: access>

type rasterizer_ordered_texture_2d<F: texel_format>

////////////////////////////////////////////////////////////////////////////////
// Type matchers                                                              //
////////////////////////////////////////////////////////////////////////////////

match iu32: i32 | u32
match fiu32: f32 | i32 | u32
match f32_u32: f32 | u32
match f32_i32: f32 | i32
match f32_f16: f32 | f16
match fi32_f16: f32 | i32 | f16
match fiu32_f16: f32 | i32 | u32 | f16

match storage: address_space.storage
match function: address_space.function
match workgroup: address_space.workgroup

match read_write: access.read_write
match readable
  : access.read
  | access.read_write
match writable
  : access.write
  | access.read_write

match f32_texel_format
  : texel_format.r8unorm
  | texel_format.bgra8unorm
  | texel_format.rgba8unorm
  | texel_format.rgba8snorm
  | texel_format.rgba16float
  | texel_format.r32float
  | texel_format.rg32float
  | texel_format.rgba32float

match u32_texel_format
  : texel_format.rgba8uint
  | texel_format.rgba16uint
  | texel_format.r32uint
  | texel_format.rg32uint
  | texel_format.rgba32uint

match i32_texel_format
  : texel_format.rgba8sint
  | texel_format.rgba16sint
  | texel_format.r32sint
  | texel_format.rg32sint
  | texel_format.rgba32sint

////////////////////////////////////////////////////////////////////////////////
// Builtin Functions                                                          //
////////////////////////////////////////////////////////////////////////////////

implicit(T: f32_u32) fn asint(T) -> i32
implicit(T: f32_u32, N: num) fn asint(vec<N, T>) -> vec<N, i32>

implicit(T: f32_i32) fn asuint(T) -> u32
implicit(T: f32_i32, N: num) fn asuint(vec<N, T>) -> vec<N, u32>

implicit(T: iu32) fn asfloat(T) -> f32
implicit(T: iu32, N: num) fn asfloat(vec<N, T>) -> vec<N, f32>

fn dot4add_i8packed(u32, u32, ptr<function, i32, writable>) -> i32
fn dot4add_u8packed(u32, u32, ptr<function, u32, writable>) -> u32

fn f32tof16(f32) -> u32
implicit(N: num) fn f32tof16(vec<N, f32>) -> vec<N, u32>

fn f16tof32(u32) -> f32
implicit(N: num) fn f16tof32(vec<N, u32>) -> vec<N, f32>

implicit(T: iu32) fn InterlockedCompareExchange(ptr<workgroup, atomic<T>, read_write>,
                                compare_value: iu32,
                                        value: iu32,
                               original_value: ptr<function, iu32, read_write>)
implicit(T: iu32) fn InterlockedExchange(ptr<workgroup, atomic<T>, read_write>,
                                 value: iu32,
                        original_value: ptr<function, iu32, read_write>)
implicit(T: iu32) fn InterlockedAdd(ptr<workgroup, atomic<T>, read_write>,
                            value: iu32,
                   original_value: ptr<function, iu32, read_write>)
implicit(T: iu32) fn InterlockedMax(ptr<workgroup, atomic<T>, read_write>,
                            value: iu32,
                   original_value: ptr<function, iu32, read_write>)
implicit(T: iu32) fn InterlockedMin(ptr<workgroup, atomic<T>, read_write>,
                            value: iu32,
                   original_value: ptr<function, iu32, read_write>)
implicit(T: iu32) fn InterlockedAnd(ptr<workgroup, atomic<T>, read_write>,
                            value: iu32,
                   original_value: ptr<function, iu32, read_write>)
implicit(T: iu32) fn InterlockedOr(ptr<workgroup, atomic<T>, read_write>,
                           value: iu32,
                  original_value: ptr<function, iu32, read_write>)
implicit(T: iu32) fn InterlockedXor(ptr<workgroup, atomic<T>, read_write>,
                            value: iu32,
                   original_value: ptr<function, iu32, read_write>)

// Treat the HLSL matrices as transposed when used in `mul`
implicit(T: f32_f16, C: num, R: num) fn mul (mat<R, C, T>, vec<C, T>) -> vec<R, T>
implicit(T: f32_f16, C: num, R: num) fn mul (vec<R, T>, mat<R, C, T>) -> vec<C, T>
implicit(T: f32_f16, K: num, C: num, R: num) fn mul (mat<R, K, T>, mat<K, C, T>) -> mat<R, C, T>

fn pack_u8(vec4<u32>) -> uint8_t4_packed
fn pack_s8(vec4<i32>) -> int8_t4_packed
fn pack_clamp_s8(vec4<i32>) -> int8_t4_packed

implicit(T: fi32_f16) fn sign(T) -> i32
implicit(N: num, T: fi32_f16) fn sign(vec<N, T>) -> vec<N, i32>

implicit(C: iu32) fn textureStore(texture: rasterizer_ordered_texture_2d<f32_texel_format>,
                          coords: vec2<C>,
                           value: vec4<f32>)
implicit(C: iu32) fn textureStore(texture: rasterizer_ordered_texture_2d<i32_texel_format>,
                          coords: vec2<C>,
                           value: vec4<i32>)
implicit(C: iu32) fn textureStore(texture: rasterizer_ordered_texture_2d<u32_texel_format>,
                          coords: vec2<C>,
                           value: vec4<u32>)

implicit(C: iu32) fn textureStore(texture: texture_storage_1d<f32_texel_format, writable>,
                          coords: C,
                           value: vec4<f32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_2d<f32_texel_format, writable>,
                          coords: vec2<C>,
                           value: vec4<f32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_2d_array<f32_texel_format, writable>,
                          coords: vec3<C>,
                           value: vec4<f32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_3d<f32_texel_format, writable>,
                          coords: vec3<C>,
                           value: vec4<f32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_1d<i32_texel_format, writable>,
                          coords: C,
                           value: vec4<i32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_2d<i32_texel_format, writable>,
                          coords: vec2<C>,
                           value: vec4<i32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_2d_array<i32_texel_format, writable>,
                          coords: vec3<C>,
                           value: vec4<i32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_3d<i32_texel_format, writable>,
                          coords: vec3<C>,
                           value: vec4<i32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_1d<u32_texel_format, writable>,
                          coords: C,
                           value: vec4<u32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_2d<u32_texel_format, writable>,
                          coords: vec2<C>,
                           value: vec4<u32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_2d_array<u32_texel_format, writable>,
                          coords: vec3<C>,
                           value: vec4<u32>)
implicit(C: iu32) fn textureStore(texture: texture_storage_3d<u32_texel_format, writable>,
                          coords: vec3<C>,
                           value: vec4<u32>)

fn unpack_s8s32(int8_t4_packed) -> vec4<i32>
fn unpack_u8u32(uint8_t4_packed) -> vec4<u32>

fn WaveGetLaneIndex() -> u32
fn WaveGetLaneCount() -> u32
implicit(T: fiu32_f16) fn WaveReadLaneAt(T, u32) -> T
implicit(N: num, T: fiu32_f16) fn WaveReadLaneAt(vec<N, T>, u32) -> vec<N, T>

implicit(T: f32_f16) fn modf(T, T) -> T
implicit(N: num, T: f32_f16) fn modf(vec<N, T>, vec<N, T>) -> vec<N, T>

implicit(T: f32_f16) fn frexp(T, T) -> T
implicit(N: num, T: f32_f16) fn frexp(vec<N, T>, vec<N, T>) -> vec<N, T>

////////////////////////////////////////////////////////////////////////////////
// Member Functions                                                           //
////////////////////////////////////////////////////////////////////////////////

@member_function fn Load(byte_address_buffer<readable>, offset: u32) -> u32
@member_function fn Load2(byte_address_buffer<readable>, offset: u32) -> vec2<u32>
@member_function fn Load3(byte_address_buffer<readable>, offset: u32) -> vec3<u32>
@member_function fn Load4(byte_address_buffer<readable>, offset: u32) -> vec4<u32>

@member_function fn LoadF16(byte_address_buffer<readable>, offset: u32) -> f16
@member_function fn Load2F16(byte_address_buffer<readable>, offset: u32) -> vec2<f16>
@member_function fn Load3F16(byte_address_buffer<readable>, offset: u32) -> vec3<f16>
@member_function fn Load4F16(byte_address_buffer<readable>, offset: u32) -> vec4<f16>

@member_function fn Store(byte_address_buffer<writable>, offset: u32, value: u32)
@member_function fn Store2(byte_address_buffer<writable>, offset: u32, value: vec2<u32>)
@member_function fn Store3(byte_address_buffer<writable>, offset: u32, value: vec3<u32>)
@member_function fn Store4(byte_address_buffer<writable>, offset: u32, value: vec4<u32>)

@member_function fn StoreF16(byte_address_buffer<writable>, offset: u32, value: f16)
@member_function fn Store2F16(byte_address_buffer<writable>, offset: u32, value: vec2<f16>)
@member_function fn Store3F16(byte_address_buffer<writable>, offset: u32, value: vec3<f16>)
@member_function fn Store4F16(byte_address_buffer<writable>, offset: u32, value: vec4<f16>)

@member_function fn GatherCmp(texture: texture_depth_2d,
                              sampler: sampler_comparison,
                               coords: vec2<f32>,
                            depth_ref: f32) -> vec4<f32>
@member_function fn GatherCmp(texture: texture_depth_2d,
                              sampler: sampler_comparison,
                               coords: vec2<f32>,
                            depth_ref: f32,
                               offset: vec2<i32>) -> vec4<f32>
@member_function fn GatherCmp(texture: texture_depth_2d_array,
                              sampler: sampler_comparison,
                               coords: vec3<f32>,
                            depth_ref: f32) -> vec4<f32>
@member_function fn GatherCmp(texture: texture_depth_2d_array,
                              sampler: sampler_comparison,
                               coords: vec3<f32>,
                            depth_ref: f32,
                               offset: vec2<i32>) -> vec4<f32>
@member_function fn GatherCmp(texture: texture_depth_cube,
                              sampler: sampler_comparison,
                               coords: vec3<f32>,
                            depth_ref: f32) -> vec4<f32>
@member_function fn GatherCmp(texture: texture_depth_cube_array,
                              sampler: sampler_comparison,
                               coords: vec4<f32>,
                            depth_ref: f32) -> vec4<f32>

@member_function fn Gather(texture: texture_depth_2d,
                           sampler: sampler,
                            coords: vec2<f32>) -> vec4<f32>
@member_function fn Gather(texture: texture_depth_2d,
                           sampler: sampler,
                            coords: vec2<f32>,
                            offset: vec2<i32>) -> vec4<f32>
@member_function fn Gather(texture: texture_depth_2d_array,
                           sampler: sampler,
                            coords: vec3<f32>) -> vec4<f32>
@member_function fn Gather(texture: texture_depth_2d_array,
                           sampler: sampler,
                            coords: vec3<f32>,
                            offset: vec2<i32>) -> vec4<f32>
@member_function fn Gather(texture: texture_depth_cube,
                           sampler: sampler,
                            coords: vec3<f32>) -> vec4<f32>
@member_function fn Gather(texture: texture_depth_cube_array,
                           sampler: sampler,
                            coords: vec4<f32>) -> vec4<f32>

@member_function implicit(T: fiu32) fn GatherAlpha(texture: texture_2d<T>,
                                          sampler: sampler,
                                           coords: vec2<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherAlpha(texture: texture_2d<T>,
                                          sampler: sampler,
                                           coords: vec2<f32>,
                                           offset: vec2<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherAlpha(texture: texture_2d_array<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherAlpha(texture: texture_2d_array<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>,
                                           offset: vec2<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherAlpha(texture: texture_cube<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherAlpha(texture: texture_cube_array<T>,
                                          sampler: sampler,
                                           coords: vec4<f32>) -> vec4<T>

@member_function implicit(T: fiu32) fn GatherBlue(texture: texture_2d<T>,
                                          sampler: sampler,
                                           coords: vec2<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherBlue(texture: texture_2d<T>,
                                          sampler: sampler,
                                           coords: vec2<f32>,
                                           offset: vec2<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherBlue(texture: texture_2d_array<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherBlue(texture: texture_2d_array<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>,
                                           offset: vec2<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherBlue(texture: texture_cube<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherBlue(texture: texture_cube_array<T>,
                                          sampler: sampler,
                                           coords: vec4<f32>) -> vec4<T>

@member_function implicit(T: fiu32) fn GatherGreen(texture: texture_2d<T>,
                                          sampler: sampler,
                                           coords: vec2<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherGreen(texture: texture_2d<T>,
                                          sampler: sampler,
                                           coords: vec2<f32>,
                                           offset: vec2<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherGreen(texture: texture_2d_array<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherGreen(texture: texture_2d_array<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>,
                                           offset: vec2<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherGreen(texture: texture_cube<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherGreen(texture: texture_cube_array<T>,
                                          sampler: sampler,
                                           coords: vec4<f32>) -> vec4<T>

@member_function implicit(T: fiu32) fn GatherRed(texture: texture_2d<T>,
                                          sampler: sampler,
                                           coords: vec2<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherRed(texture: texture_2d<T>,
                                          sampler: sampler,
                                           coords: vec2<f32>,
                                           offset: vec2<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherRed(texture: texture_2d_array<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherRed(texture: texture_2d_array<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>,
                                           offset: vec2<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherRed(texture: texture_cube<T>,
                                          sampler: sampler,
                                           coords: vec3<f32>) -> vec4<T>
@member_function implicit(T: fiu32) fn GatherRed(texture: texture_cube_array<T>,
                                          sampler: sampler,
                                           coords: vec4<f32>) -> vec4<T>

@member_function implicit(A: access) fn GetDimensions(byte_address_buffer<A>, width: ptr<function, u32, writable>)

@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_1d<T>,
                                              width: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_1d<T>,
                                              level: u32,
                                              width: ptr<function, u32, writable>,
                                              num_levels: ptr<function, u32, writable>)

@member_function implicit(F: texel_format, A: access) fn GetDimensions(texture: texture_storage_1d<F, A>,
                                                                width: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_2d<T>,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_2d<T>,
                                              level: u32,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>,
                                         num_levels: ptr<function, u32, writable>)
@member_function implicit(F: texel_format, A: access) fn GetDimensions(texture: texture_storage_2d<F, A>,
                                                                width: ptr<function, u32, writable>,
                                                               height: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_2d_array<T>,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>,
                                           elements: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_2d_array<T>,
                                              level: u32,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>,
                                           elements: ptr<function, u32, writable>,
                                         num_levels: ptr<function, u32, writable>)
@member_function implicit(F: texel_format, A: access) fn GetDimensions(texture: texture_storage_2d_array<F, A>,
                                                                width: ptr<function, u32, writable>,
                                                               height: ptr<function, u32, writable>,
                                                             elements: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_3d<T>,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>,
                                              depth: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_3d<T>,
                                              level: u32,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>,
                                              depth: ptr<function, u32, writable>,
                                         num_levels: ptr<function, u32, writable>)
@member_function implicit(F: texel_format, A: access) fn GetDimensions(texture: texture_storage_3d<F, A>,
                                                                width: ptr<function, u32, writable>,
                                                               height: ptr<function, u32, writable>,
                                                                depth: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_cube<T>,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_cube<T>,
                                              level: u32,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>,
                                         num_levels: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_cube_array<T>,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>,
                                           elements: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_cube_array<T>,
                                              level: u32,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>,
                                           elements: ptr<function, u32, writable>,
                                         num_levels: ptr<function, u32, writable>)
@member_function implicit(T: fiu32) fn GetDimensions(texture: texture_multisampled_2d<T>,
                                              width: ptr<function, u32, writable>,
                                             height: ptr<function, u32, writable>,
                                            samples: ptr<function, u32, writable>)
@member_function fn GetDimensions(texture: texture_depth_2d,
                                    width: ptr<function, u32, writable>,
                                   height: ptr<function, u32, writable>)
@member_function fn GetDimensions(texture: texture_depth_2d,
                                    level: u32,
                                    width: ptr<function, u32, writable>,
                                   height: ptr<function, u32, writable>,
                               num_levels: ptr<function, u32, writable>)
@member_function fn GetDimensions(texture: texture_depth_2d_array,
                                    width: ptr<function, u32, writable>,
                                   height: ptr<function, u32, writable>,
                                 elements: ptr<function, u32, writable>)
@member_function fn GetDimensions(texture: texture_depth_2d_array,
                                    level: u32,
                                    width: ptr<function, u32, writable>,
                                   height: ptr<function, u32, writable>,
                                 elements: ptr<function, u32, writable>,
                               num_levels: ptr<function, u32, writable>)
@member_function fn GetDimensions(texture: texture_depth_cube,
                                    width: ptr<function, u32, writable>,
                                   height: ptr<function, u32, writable>)
@member_function fn GetDimensions(texture: texture_depth_cube,
                                    level: u32,
                                    width: ptr<function, u32, writable>,
                                   height: ptr<function, u32, writable>,
                               num_levels: ptr<function, u32, writable>)
@member_function fn GetDimensions(texture: texture_depth_cube_array,
                                    width: ptr<function, u32, writable>,
                                   height: ptr<function, u32, writable>,
                                 elements: ptr<function, u32, writable>)
@member_function fn GetDimensions(texture: texture_depth_cube_array,
                                    level: u32,
                                    width: ptr<function, u32, writable>,
                                   height: ptr<function, u32, writable>,
                                 elements: ptr<function, u32, writable>,
                               num_levels: ptr<function, u32, writable>)
@member_function fn GetDimensions(texture: texture_depth_multisampled_2d,
                                    width: ptr<function, u32, writable>,
                                   height: ptr<function, u32, writable>,
                                  samples: ptr<function, u32, writable>)

@member_function implicit(T: fiu32) fn Load(texture: texture_1d<T>, location: vec2<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn Load(texture: texture_2d<T>, location: vec3<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn Load(texture: texture_2d_array<T>, location: vec4<i32>) -> vec4<T>
@member_function implicit(T: fiu32) fn Load(texture: texture_multisampled_2d<T>,
                                  location: vec2<i32>,
                              sample_index: i32) -> vec4<T>
@member_function implicit(T: fiu32) fn Load(texture: texture_3d<T>, location: vec4<i32>) -> vec4<T>

@member_function fn Load(texture: texture_depth_2d, location: vec3<i32>) -> vec4<f32>
@member_function fn Load(texture: texture_depth_2d_array, location: vec4<i32>) -> vec4<f32>
@member_function fn Load(texture: texture_depth_multisampled_2d,
                                  location: vec2<i32>,
                              sample_index: i32) -> vec4<f32>

@member_function implicit(F: f32_texel_format, C: iu32) fn Load(texture: rasterizer_ordered_texture_2d<F>, location: vec2<C>) -> vec4<f32>
@member_function implicit(F: u32_texel_format, C: iu32) fn Load(texture: rasterizer_ordered_texture_2d<F>, location: vec2<C>) -> vec4<u32>
@member_function implicit(F: i32_texel_format, C: iu32) fn Load(texture: rasterizer_ordered_texture_2d<F>, location: vec2<C>) -> vec4<i32>

@member_function implicit(F: f32_texel_format, A: readable) fn Load(texture: texture_storage_1d<F, A>,
                                                          location: vec2<i32>) -> vec4<f32>
@member_function implicit(F: f32_texel_format, A: readable) fn Load(texture: texture_storage_2d<F, A>,
                                                          location: vec3<i32>) -> vec4<f32>
@member_function implicit(F: f32_texel_format, A: readable) fn Load(texture: texture_storage_2d_array<F, A>,
                                                          location: vec4<i32>) -> vec4<f32>
@member_function implicit(F: f32_texel_format, A: readable) fn Load(texture: texture_storage_3d<F, A>,
                                                          location: vec4<i32>) -> vec4<f32>

@member_function implicit(F: u32_texel_format, A: readable) fn Load(texture: texture_storage_1d<F, A>,
                                                          location: vec2<i32>) -> vec4<u32>
@member_function implicit(F: u32_texel_format, A: readable) fn Load(texture: texture_storage_2d<F, A>,
                                                          location: vec3<i32>) -> vec4<u32>
@member_function implicit(F: u32_texel_format, A: readable) fn Load(texture: texture_storage_2d_array<F, A>,
                                                          location: vec4<i32>) -> vec4<u32>
@member_function implicit(F: u32_texel_format, A: readable) fn Load(texture: texture_storage_3d<F, A>,
                                                          location: vec4<i32>) -> vec4<u32>


@member_function implicit(F: i32_texel_format, A: readable) fn Load(texture: texture_storage_1d<F, A>,
                                                          location: vec2<i32>) -> vec4<i32>
@member_function implicit(F: i32_texel_format, A: readable) fn Load(texture: texture_storage_2d<F, A>,
                                                          location: vec3<i32>) -> vec4<i32>
@member_function implicit(F: i32_texel_format, A: readable) fn Load(texture: texture_storage_2d_array<F, A>,
                                                          location: vec4<i32>) -> vec4<i32>
@member_function implicit(F: i32_texel_format, A: readable) fn Load(texture: texture_storage_3d<F, A>,
                                                          location: vec4<i32>) -> vec4<i32>

@member_function fn InterlockedCompareExchange(byte_address_buffer<read_write>,
                                    offset: iu32,
                             compare_value: iu32,
                                     value: iu32,
                            original_value: ptr<function, iu32, read_write>)
@member_function fn InterlockedExchange(byte_address_buffer<readable>,
                                    offset: iu32,
                                     value: iu32,
                            original_value: ptr<function, iu32, read_write>)
@member_function fn InterlockedAdd(byte_address_buffer<readable>,
                                    offset: iu32,
                                     value: iu32,
                            original_value: ptr<function, iu32, read_write>)
@member_function fn InterlockedMax(byte_address_buffer<readable>,
                                    offset: iu32,
                                     value: iu32,
                            original_value: ptr<function, iu32, read_write>)
@member_function fn InterlockedMin(byte_address_buffer<readable>,
                                    offset: iu32,
                                     value: iu32,
                            original_value: ptr<function, iu32, read_write>)
@member_function fn InterlockedAnd(byte_address_buffer<readable>,
                                    offset: iu32,
                                     value: iu32,
                            original_value: ptr<function, iu32, read_write>)
@member_function fn InterlockedOr(byte_address_buffer<readable>,
                                    offset: iu32,
                                     value: iu32,
                            original_value: ptr<function, iu32, read_write>)
@member_function fn InterlockedXor(byte_address_buffer<readable>,
                                    offset: iu32,
                                     value: iu32,
                            original_value: ptr<function, iu32, read_write>)

@member_function fn Sample(texture: texture_1d<f32>,
                           sampler: sampler,
                            coords: f32) -> vec4<f32>
@member_function fn Sample(texture: texture_2d<f32>,
                           sampler: sampler,
                            coords: vec2<f32>) -> vec4<f32>
@member_function fn Sample(texture: texture_2d<f32>,
                           sampler: sampler,
                            coords: vec2<f32>,
                            offset: vec2<i32>) -> vec4<f32>
@member_function fn Sample(texture: texture_2d_array<f32>,
                           sampler: sampler,
                            coords: vec3<f32>) -> vec4<f32>
@member_function fn Sample(texture: texture_2d_array<f32>,
                           sampler: sampler,
                            coords: vec3<f32>,
                            offset: vec2<i32>) -> vec4<f32>
@member_function fn Sample(texture: texture_3d<f32>,
                           sampler: sampler,
                            coords: vec3<f32>) -> vec4<f32>
@member_function fn Sample(texture: texture_3d<f32>,
                           sampler: sampler,
                            coords: vec3<f32>,
                            offset: vec3<i32>) -> vec4<f32>
@member_function fn Sample(texture: texture_cube<f32>,
                           sampler: sampler,
                            coords: vec3<f32>) -> vec4<f32>
@member_function fn Sample(texture: texture_cube_array<f32>,
                           sampler: sampler,
                            coords: vec4<f32>) -> vec4<f32>
@member_function fn Sample(texture: texture_depth_2d,
                           sampler: sampler,
                            coords: vec2<f32>) -> vec4<f32>
@member_function fn Sample(texture: texture_depth_2d,
                           sampler: sampler,
                            coords: vec2<f32>,
                            offset: vec2<i32>) -> vec4<f32>
@member_function fn Sample(texture: texture_depth_2d_array,
                           sampler: sampler,
                            coords: vec3<f32>) -> vec4<f32>
@member_function fn Sample(texture: texture_depth_2d_array,
                           sampler: sampler,
                            coords: vec3<f32>,
                            offset: vec2<i32>) -> vec4<f32>
@member_function fn Sample(texture: texture_depth_cube,
                           sampler: sampler,
                            coords: vec3<f32>) -> vec4<f32>
@member_function fn Sample(texture: texture_depth_cube_array,
                           sampler: sampler,
                            coords: vec4<f32>) -> vec4<f32>

@member_function fn SampleBias(texture: texture_2d<f32>,
                               sampler: sampler,
                                coords: vec2<f32>,
                                  bias: f32) -> vec4<f32>
@member_function fn SampleBias(texture: texture_2d<f32>,
                               sampler: sampler,
                                coords: vec2<f32>,
                                  bias: f32,
                                offset: vec2<i32>) -> vec4<f32>
@member_function fn SampleBias(texture: texture_2d_array<f32>,
                               sampler: sampler,
                                coords: vec3<f32>,
                                  bias: f32) -> vec4<f32>
@member_function fn SampleBias(texture: texture_2d_array<f32>,
                               sampler: sampler,
                                coords: vec3<f32>,
                                  bias: f32,
                                offset: vec2<i32>) -> vec4<f32>
@member_function fn SampleBias(texture: texture_3d<f32>,
                               sampler: sampler,
                                coords: vec3<f32>,
                                  bias: f32) -> vec4<f32>
@member_function fn SampleBias(texture: texture_3d<f32>,
                               sampler: sampler,
                                coords: vec3<f32>,
                                  bias: f32,
                                offset: vec3<i32>) -> vec4<f32>
@member_function fn SampleBias(texture: texture_cube<f32>,
                               sampler: sampler,
                                coords: vec3<f32>,
                                  bias: f32) -> vec4<f32>
@member_function fn SampleBias(texture: texture_cube_array<f32>,
                               sampler: sampler,
                                coords: vec4<f32>,
                                  bias: f32) -> vec4<f32>

@member_function fn SampleCmp(texture: texture_depth_2d,
                              sampler: sampler_comparison,
                               coords: vec2<f32>,
                                value: f32) -> f32
@member_function fn SampleCmp(texture: texture_depth_2d,
                              sampler: sampler_comparison,
                               coords: vec2<f32>,
                                value: f32,
                               offset: vec2<i32>) -> f32
@member_function fn SampleCmp(texture: texture_depth_2d_array,
                              sampler: sampler_comparison,
                               coords: vec3<f32>,
                                value: f32) -> f32
@member_function fn SampleCmp(texture: texture_depth_2d_array,
                              sampler: sampler_comparison,
                               coords: vec3<f32>,
                                value: f32,
                               offset: vec2<i32>) -> f32
@member_function fn SampleCmp(texture: texture_depth_cube,
                              sampler: sampler_comparison,
                               coords: vec3<f32>,
                                value: f32) -> f32
@member_function fn SampleCmp(texture: texture_depth_cube_array,
                              sampler: sampler_comparison,
                               coords: vec4<f32>,
                                value: f32) -> f32

@member_function fn SampleCmpLevelZero(texture: texture_depth_2d,
                                       sampler: sampler_comparison,
                                        coords: vec2<f32>,
                                         value: f32) -> f32
@member_function fn SampleCmpLevelZero(texture: texture_depth_2d,
                                       sampler: sampler_comparison,
                                        coords: vec2<f32>,
                                         value: f32,
                                        offset: vec2<i32>) -> f32
@member_function fn SampleCmpLevelZero(texture: texture_depth_2d_array,
                                       sampler: sampler_comparison,
                                        coords: vec3<f32>,
                                         value: f32) -> f32
@member_function fn SampleCmpLevelZero(texture: texture_depth_2d_array,
                                       sampler: sampler_comparison,
                                        coords: vec3<f32>,
                                         value: f32,
                                        offset: vec2<i32>) -> f32
@member_function fn SampleCmpLevelZero(texture: texture_depth_cube,
                                       sampler: sampler_comparison,
                                        coords: vec3<f32>,
                                         value: f32) -> f32
@member_function fn SampleCmpLevelZero(texture: texture_depth_cube_array,
                                       sampler: sampler_comparison,
                                        coords: vec4<f32>,
                                         value: f32) -> f32

@member_function fn SampleGrad(texture: texture_2d<f32>,
                               sampler: sampler,
                                coords: vec2<f32>,
                                   ddx: vec2<f32>,
                                   ddy: vec2<f32>) -> vec4<f32>
@member_function fn SampleGrad(texture: texture_2d<f32>,
                               sampler: sampler,
                                coords: vec2<f32>,
                                   ddx: vec2<f32>,
                                   ddy: vec2<f32>,
                                offset: vec2<i32>) -> vec4<f32>
@member_function fn SampleGrad(texture: texture_2d_array<f32>,
                               sampler: sampler,
                                coords: vec3<f32>,
                                   ddx: vec2<f32>,
                                   ddy: vec2<f32>) -> vec4<f32>
@member_function fn SampleGrad(texture: texture_2d_array<f32>,
                               sampler: sampler,
                                coords: vec3<f32>,
                                   ddx: vec2<f32>,
                                   ddy: vec2<f32>,
                                offset: vec2<i32>) -> vec4<f32>
@member_function fn SampleGrad(texture: texture_3d<f32>,
                               sampler: sampler,
                                coords: vec3<f32>,
                                   ddx: vec3<f32>,
                                   ddy: vec3<f32>) -> vec4<f32>
@member_function fn SampleGrad(texture: texture_3d<f32>,
                               sampler: sampler,
                                coords: vec3<f32>,
                                   ddx: vec3<f32>,
                                   ddy: vec3<f32>,
                                offset: vec3<i32>) -> vec4<f32>
@member_function fn SampleGrad(texture: texture_cube<f32>,
                               sampler: sampler,
                                coords: vec3<f32>,
                                   ddx: vec3<f32>,
                                   ddy: vec3<f32>) -> vec4<f32>
@member_function fn SampleGrad(texture: texture_cube_array<f32>,
                               sampler: sampler,
                                coords: vec4<f32>,
                                   ddx: vec3<f32>,
                                   ddy: vec3<f32>) -> vec4<f32>

@member_function fn SampleLevel(texture: texture_2d<f32>,
                                sampler: sampler,
                                 coords: vec2<f32>,
                                  level: f32) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_2d<f32>,
                                sampler: sampler,
                                 coords: vec2<f32>,
                                 level: f32,
                                 offset: vec2<i32>) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_2d_array<f32>,
                                sampler: sampler,
                                 coords: vec3<f32>,
                                  level: f32) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_2d_array<f32>,
                                sampler: sampler,
                                 coords: vec3<f32>,
                                  level: f32,
                                 offset: vec2<i32>) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_3d<f32>,
                                sampler: sampler,
                                 coords: vec3<f32>,
                                  level: f32) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_3d<f32>,
                                sampler: sampler,
                                 coords: vec3<f32>,
                                  level: f32,
                                 offset: vec3<i32>) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_cube<f32>,
                                sampler: sampler,
                                 coords: vec3<f32>,
                                  level: f32) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_cube_array<f32>,
                                sampler: sampler,
                                 coords: vec4<f32>,
                                  level: f32) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_depth_2d,
                                sampler: sampler,
                                 coords: vec2<f32>,
                                  level: f32) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_depth_2d,
                                sampler: sampler,
                                 coords: vec2<f32>,
                                 level: f32,
                                 offset: vec2<i32>) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_depth_2d_array,
                                sampler: sampler,
                                 coords: vec3<f32>,
                                  level: f32) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_depth_2d_array,
                                sampler: sampler,
                                 coords: vec3<f32>,
                                  level: f32,
                                 offset: vec2<i32>) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_depth_cube,
                                sampler: sampler,
                                 coords: vec3<f32>,
                                  level: f32) -> vec4<f32>
@member_function fn SampleLevel(texture: texture_depth_cube_array,
                                sampler: sampler,
                                 coords: vec4<f32>,
                                  level: f32) -> vec4<f32>
