(mode)
| 159 | }); |
| 160 | |
| 161 | function testNumberTexture(mode) { |
| 162 | const gpu = new GPU({ mode }); |
| 163 | const matrix4X4 = [ |
| 164 | [1,2,3,4], |
| 165 | [5,6,7,8], |
| 166 | [9,10,11,12], |
| 167 | [13,14,15,16], |
| 168 | ]; |
| 169 | const texture4X4 = ( |
| 170 | gpu.createKernel(function(value) { |
| 171 | return value[this.thread.y][this.thread.x]; |
| 172 | }) |
| 173 | .setOutput([4, 4]) |
| 174 | .setPrecision('single') |
| 175 | .setPipeline(true) |
| 176 | )(matrix4X4); |
| 177 | |
| 178 | const matrix3X3 = [ |
| 179 | [1,2,3], |
| 180 | [4,5,6], |
| 181 | [7,8,9] |
| 182 | ]; |
| 183 | const texture3X3 = ( |
| 184 | gpu.createKernel(function(value) { |
| 185 | return value[this.thread.y][this.thread.x]; |
| 186 | }) |
| 187 | .setOutput([3, 3]) |
| 188 | .setPrecision('single') |
| 189 | .setPipeline(true) |
| 190 | )(matrix3X3); |
| 191 | |
| 192 | const matrix2X2 = [ |
| 193 | [1,2], |
| 194 | [3,4] |
| 195 | ]; |
| 196 | const texture2X2 = ( |
| 197 | gpu.createKernel(function(value) { |
| 198 | return value[this.thread.y][this.thread.x]; |
| 199 | }) |
| 200 | .setOutput([2, 2]) |
| 201 | .setPrecision('single') |
| 202 | .setPipeline(true) |
| 203 | )(matrix2X2); |
| 204 | |
| 205 | const kernel = gpu.createKernel(function(texture) { |
| 206 | return texture[this.thread.y][this.thread.x]; |
| 207 | }) |
| 208 | .setDynamicArguments(true) |
| 209 | .setDynamicOutput(true) |
| 210 | .setOutput([4,4]); |
| 211 | |
| 212 | assert.deepEqual(kernel(texture4X4), [ |
| 213 | new Float32Array([1,2,3,4]), |
| 214 | new Float32Array([5,6,7,8]), |
| 215 | new Float32Array([9,10,11,12]), |
| 216 | new Float32Array([13,14,15,16]), |
| 217 | ]); |
| 218 |
no test coverage detected
searching dependent graphs…