[cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:interpolation_sampling:*]
  implementation-status: backlog
  [:isAsync=false;output="%40interpolate(flat,%20either)";input="%40interpolate(flat,%20either)"]

  [:isAsync=false;output="%40interpolate(linear,%20center)";input="%40interpolate(linear)"]
    expected: FAIL

  [:isAsync=false;output="%40interpolate(perspective)";input="%40interpolate(perspective)"]

  [:isAsync=false;output="%40interpolate(perspective)";input="%40interpolate(perspective,%20center)"]
    expected: FAIL

  [:isAsync=false;output="%40interpolate(perspective)";input="%40interpolate(perspective,%20sample)"]

  [:isAsync=false;output="%40interpolate(perspective,%20center)";input="%40interpolate(perspective,%20centroid)"]

  [:isAsync=false;output="%40interpolate(perspective,%20center)";input="%40interpolate(perspective,%20sample)"]

  [:isAsync=false;output="%40interpolate(perspective,%20centroid)";input="%40interpolate(perspective)"]

  [:isAsync=true;output="%40interpolate(flat,%20either)";input="%40interpolate(flat,%20either)"]

  [:isAsync=true;output="%40interpolate(linear,%20center)";input="%40interpolate(linear)"]
    expected: FAIL

  [:isAsync=true;output="%40interpolate(perspective)";input="%40interpolate(perspective)"]

  [:isAsync=true;output="%40interpolate(perspective)";input="%40interpolate(perspective,%20center)"]
    expected: FAIL

  [:isAsync=true;output="%40interpolate(perspective)";input="%40interpolate(perspective,%20sample)"]

  [:isAsync=true;output="%40interpolate(perspective,%20center)";input="%40interpolate(perspective,%20centroid)"]

  [:isAsync=true;output="%40interpolate(perspective,%20center)";input="%40interpolate(perspective,%20sample)"]

  [:isAsync=true;output="%40interpolate(perspective,%20centroid)";input="%40interpolate(perspective)"]


[cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:interpolation_type:*]
  implementation-status: backlog
  [:isAsync=false;output="";input=""]

  [:isAsync=false;output="";input="%40interpolate(linear)"]

  [:isAsync=false;output="";input="%40interpolate(perspective)"]
    expected: FAIL

  [:isAsync=false;output="";input="%40interpolate(perspective,%20center)"]

  [:isAsync=false;output="%40interpolate(flat,%20either)";input="%40interpolate(perspective)"]

  [:isAsync=false;output="%40interpolate(linear)";input="%40interpolate(flat,%20either)"]

  [:isAsync=false;output="%40interpolate(linear)";input="%40interpolate(perspective)"]

  [:isAsync=false;output="%40interpolate(linear,%20center)";input="%40interpolate(linear,%20center)"]

  [:isAsync=false;output="%40interpolate(perspective)";input=""]
    expected: FAIL

  [:isAsync=false;output="%40interpolate(perspective)";input="%40interpolate(perspective)"]

  [:isAsync=true;output="";input=""]

  [:isAsync=true;output="";input="%40interpolate(linear)"]

  [:isAsync=true;output="";input="%40interpolate(perspective)"]
    expected: FAIL

  [:isAsync=true;output="";input="%40interpolate(perspective,%20center)"]

  [:isAsync=true;output="%40interpolate(flat,%20either)";input="%40interpolate(perspective)"]

  [:isAsync=true;output="%40interpolate(linear)";input="%40interpolate(flat,%20either)"]

  [:isAsync=true;output="%40interpolate(linear)";input="%40interpolate(perspective)"]

  [:isAsync=true;output="%40interpolate(linear,%20center)";input="%40interpolate(linear,%20center)"]

  [:isAsync=true;output="%40interpolate(perspective)";input=""]
    expected: FAIL

  [:isAsync=true;output="%40interpolate(perspective)";input="%40interpolate(perspective)"]


[cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:location,mismatch:*]
  [:isAsync=false;outputs=["%40location(0)%20__:%20f32","%40location(1)%20__:%20f32"\];inputs=["%40location(1)%20__:%20f32","%40location(0)%20__:%20f32"\]]

  [:isAsync=false;outputs=["%40location(0)%20__:%20f32"\];inputs=["%40location(0)%20__:%20f32"\]]

  [:isAsync=false;outputs=["%40location(0)%20__:%20f32"\];inputs=["%40location(1)%20__:%20f32"\]]

  [:isAsync=false;outputs=["%40location(1)%20__:%20f32","%40location(0)%20__:%20f32"\];inputs=["%40location(0)%20__:%20f32","%40location(1)%20__:%20f32"\]]

  [:isAsync=false;outputs=["%40location(1)%20__:%20f32"\];inputs=["%40location(0)%20__:%20f32"\]]

  [:isAsync=true;outputs=["%40location(0)%20__:%20f32","%40location(1)%20__:%20f32"\];inputs=["%40location(1)%20__:%20f32","%40location(0)%20__:%20f32"\]]

  [:isAsync=true;outputs=["%40location(0)%20__:%20f32"\];inputs=["%40location(0)%20__:%20f32"\]]

  [:isAsync=true;outputs=["%40location(0)%20__:%20f32"\];inputs=["%40location(1)%20__:%20f32"\]]

  [:isAsync=true;outputs=["%40location(1)%20__:%20f32","%40location(0)%20__:%20f32"\];inputs=["%40location(0)%20__:%20f32","%40location(1)%20__:%20f32"\]]

  [:isAsync=true;outputs=["%40location(1)%20__:%20f32"\];inputs=["%40location(0)%20__:%20f32"\]]


[cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:location,subset:*]
  [:isAsync=false]

  [:isAsync=true]


[cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:location,superset:*]
  [:isAsync=false]

  [:isAsync=true]


[cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:max_shader_variable_location:*]
  implementation-status: backlog
  [:isAsync=false;locationDelta=-1]

  [:isAsync=false;locationDelta=-2]

  [:isAsync=false;locationDelta=0]
    expected: FAIL

  [:isAsync=true;locationDelta=-1]

  [:isAsync=true;locationDelta=-2]

  [:isAsync=true;locationDelta=0]
    expected: FAIL


[cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:max_variables_count,input:*]
  implementation-status: backlog
  [:isAsync=false;numVariablesDelta=-1;useExtraBuiltinInputs=true]

  [:isAsync=false;numVariablesDelta=0;useExtraBuiltinInputs=false]
    expected:
      if os == "win": FAIL

  [:isAsync=false;numVariablesDelta=0;useExtraBuiltinInputs=true]
    expected:
      if os == "linux": FAIL
      if os == "mac": FAIL

  [:isAsync=false;numVariablesDelta=1;useExtraBuiltinInputs=false]
    expected:
      if os == "linux": FAIL
      if os == "mac": FAIL

  [:isAsync=true;numVariablesDelta=-1;useExtraBuiltinInputs=true]

  [:isAsync=true;numVariablesDelta=0;useExtraBuiltinInputs=false]
    expected:
      if os == "win": FAIL

  [:isAsync=true;numVariablesDelta=0;useExtraBuiltinInputs=true]
    expected:
      if os == "linux": FAIL
      if os == "mac": FAIL

  [:isAsync=true;numVariablesDelta=1;useExtraBuiltinInputs=false]
    expected:
      if os == "linux": FAIL
      if os == "mac": FAIL


[cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:max_variables_count,output:*]
  implementation-status: backlog
  [:isAsync=false;numVariablesDelta=-1;topology="point-list"]

  [:isAsync=false;numVariablesDelta=0;topology="point-list"]
    expected:
      if os == "linux": FAIL
      if os == "mac": FAIL

  [:isAsync=false;numVariablesDelta=0;topology="triangle-list"]
    expected:
      if os == "win": FAIL

  [:isAsync=false;numVariablesDelta=1;topology="triangle-list"]
    expected:
      if os == "linux": FAIL
      if os == "mac": FAIL

  [:isAsync=true;numVariablesDelta=-1;topology="point-list"]

  [:isAsync=true;numVariablesDelta=0;topology="point-list"]
    expected:
      if os == "linux": FAIL
      if os == "mac": FAIL

  [:isAsync=true;numVariablesDelta=0;topology="triangle-list"]
    expected:
      if os == "win": FAIL

  [:isAsync=true;numVariablesDelta=1;topology="triangle-list"]
    expected:
      if os == "linux": FAIL
      if os == "mac": FAIL


[cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:type:*]
  implementation-status: backlog
  [:isAsync=false;output="f32";input="f32"]

  [:isAsync=false;output="f32";input="vec2%3Cf32%3E"]

  [:isAsync=false;output="i32";input="f32"]

  [:isAsync=false;output="i32";input="u32"]

  [:isAsync=false;output="u32";input="f32"]

  [:isAsync=false;output="u32";input="i32"]

  [:isAsync=false;output="vec2%3Cf32%3E";input="f32"]
    expected: FAIL

  [:isAsync=false;output="vec2%3Cf32%3E";input="vec2%3Cf32%3E"]

  [:isAsync=false;output="vec2%3Cf32%3E";input="vec3%3Cf32%3E"]

  [:isAsync=false;output="vec3%3Cf32%3E";input="vec2%3Cf32%3E"]
    expected: FAIL

  [:isAsync=true;output="f32";input="f32"]

  [:isAsync=true;output="f32";input="vec2%3Cf32%3E"]

  [:isAsync=true;output="i32";input="f32"]

  [:isAsync=true;output="i32";input="u32"]

  [:isAsync=true;output="u32";input="f32"]

  [:isAsync=true;output="u32";input="i32"]

  [:isAsync=true;output="vec2%3Cf32%3E";input="f32"]
    expected: FAIL

  [:isAsync=true;output="vec2%3Cf32%3E";input="vec2%3Cf32%3E"]

  [:isAsync=true;output="vec2%3Cf32%3E";input="vec3%3Cf32%3E"]

  [:isAsync=true;output="vec3%3Cf32%3E";input="vec2%3Cf32%3E"]
    expected: FAIL
