[cts.https.html?q=webgpu:web_platform,copyToTexture,image:copy_subrect_from_2D_Canvas:*]
  implementation-status: backlog
  [:srcDoFlipYDuringCopy=false;dstPremultiplied=false]
    expected: FAIL

  [:srcDoFlipYDuringCopy=false;dstPremultiplied=true]
    expected: FAIL

  [:srcDoFlipYDuringCopy=true;dstPremultiplied=false]
    expected: FAIL

  [:srcDoFlipYDuringCopy=true;dstPremultiplied=true]
    expected: FAIL


[cts.https.html?q=webgpu:web_platform,copyToTexture,image:from_image:*]
  implementation-status: backlog
  expected:
    if debug: TIMEOUT
    if not debug: [OK, TIMEOUT]
  [:srcDoFlipYDuringCopy=false;dstColorFormat="bgra8unorm";dstPremultiplied=false]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [TIMEOUT, NOTRUN]
      if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="bgra8unorm";dstPremultiplied=true]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="bgra8unorm-srgb";dstPremultiplied=false]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [TIMEOUT, NOTRUN]
      if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="bgra8unorm-srgb";dstPremultiplied=true]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [TIMEOUT, NOTRUN]
      if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="r16float";dstPremultiplied=false]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=false;dstColorFormat="r16float";dstPremultiplied=true]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=false;dstColorFormat="r32float";dstPremultiplied=false]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="r32float";dstPremultiplied=true]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="r8unorm";dstPremultiplied=false]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=false;dstColorFormat="r8unorm";dstPremultiplied=true]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rg16float";dstPremultiplied=false]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rg16float";dstPremultiplied=true]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rg32float";dstPremultiplied=false]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rg32float";dstPremultiplied=true]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rg8unorm";dstPremultiplied=false]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rg8unorm";dstPremultiplied=true]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rgb10a2unorm";dstPremultiplied=false]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [TIMEOUT, NOTRUN]
      if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rgb10a2unorm";dstPremultiplied=true]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [TIMEOUT, NOTRUN]
      if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rgba16float";dstPremultiplied=false]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [TIMEOUT, NOTRUN]
      if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rgba16float";dstPremultiplied=true]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [TIMEOUT, NOTRUN]
      if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rgba32float";dstPremultiplied=false]
    expected:
      if debug: [TIMEOUT, NOTRUN]
      if not debug: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rgba32float";dstPremultiplied=true]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux" and debug: [TIMEOUT, NOTRUN]
      if os == "linux" and not debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [TIMEOUT, NOTRUN]
      if os == "mac" and not debug: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rgba8unorm";dstPremultiplied=false]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rgba8unorm";dstPremultiplied=true]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rgba8unorm-srgb";dstPremultiplied=false]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=false;dstColorFormat="rgba8unorm-srgb";dstPremultiplied=true]
    expected: [FAIL, TIMEOUT, NOTRUN]

  [:srcDoFlipYDuringCopy=true;dstColorFormat="bgra8unorm";dstPremultiplied=false]
    expected:
      if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "win" and not debug: FAIL
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="bgra8unorm";dstPremultiplied=true]
    expected:
      if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "win" and not debug: FAIL
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="bgra8unorm-srgb";dstPremultiplied=false]
    expected:
      if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "win" and not debug: FAIL
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="bgra8unorm-srgb";dstPremultiplied=true]
    expected:
      if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "win" and not debug: FAIL
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="r16float";dstPremultiplied=false]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="r16float";dstPremultiplied=true]
    expected:
      if os == "win": FAIL
      if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "linux" and not debug: FAIL
      if os == "mac": FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="r32float";dstPremultiplied=false]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="r32float";dstPremultiplied=true]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="r8unorm";dstPremultiplied=false]
    expected:
      if os == "win": FAIL
      if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "linux" and not debug: FAIL
      if os == "mac": FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="r8unorm";dstPremultiplied=true]
    expected:
      if os == "win": FAIL
      if os == "linux" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "linux" and not debug: FAIL
      if os == "mac": FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rg16float";dstPremultiplied=false]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rg16float";dstPremultiplied=true]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rg32float";dstPremultiplied=false]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rg32float";dstPremultiplied=true]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rg8unorm";dstPremultiplied=false]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rg8unorm";dstPremultiplied=true]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rgb10a2unorm";dstPremultiplied=false]
    expected:
      if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "win" and not debug: FAIL
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rgb10a2unorm";dstPremultiplied=true]
    expected:
      if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "win" and not debug: FAIL
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rgba16float";dstPremultiplied=false]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rgba16float";dstPremultiplied=true]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rgba32float";dstPremultiplied=false]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rgba32float";dstPremultiplied=true]
    expected:
      if os == "win": [FAIL, TIMEOUT, NOTRUN]
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rgba8unorm";dstPremultiplied=false]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rgba8unorm";dstPremultiplied=true]
    expected:
      if debug: [FAIL, TIMEOUT, NOTRUN]
      if not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rgba8unorm-srgb";dstPremultiplied=false]
    expected:
      if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "win" and not debug: FAIL
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL

  [:srcDoFlipYDuringCopy=true;dstColorFormat="rgba8unorm-srgb";dstPremultiplied=true]
    expected:
      if os == "win" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "win" and not debug: FAIL
      if os == "linux": [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and debug: [FAIL, TIMEOUT, NOTRUN]
      if os == "mac" and not debug: FAIL
