Texture expectation mixin can be applied on top of GPUTest to add texture related expectation helpers.

Hierarchy

  • TextureTestMixinType

Methods

  • Copies an texture's mipLevel to a buffer The size of the buffer is specified by byteLength

    Parameters

    • __namedParameters: {
          mipLevel: undefined | number;
          texture: GPUTexture;
      }
      • mipLevel: undefined | number
      • texture: GPUTexture
    • resultDataLayout: {
          byteLength: number;
          bytesPerBlock: number;
          bytesPerRow: number;
          mipSize: [number, number, number];
          rowsPerImage: number;
      }
      • byteLength: number
      • bytesPerBlock: number
      • bytesPerRow: number
      • mipSize: [number, number, number]
      • rowsPerImage: number

    Returns GPUBuffer

  • Copies an entire texture's mipLevel to a buffer

    Parameters

    • texture: GPUTexture
    • mipLevel: number

    Returns GPUBuffer

  • Creates a 1 mip level texture with the contents of a TexelView and tracks it for destruction for the test case.

    Parameters

    • texelView: TexelView
    • desc: Omit<GPUTextureDescriptor, "format">

    Returns GPUTexture

  • Creates a mipmapped texture where each mipmap level's (i) content is from texelViews[i] and tracks it for destruction for the test case.

    Parameters

    • texelViews: TexelView[]
    • desc: Omit<GPUTextureDescriptor, "format">

    Returns GPUTexture

  • Expects that comparing the subrect (defined via size) of a GPUTexture to the expected TexelView passes without error.

    Parameters

    Returns void

  • Renders the 2 given textures to an rgba8unorm texture at the size of the specified mipLevel, each time reading the contents of the result. Expects contents of both renders to match. Also expects contents described by origin and size to not be a constant value so as to make sure something interesting was actually compared.

    The point of this function is to compare compressed texture contents in compatibility mode. copyTextureToBuffer does not work for compressed textures in compatibility mode so instead, we pass 2 compressed texture to this function. Each one will be rendered to an rgba8unorm texture, the results of that rgba8unorm texture read via copyTextureToBuffer, and then results compared. This indirectly lets us compare the contents of the 2 compressed textures.

    Code calling this function would generate the textures where the actualTexture is generated calling writeTexture, copyBufferToTexture or copyTextureToTexture and expectedTexture's data is generated entirely on the CPU in such a way that its content should match whatever process was used to generate actualTexture. Often this involves calling updateLinearTextureDataSubBox

    Parameters

    • actualTexture: GPUTexture
    • expectedTexture: GPUTexture
    • mipLevel: number
    • origin: Required<GPUOrigin3DDict>
    • size: Required<GPUExtent3DDict>

    Returns void

  • Gets a byte offset to a texel

    Parameters

    • textureDataLayout: Required<GPUImageDataLayout>
    • format: "bgra8unorm" | "rgba8unorm" | "rgba16float" | "r8unorm" | "r8snorm" | "r8uint" | "r8sint" | "r16uint" | "r16sint" | "r16float" | "rg8unorm" | "rg8snorm" | "rg8uint" | "rg8sint" | "r32uint" | "r32sint" | "r32float" | "rg16uint" | "rg16sint" | "rg16float" | "rgba8unorm-srgb" | "rgba8snorm" | "rgba8uint" | "rgba8sint" | "bgra8unorm-srgb" | "rgb9e5ufloat" | "rgb10a2uint" | "rgb10a2unorm" | "rg11b10ufloat" | "rg32uint" | "rg32sint" | "rg32float" | "rgba16uint" | "rgba16sint" | "rgba32uint" | "rgba32sint" | "rgba32float" | "bc1-rgba-unorm" | "bc1-rgba-unorm-srgb" | "bc2-rgba-unorm" | "bc2-rgba-unorm-srgb" | "bc3-rgba-unorm" | "bc3-rgba-unorm-srgb" | "bc4-r-unorm" | "bc4-r-snorm" | "bc5-rg-unorm" | "bc5-rg-snorm" | "bc6h-rgb-ufloat" | "bc6h-rgb-float" | "bc7-rgba-unorm" | "bc7-rgba-unorm-srgb" | "etc2-rgb8unorm" | "etc2-rgb8unorm-srgb" | "etc2-rgb8a1unorm" | "etc2-rgb8a1unorm-srgb" | "etc2-rgba8unorm" | "etc2-rgba8unorm-srgb" | "eac-r11unorm" | "eac-r11snorm" | "eac-rg11unorm" | "eac-rg11snorm" | "astc-4x4-unorm" | "astc-4x4-unorm-srgb" | "astc-5x4-unorm" | "astc-5x4-unorm-srgb" | "astc-5x5-unorm" | "astc-5x5-unorm-srgb" | "astc-6x5-unorm" | "astc-6x5-unorm-srgb" | "astc-6x6-unorm" | "astc-6x6-unorm-srgb" | "astc-8x5-unorm" | "astc-8x5-unorm-srgb" | "astc-8x6-unorm" | "astc-8x6-unorm-srgb" | "astc-8x8-unorm" | "astc-8x8-unorm-srgb" | "astc-10x5-unorm" | "astc-10x5-unorm-srgb" | "astc-10x6-unorm" | "astc-10x6-unorm-srgb" | "astc-10x8-unorm" | "astc-10x8-unorm-srgb" | "astc-10x10-unorm" | "astc-10x10-unorm-srgb" | "astc-12x10-unorm" | "astc-12x10-unorm-srgb" | "astc-12x12-unorm" | "astc-12x12-unorm-srgb"
    • texel: Required<GPUOrigin3DDict>
    • Optional origin: Required<GPUOrigin3DDict>

    Returns number

  • Parameters

    • size: Required<GPUExtent3DDict>
    • format: "bgra8unorm" | "rgba8unorm" | "rgba16float" | "r8unorm" | "r8snorm" | "r8uint" | "r8sint" | "r16uint" | "r16sint" | "r16float" | "rg8unorm" | "rg8snorm" | "rg8uint" | "rg8sint" | "r32uint" | "r32sint" | "r32float" | "rg16uint" | "rg16sint" | "rg16float" | "rgba8unorm-srgb" | "rgba8snorm" | "rgba8uint" | "rgba8sint" | "bgra8unorm-srgb" | "rgb9e5ufloat" | "rgb10a2uint" | "rgb10a2unorm" | "rg11b10ufloat" | "rg32uint" | "rg32sint" | "rg32float" | "rgba16uint" | "rgba16sint" | "rgba32uint" | "rgba32sint" | "rgba32float" | "bc1-rgba-unorm" | "bc1-rgba-unorm-srgb" | "bc2-rgba-unorm" | "bc2-rgba-unorm-srgb" | "bc3-rgba-unorm" | "bc3-rgba-unorm-srgb" | "bc4-r-unorm" | "bc4-r-snorm" | "bc5-rg-unorm" | "bc5-rg-snorm" | "bc6h-rgb-ufloat" | "bc6h-rgb-float" | "bc7-rgba-unorm" | "bc7-rgba-unorm-srgb" | "etc2-rgb8unorm" | "etc2-rgb8unorm-srgb" | "etc2-rgb8a1unorm" | "etc2-rgb8a1unorm-srgb" | "etc2-rgba8unorm" | "etc2-rgba8unorm-srgb" | "eac-r11unorm" | "eac-r11snorm" | "eac-rg11unorm" | "eac-rg11snorm" | "astc-4x4-unorm" | "astc-4x4-unorm-srgb" | "astc-5x4-unorm" | "astc-5x4-unorm-srgb" | "astc-5x5-unorm" | "astc-5x5-unorm-srgb" | "astc-6x5-unorm" | "astc-6x5-unorm-srgb" | "astc-6x6-unorm" | "astc-6x6-unorm-srgb" | "astc-8x5-unorm" | "astc-8x5-unorm-srgb" | "astc-8x6-unorm" | "astc-8x6-unorm-srgb" | "astc-8x8-unorm" | "astc-8x8-unorm-srgb" | "astc-10x5-unorm" | "astc-10x5-unorm-srgb" | "astc-10x6-unorm" | "astc-10x6-unorm-srgb" | "astc-10x8-unorm" | "astc-10x8-unorm-srgb" | "astc-10x10-unorm" | "astc-10x10-unorm-srgb" | "astc-12x10-unorm" | "astc-12x10-unorm-srgb" | "astc-12x12-unorm" | "astc-12x12-unorm-srgb"

    Returns Generator<Required<GPUOrigin3DDict>, any, unknown>

  • Updates a Uint8Array with a cubic portion of data from another Uint8Array. Effectively it's a Uint8Array to Uint8Array copy that does the same thing as writeTexture but because the destination is a buffer you have to provide the parameters of the destination buffer similarly to how you'd provide them to copyTextureToBuffer

    Parameters

    • format: "bgra8unorm" | "rgba8unorm" | "rgba16float" | "r8unorm" | "r8snorm" | "r8uint" | "r8sint" | "r16uint" | "r16sint" | "r16float" | "rg8unorm" | "rg8snorm" | "rg8uint" | "rg8sint" | "r32uint" | "r32sint" | "r32float" | "rg16uint" | "rg16sint" | "rg16float" | "rgba8unorm-srgb" | "rgba8snorm" | "rgba8uint" | "rgba8sint" | "bgra8unorm-srgb" | "rgb9e5ufloat" | "rgb10a2uint" | "rgb10a2unorm" | "rg11b10ufloat" | "rg32uint" | "rg32sint" | "rg32float" | "rgba16uint" | "rgba16sint" | "rgba32uint" | "rgba32sint" | "rgba32float" | "bc1-rgba-unorm" | "bc1-rgba-unorm-srgb" | "bc2-rgba-unorm" | "bc2-rgba-unorm-srgb" | "bc3-rgba-unorm" | "bc3-rgba-unorm-srgb" | "bc4-r-unorm" | "bc4-r-snorm" | "bc5-rg-unorm" | "bc5-rg-snorm" | "bc6h-rgb-ufloat" | "bc6h-rgb-float" | "bc7-rgba-unorm" | "bc7-rgba-unorm-srgb" | "etc2-rgb8unorm" | "etc2-rgb8unorm-srgb" | "etc2-rgb8a1unorm" | "etc2-rgb8a1unorm-srgb" | "etc2-rgba8unorm" | "etc2-rgba8unorm-srgb" | "eac-r11unorm" | "eac-r11snorm" | "eac-rg11unorm" | "eac-rg11snorm" | "astc-4x4-unorm" | "astc-4x4-unorm-srgb" | "astc-5x4-unorm" | "astc-5x4-unorm-srgb" | "astc-5x5-unorm" | "astc-5x5-unorm-srgb" | "astc-6x5-unorm" | "astc-6x5-unorm-srgb" | "astc-6x6-unorm" | "astc-6x6-unorm-srgb" | "astc-8x5-unorm" | "astc-8x5-unorm-srgb" | "astc-8x6-unorm" | "astc-8x6-unorm-srgb" | "astc-8x8-unorm" | "astc-8x8-unorm-srgb" | "astc-10x5-unorm" | "astc-10x5-unorm-srgb" | "astc-10x6-unorm" | "astc-10x6-unorm-srgb" | "astc-10x8-unorm" | "astc-10x8-unorm-srgb" | "astc-10x10-unorm" | "astc-10x10-unorm-srgb" | "astc-12x10-unorm" | "astc-12x10-unorm-srgb" | "astc-12x12-unorm" | "astc-12x12-unorm-srgb"
    • copySize: Required<GPUExtent3DDict>
    • copyParams: {
          dest: LinearCopyParameters;
          src: LinearCopyParameters;
      }
      • dest: LinearCopyParameters
      • src: LinearCopyParameters

    Returns void

Generated using TypeDoc