gecko-dev/dom/webgpu
Dzmitry Malyshau dcf75e7f03 Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process
Previously, we kept the object IDs managed on content side only.
The GPU side would work with given indices.
When an object is destroyed, we'd free the ID on the content side and signal the GPU to delete the object.
Problem is that on the GPU process the object may still be kept alive for as long as any dependants are alive.

What this change is doing - hooking up the callbacks to the *actual* freeing of IDs on the GPU side.
These callbacks end up in messages from WebGPUParent to WebGPUChild, and only then the IDs are freed
on the content side and able to be reused.

Differential Revision: https://phabricator.services.mozilla.com/D67211

--HG--
extra : moz-landing-system : lando
2020-03-23 07:54:08 +00:00
..
ffi Bug 1612515 - Part 4: Move RunCBindgen.py to /build. r=glandium 2020-02-28 14:07:15 +00:00
ipc Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
mochitest Bug 1614702 - WebGPU textures, texture views, and samplers r=jgilbert,webidl,smaug 2020-02-24 20:12:16 +00:00
Adapter.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
Adapter.h Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky 2020-01-24 16:27:09 +00:00
BindGroup.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
BindGroup.h Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky 2020-01-24 16:27:09 +00:00
BindGroupLayout.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
BindGroupLayout.h Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky 2020-01-24 16:27:09 +00:00
Buffer.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
Buffer.h Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky 2020-01-24 16:27:09 +00:00
CanvasContext.cpp Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky 2019-10-02 16:46:03 +00:00
CanvasContext.h Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky 2019-10-02 16:46:03 +00:00
CommandBuffer.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
CommandBuffer.h Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
CommandEncoder.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
CommandEncoder.h Bug 1602131 - WebGPU render passes r=jgilbert,webidl,smaug 2020-02-19 19:25:30 +00:00
ComputePassEncoder.cpp Bug 1617086 - Include WebGPU pass dependencies into CC r=jgilbert 2020-03-18 17:29:51 +00:00
ComputePassEncoder.h Bug 1617086 - Include WebGPU pass dependencies into CC r=jgilbert 2020-03-18 17:29:51 +00:00
ComputePipeline.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
ComputePipeline.h Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky 2020-01-24 16:27:09 +00:00
Device.cpp Bug 1619112 part 2. Pass char literals instead of char16_t literals into ErrorResult throwing methods. r=smaug 2020-03-06 21:04:58 +00:00
Device.h Bug 1614703 - WebGPU render pipeline creation r=jgilbert,webidl,baku 2020-03-03 16:37:02 +00:00
DeviceLostInfo.cpp Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
DeviceLostInfo.h Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
Fence.cpp Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
Fence.h Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
Instance.cpp Bug 1612213 part 3. Switch Promise::RejectWithDOMException consumers to new convenience methods. r=smaug,jgilbert 2020-02-03 20:37:32 +00:00
Instance.h Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky 2020-01-24 16:27:09 +00:00
ObjectModel.cpp Bug 1614702 - WebGPU textures, texture views, and samplers r=jgilbert,webidl,smaug 2020-02-24 20:12:16 +00:00
ObjectModel.h Bug 1617086 - Include WebGPU pass dependencies into CC r=jgilbert 2020-03-18 17:29:51 +00:00
OutOfMemoryError.cpp Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky 2019-10-02 16:46:03 +00:00
OutOfMemoryError.h Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
PipelineLayout.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
PipelineLayout.h Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky 2020-01-24 16:27:09 +00:00
Queue.cpp Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
Queue.h Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
RenderBundle.cpp Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky 2019-10-02 16:46:03 +00:00
RenderBundle.h Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
RenderBundleEncoder.cpp Bug 1611024 - Turn WebGPU programmable passes into interface mixins r=jgilbert,webidl,bzbarsky 2020-02-11 03:03:47 +00:00
RenderBundleEncoder.h Bug 1611024 - Turn WebGPU programmable passes into interface mixins r=jgilbert,webidl,bzbarsky 2020-02-11 03:03:47 +00:00
RenderPassEncoder.cpp Bug 1617086 - Include WebGPU pass dependencies into CC r=jgilbert 2020-03-18 17:29:51 +00:00
RenderPassEncoder.h Bug 1617086 - Include WebGPU pass dependencies into CC r=jgilbert 2020-03-18 17:29:51 +00:00
RenderPipeline.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
RenderPipeline.h Bug 1602131 - WebGPU render passes r=jgilbert,webidl,smaug 2020-02-19 19:25:30 +00:00
Sampler.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
Sampler.h Bug 1614702 - WebGPU textures, texture views, and samplers r=jgilbert,webidl,smaug 2020-02-24 20:12:16 +00:00
ShaderModule.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
ShaderModule.h Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky 2020-01-24 16:27:09 +00:00
SwapChain.cpp Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
SwapChain.h Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
Texture.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
Texture.h Bug 1614702 - WebGPU textures, texture views, and samplers r=jgilbert,webidl,smaug 2020-02-24 20:12:16 +00:00
TextureView.cpp Bug 1622261 - Refactor the ID recycling to always cycle through the GPU process 2020-03-23 07:54:08 +00:00
TextureView.h Bug 1614702 - WebGPU textures, texture views, and samplers r=jgilbert,webidl,smaug 2020-02-24 20:12:16 +00:00
ValidationError.cpp Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky 2019-10-02 16:46:03 +00:00
ValidationError.h Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky 2020-01-22 07:31:51 +00:00
moz.build Bug 1611024 - Turn WebGPU programmable passes into interface mixins r=jgilbert,webidl,bzbarsky 2020-02-11 03:03:47 +00:00