Stephen Gutekanst
451b437322
gpu: add std.build.Pkg definition
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-04-05 00:16:51 -07:00
Stephen Gutekanst
cd88057edd
gpu: add gpu.link to make using library elsewhere easier
...
Helps hexops/mach#189
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-04-05 00:16:51 -07:00
Stephen Gutekanst
fbbb0b0ae0
gpu: use Dawn adapter creation API for now so that GPU_BACKEND selection works
...
`webgpu.h` does not expose a method of choosing the GPU backend (vulkan, opengl, opengles, etc.)
at present. The only way to achieve this is to use Dawn's C++ API, which we expose as C shims
under the `machDawnNative*` prefix.
For now, we will use the Dawn adapter creation API so that we can choose between Vulkan/OpenGL/OpenGLES
etc via the `GPU_BACKEND` env var.
In the future, I believe we can do something nicer here. For example, perhaps we extend our `requestAdapter`
method (after all, we do not need to strictly match `webgpu.h`) to take such an option and be Dawn-aware so
that it handles this more seamlessly behind the scenes.
Fixes https://github.com/hexops/mach/issues/192#issuecomment-1080895255
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-31 16:57:30 +00:00
Stephen Gutekanst
1f076da7bf
gpu: add gpu.NativeInstance.fromWGPUAdapter
...
For when you have a native adapter and need a wrapped one.
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-31 16:51:18 +00:00
Stephen Gutekanst
13de9d6a8c
gpu: make -Ddawn-from-source=true work in gpu/ example
...
Previously this was only working in the gpu-dawn/ example.
Fixes hexops/mach#196
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-31 16:45:46 +00:00
Andrew Gutekanst
8072839973
gpu: update GetModuleHandleW usage in examples
2022-03-19 18:01:41 -07:00
Stephen Gutekanst
bdc556f9d5
gpu: README: correct links to issue tracker / subproject
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 07:05:42 -07:00
Stephen Gutekanst
82f8113dcb
gpu: README: further update TODO list
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
689f2b5122
gpu: example: change window title to "mach/gpu window"
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
fa9b5f1d5d
gpu: example: reenable uncaptured error handling
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
5c7691c4ba
gpu: fix issue in getting adapter/device limits
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
79d27b82be
gpu: enable void callback contexts
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
1717c684de
gpu: expose [Error/Logging]Callback
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
64853f5679
gpu: README: cleanup & clarify state of things today
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
6eadeddaf6
gpu: README: add learning resources
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
991c88d851
gpu: implement Queue.writeTexture
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
67a0f60a68
gpu: fix writeBuffer data lengths
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
eacee682ca
gpu: implement Queue.writeBuffer
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
0aad5812b8
gpu: implement RenderPassEncoder.Descriptor.timestamp_writes
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
be6e7be247
gpu: remove Dawn-specific TODO
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
cfc9708b37
gpu: update remaining TODOs
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
cc7aa3a49a
gpu: remove needless Limits conversion
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
f79c77af99
gpu: make Buffer mapped ranges generic / typed
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
05d1eeb9ee
gpu: implement basic Buffer .getConstMappedRange, .getMappedRange
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
1209cb590d
gpu: implement CommandEncoder.writeBuffer
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
9f1775aa7c
gpu: correct feature storage location
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
653c528441
gpu: implement Device.features, Device.limits
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
667539c255
gpu: implement Adapter.features, Adapter.limits
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
12a0772654
gpu: implement Device.hasFeature
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
37d8113e24
gpu: prepare Device limits/features
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
e7526a868d
gpu: implement Device.setLoggingCallback
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
a0d28a74b0
gpu: implement Device.setLostCallback
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
672b3a5601
gpu: implement Device.setUncapturedErrorCallback
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
8df0c70c69
gpu: implement Device.popErrorScope
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
ec59471765
gpu: implement Device.pushErrorScope
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
311f2967a5
gpu: implement Device.loseForTesting
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
85d5de1077
gpu: implement Device.createTexture
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
418d379f1c
gpu: implement Device.createSampler
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
def801d8a1
gpu: implement Device.createRenderBundleEncoder
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
8c48c3a436
gpu: implement Device.createQuerySet
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
acb3049739
gpu: implement Device.createPipelineLayout
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
cedf734e4e
gpu: implement Device.createExternalTexture
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
1bff7e5f3c
gpu: implement Device.createErrorBuffer
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
155c291c8e
gpu: implement Device.createBuffer
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
13fcf8aac5
gpu: implement Device.injectError
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
482d5aaa34
gpu: implement Device.tick
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
789f6291e4
gpu: improve ABI compatibility of BindGroupLayout.Entry
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
d635bee216
gpu: implement Device.createBindGroupLayout
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
8588a08e05
gpu: implement Device.createBindGroup
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
48dcfad65c
gpu: implement CommandEncoder.resolveQuerySet
...
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00