fn do_stress()

in src/webgpu/shader/execution/memory_model/memory_model_setup.ts [957:1003]


  fn do_stress(iterations: u32, pattern: u32, workgroup_id: u32) {
    let addr = combo.scratch_locations.value[workgroup_id];
    switch(pattern) {
      case 0u: {
        for(var i: u32 = 0u; i < iterations; i = i + 1u) {
          combo.scratchpad.value[addr] = i;
          combo.scratchpad.value[addr] = i + 1u;
        }
      }
      case 1u: {
        for(var i: u32 = 0u; i < iterations; i = i + 1u) {
          combo.scratchpad.value[addr] = i;
          let tmp1: u32 = combo.scratchpad.value[addr];
          if (tmp1 > 100000u) {
            combo.scratchpad.value[addr] = i;
            break;
          }
        }
      }
      case 2u: {
        for(var i: u32 = 0u; i < iterations; i = i + 1u) {
          let tmp1: u32 = combo.scratchpad.value[addr];
          if (tmp1 > 100000u) {
            combo.scratchpad.value[addr] = i;
            break;
          }
          combo.scratchpad.value[addr] = i;
        }
      }
      case 3u: {
        for(var i: u32 = 0u; i < iterations; i = i + 1u) {
          let tmp1: u32 = combo.scratchpad.value[addr];
          if (tmp1 > 100000u) {
            combo.scratchpad.value[addr] = i;
            break;
          }
          let tmp2: u32 = combo.scratchpad.value[addr];
          if (tmp2 > 100000u) {
            combo.scratchpad.value[addr] = i;
            break;
          }
        }
      }
      default: {
      }
    }
  }