MCPcopy Index your code
hub / github.com/gpujs/gpu.js / testImmutableTextureDelete

Function testImmutableTextureDelete

test/internal/recycling.js:143–187  ·  view source on GitHub ↗
(precision, done, mode)

Source from the content-addressed store, hash-verified

141});
142
143function testImmutableTextureDelete(precision, done, mode) {
144 const gpu = new GPU({ mode });
145 const kernel = gpu.createKernel(function() {
146 return this.thread.x;
147 }, {
148 output: [1],
149 pipeline: true,
150 immutable: true,
151 precision,
152 });
153 const result = kernel();
154 assert.equal(result.texture._refs, 2);
155 const clone1 = result.clone();
156 assert.equal(result.texture._refs, 3);
157 const clone2 = result.clone();
158 assert.equal(result.texture._refs, 4);
159 const clone3 = result.clone();
160 assert.equal(result.texture._refs, 5);
161 const clone4 = result.clone();
162 assert.equal(result.texture._refs, 6);
163 const clone5 = result.clone();
164 assert.equal(result.texture._refs, 7);
165
166 clone1.delete();
167 assert.equal(result.texture._refs, 6);
168 clone2.delete();
169 assert.equal(result.texture._refs, 5);
170 clone3.delete();
171 assert.equal(result.texture._refs, 4);
172 clone4.delete();
173 assert.equal(result.texture._refs, 3);
174 clone5.delete();
175 assert.equal(result.texture._refs, 2);
176 result.delete();
177 assert.equal(result.texture._refs, 1);
178 const spy = sinon.spy(kernel.kernel.context, 'deleteTexture');
179 gpu.destroy()
180 .then(() => {
181 assert.equal(result.texture._refs, 0);
182 assert.equal(spy.callCount, 1);
183 assert.ok(spy.calledWith(result.texture));
184 spy.restore();
185 done();
186 });
187}
188
189test('immutable single precision texture delete auto', t => {
190 testImmutableTextureDelete('single', t.async());

Callers 1

recycling.jsFile · 0.85

Calls 5

createKernelMethod · 0.95
destroyMethod · 0.95
kernelFunction · 0.85
cloneMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…