vkd3d: Update command list to ID3D12GraphicsCommandList1.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Józef Kucia 2019-03-07 11:01:15 +01:00 committed by Alexandre Julliard
parent d0f8443ac5
commit f1bfb1305e
4 changed files with 242 additions and 129 deletions

View File

@ -216,6 +216,18 @@ typedef struct D3D12_RANGE
SIZE_T End;
} D3D12_RANGE;
typedef struct D3D12_RANGE_UINT64
{
UINT64 Begin;
UINT64 End;
} D3D12_RANGE_UINT64;
typedef struct D3D12_SUBRESOURCE_RANGE_UINT64
{
UINT Subresource;
D3D12_RANGE_UINT64 Range;
} D3D12_SUBRESOURCE_RANGE_UINT64;
typedef struct D3D12_RESOURCE_ALLOCATION_INFO
{
UINT64 SizeInBytes;
@ -513,6 +525,20 @@ typedef struct D3D12_RESOURCE_DESC
D3D12_RESOURCE_FLAGS Flags;
} D3D12_RESOURCE_DESC;
typedef enum D3D12_RESOLVE_MODE
{
D3D12_RESOLVE_MODE_DECOMPRESS = 0,
D3D12_RESOLVE_MODE_MIN = 1,
D3D12_RESOLVE_MODE_MAX = 2,
D3D12_RESOLVE_MODE_AVERAGE = 3,
} D3D12_RESOLVE_MODE;
typedef struct D3D12_SAMPLE_POSITION
{
INT8 X;
INT8 Y;
} D3D12_SAMPLE_POSITION;
typedef enum D3D12_TEXTURE_COPY_TYPE
{
D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
@ -1917,6 +1943,35 @@ interface ID3D12GraphicsCommandList : ID3D12CommandList
ID3D12Resource *count_buffer, UINT64 count_buffer_offset);
}
[
uuid(553103fb-1fe7-4557-bb38-946d7d0e7ca7),
object,
local,
pointer_default(unique)
]
interface ID3D12GraphicsCommandList1 : ID3D12GraphicsCommandList
{
void AtomicCopyBufferUINT(ID3D12Resource *dst_buffer, UINT64 dst_offset,
ID3D12Resource *src_buffer, UINT64 src_offset,
UINT dependent_resource_count, ID3D12Resource * const *dependent_resources,
const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
void AtomicCopyBufferUINT64(ID3D12Resource *dst_buffer, UINT64 dst_offset,
ID3D12Resource *src_buffer, UINT64 src_offset,
UINT dependent_resource_count, ID3D12Resource * const *dependent_resources,
const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
void OMSetDepthBounds(FLOAT min, FLOAT max);
void SetSamplePositions(UINT sample_count, UINT pixel_count,
D3D12_SAMPLE_POSITION *sample_positions);
void ResolveSubresourceRegion(ID3D12Resource *dst_resource,
UINT dst_sub_resource_idx, UINT dst_x, UINT dst_y,
ID3D12Resource *src_resource, UINT src_sub_resource_idx,
D3D12_RECT *src_rect, DXGI_FORMAT format, D3D12_RESOLVE_MODE mode);
}
typedef enum D3D12_TILE_RANGE_FLAGS
{
D3D12_TILE_RANGE_FLAG_NONE = 0x0,

File diff suppressed because it is too large Load Diff

View File

@ -1745,8 +1745,8 @@ static HRESULT STDMETHODCALLTYPE d3d12_device_CreateCommandList(ID3D12Device *if
initial_pipeline_state, &object)))
return hr;
return return_interface(&object->ID3D12GraphicsCommandList_iface,
&IID_ID3D12GraphicsCommandList, riid, command_list);
return return_interface(&object->ID3D12GraphicsCommandList1_iface,
&IID_ID3D12GraphicsCommandList1, riid, command_list);
}
/* Direct3D feature levels restrict which formats can be optionally supported. */

View File

@ -778,7 +778,7 @@ struct vkd3d_pipeline_bindings
/* ID3D12CommandList */
struct d3d12_command_list
{
ID3D12GraphicsCommandList ID3D12GraphicsCommandList_iface;
ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1_iface;
LONG refcount;
D3D12_COMMAND_LIST_TYPE type;