From 7aed5f1a5efe03bb4b30ce24e20d7fcf26edffe1 Mon Sep 17 00:00:00 2001 From: Fil Krynicki Date: Mon, 9 Sep 2019 23:02:09 -0700 Subject: [PATCH 1/2] Added the new interface + pulled all constant values from d3d12.h --- src/um/d3d12.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/um/d3d12.rs b/src/um/d3d12.rs index 56048d939..7b7442eb1 100644 --- a/src/um/d3d12.rs +++ b/src/um/d3d12.rs @@ -1901,6 +1901,15 @@ STRUCT!{struct D3D12_COMMAND_SIGNATURE_DESC { pArgumentDescs: *const D3D12_INDIRECT_ARGUMENT_DESC, NodeMask: UINT, }} +STRUCT!{struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER { + Dest: D3D12_GPU_VIRTUAL_ADDRESS, + Value: u32, +}} +ENUM!{enum D3D12_WRITEBUFFERIMMEDIATE_MODE { + D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0, + D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1, + D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2, +}} RIDL!{#[uuid(0xc4fec28f, 0x7966, 0x4e95, 0x9f, 0x94, 0xf4, 0x31, 0xcb, 0x56, 0xc3, 0xb8)] interface ID3D12Object(ID3D12ObjectVtbl): IUnknown(IUnknownVtbl) { fn GetPrivateData( @@ -2294,6 +2303,15 @@ interface ID3D12GraphicsCommandList1(ID3D12GraphicsCommandList1Vtbl): ResolveMode: D3D12_RESOLVE_MODE, ) -> (), }} +RIDL!{#[uuid(0x38c3e585, 0xff17, 0x412c, 0x91, 0x50, 0x4f, 0xc6, 0xf9, 0xd7, 0x2a, 0x28)] +interface ID3D12GraphicsCommandList2(ID3D12GraphicsCommandList2Vtbl): + ID3D12GraphicsCommandList1(ID3D12GraphicsCommandList1Vtbl) { + fn WriteBufferImmediate( + Count: UINT, + pParams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, + pModes: *const D3D12_WRITEBUFFERIMMEDIATE_MODE, + ) -> (), +}} RIDL!{#[uuid(0x0ec870a6, 0x5d7e, 0x4c22, 0x8c, 0xfc, 0x5b, 0xaa, 0xe0, 0x76, 0x16, 0xed)] interface ID3D12CommandQueue(ID3D12CommandQueueVtbl): ID3D12Pageable(ID3D12PageableVtbl) { fn UpdateTileMappings( From 9e98525b7561401d484bd4cabfcdbdce9e0d6aab Mon Sep 17 00:00:00 2001 From: Fil Krynicki Date: Tue, 10 Sep 2019 22:44:43 -0700 Subject: [PATCH 2/2] Reorder structs to match d3d12.h --- src/um/d3d12.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/um/d3d12.rs b/src/um/d3d12.rs index 7b7442eb1..5f7b7b368 100644 --- a/src/um/d3d12.rs +++ b/src/um/d3d12.rs @@ -1901,15 +1901,6 @@ STRUCT!{struct D3D12_COMMAND_SIGNATURE_DESC { pArgumentDescs: *const D3D12_INDIRECT_ARGUMENT_DESC, NodeMask: UINT, }} -STRUCT!{struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER { - Dest: D3D12_GPU_VIRTUAL_ADDRESS, - Value: u32, -}} -ENUM!{enum D3D12_WRITEBUFFERIMMEDIATE_MODE { - D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0, - D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1, - D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2, -}} RIDL!{#[uuid(0xc4fec28f, 0x7966, 0x4e95, 0x9f, 0x94, 0xf4, 0x31, 0xcb, 0x56, 0xc3, 0xb8)] interface ID3D12Object(ID3D12ObjectVtbl): IUnknown(IUnknownVtbl) { fn GetPrivateData( @@ -2303,6 +2294,15 @@ interface ID3D12GraphicsCommandList1(ID3D12GraphicsCommandList1Vtbl): ResolveMode: D3D12_RESOLVE_MODE, ) -> (), }} +STRUCT!{struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER { + Dest: D3D12_GPU_VIRTUAL_ADDRESS, + Value: u32, +}} +ENUM!{enum D3D12_WRITEBUFFERIMMEDIATE_MODE { + D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0, + D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1, + D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2, +}} RIDL!{#[uuid(0x38c3e585, 0xff17, 0x412c, 0x91, 0x50, 0x4f, 0xc6, 0xf9, 0xd7, 0x2a, 0x28)] interface ID3D12GraphicsCommandList2(ID3D12GraphicsCommandList2Vtbl): ID3D12GraphicsCommandList1(ID3D12GraphicsCommandList1Vtbl) {