mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
include: Add the ID3D12GraphicsCommandList4 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
committed by
Alexandre Julliard
parent
f31efc1afc
commit
275644d34a
Notes:
Alexandre Julliard
2023-09-13 23:18:09 +02:00
Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/332
@@ -3611,6 +3611,19 @@ typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
|
|||||||
UINT64 StrideInBytes;
|
UINT64 StrideInBytes;
|
||||||
} D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE;
|
} D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE;
|
||||||
|
|
||||||
|
typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE
|
||||||
|
{
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
|
||||||
|
UINT64 SizeInBytes;
|
||||||
|
} D3D12_GPU_VIRTUAL_ADDRESS_RANGE;
|
||||||
|
|
||||||
|
typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE
|
||||||
|
{
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
|
||||||
|
UINT64 SizeInBytes;
|
||||||
|
UINT64 StrideInBytes;
|
||||||
|
} D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE;
|
||||||
|
|
||||||
typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC
|
typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC
|
||||||
{
|
{
|
||||||
D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
|
D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
|
||||||
@@ -3640,6 +3653,15 @@ typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
|
|||||||
} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS;
|
} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS;
|
||||||
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS);")
|
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS);")
|
||||||
|
|
||||||
|
typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE
|
||||||
|
{
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0x0,
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4,
|
||||||
|
} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE;
|
||||||
|
|
||||||
typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE
|
typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE
|
||||||
{
|
{
|
||||||
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0x0,
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0x0,
|
||||||
@@ -3652,6 +3674,20 @@ typedef enum D3D12_ELEMENTS_LAYOUT
|
|||||||
D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1
|
D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1
|
||||||
} D3D12_ELEMENTS_LAYOUT;
|
} D3D12_ELEMENTS_LAYOUT;
|
||||||
|
|
||||||
|
typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE
|
||||||
|
{
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0x0,
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1,
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2,
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3,
|
||||||
|
} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE;
|
||||||
|
|
||||||
|
typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC
|
||||||
|
{
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS DestBuffer;
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType;
|
||||||
|
} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC;
|
||||||
|
|
||||||
typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER
|
typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER
|
||||||
{
|
{
|
||||||
GUID DriverOpaqueGUID;
|
GUID DriverOpaqueGUID;
|
||||||
@@ -3697,6 +3733,14 @@ typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
|
|||||||
};
|
};
|
||||||
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
|
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS;
|
||||||
|
|
||||||
|
typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC
|
||||||
|
{
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData;
|
||||||
|
D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs;
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData;
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData;
|
||||||
|
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC;
|
||||||
|
|
||||||
typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO
|
typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO
|
||||||
{
|
{
|
||||||
UINT64 ResultDataMaxSizeInBytes;
|
UINT64 ResultDataMaxSizeInBytes;
|
||||||
@@ -4214,6 +4258,91 @@ interface ID3D12Heap1 : ID3D12Heap
|
|||||||
HRESULT GetProtectedResourceSession(REFIID riid, void **protected_session);
|
HRESULT GetProtectedResourceSession(REFIID riid, void **protected_session);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE
|
||||||
|
{
|
||||||
|
D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0x0,
|
||||||
|
D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = 0x1,
|
||||||
|
D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = 0x2,
|
||||||
|
D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = 0x3,
|
||||||
|
} D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE;
|
||||||
|
|
||||||
|
typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS
|
||||||
|
{
|
||||||
|
D3D12_CLEAR_VALUE ClearValue;
|
||||||
|
} D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS;
|
||||||
|
|
||||||
|
typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS
|
||||||
|
{
|
||||||
|
D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type;
|
||||||
|
|
||||||
|
union
|
||||||
|
{
|
||||||
|
D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear;
|
||||||
|
};
|
||||||
|
} D3D12_RENDER_PASS_BEGINNING_ACCESS;
|
||||||
|
|
||||||
|
typedef enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE
|
||||||
|
{
|
||||||
|
D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0x0,
|
||||||
|
D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = 0x1,
|
||||||
|
D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = 0x2,
|
||||||
|
D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = 0x3,
|
||||||
|
} D3D12_RENDER_PASS_ENDING_ACCESS_TYPE;
|
||||||
|
|
||||||
|
typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS
|
||||||
|
{
|
||||||
|
UINT SrcSubresource;
|
||||||
|
UINT DstSubresource;
|
||||||
|
UINT DstX;
|
||||||
|
UINT DstY;
|
||||||
|
D3D12_RECT SrcRect;
|
||||||
|
} D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS;
|
||||||
|
|
||||||
|
typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS
|
||||||
|
{
|
||||||
|
ID3D12Resource *pSrcResource;
|
||||||
|
ID3D12Resource *pDstResource;
|
||||||
|
UINT SubresourceCount;
|
||||||
|
const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters;
|
||||||
|
DXGI_FORMAT Format;
|
||||||
|
D3D12_RESOLVE_MODE ResolveMode;
|
||||||
|
BOOL PreserveResolveSource;
|
||||||
|
} D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS;
|
||||||
|
|
||||||
|
typedef struct D3D12_RENDER_PASS_ENDING_ACCESS
|
||||||
|
{
|
||||||
|
D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve;
|
||||||
|
};
|
||||||
|
} D3D12_RENDER_PASS_ENDING_ACCESS;
|
||||||
|
|
||||||
|
typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC
|
||||||
|
{
|
||||||
|
D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
|
||||||
|
D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess;
|
||||||
|
D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess;
|
||||||
|
} D3D12_RENDER_PASS_RENDER_TARGET_DESC;
|
||||||
|
|
||||||
|
typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC
|
||||||
|
{
|
||||||
|
D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor;
|
||||||
|
D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess;
|
||||||
|
D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess;
|
||||||
|
D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess;
|
||||||
|
D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess;
|
||||||
|
} D3D12_RENDER_PASS_DEPTH_STENCIL_DESC;
|
||||||
|
|
||||||
|
typedef enum D3D12_RENDER_PASS_FLAGS
|
||||||
|
{
|
||||||
|
D3D12_RENDER_PASS_FLAG_NONE = 0x0,
|
||||||
|
D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1,
|
||||||
|
D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2,
|
||||||
|
D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4
|
||||||
|
} D3D12_RENDER_PASS_FLAGS;
|
||||||
|
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_RENDER_PASS_FLAGS);")
|
||||||
|
|
||||||
[
|
[
|
||||||
uuid(dbb84c27-36ce-4fc9-b801-f048c46ac570),
|
uuid(dbb84c27-36ce-4fc9-b801-f048c46ac570),
|
||||||
object,
|
object,
|
||||||
@@ -4227,6 +4356,63 @@ interface ID3D12MetaCommand : ID3D12Pageable
|
|||||||
UINT parameter_index);
|
UINT parameter_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef struct D3D12_DISPATCH_RAYS_DESC
|
||||||
|
{
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord;
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable;
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable;
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable;
|
||||||
|
UINT Width;
|
||||||
|
UINT Height;
|
||||||
|
UINT Depth;
|
||||||
|
} D3D12_DISPATCH_RAYS_DESC;
|
||||||
|
|
||||||
|
[
|
||||||
|
uuid(8754318e-d3a9-4541-98cf-645b50dc4874),
|
||||||
|
object,
|
||||||
|
local,
|
||||||
|
pointer_default(unique)
|
||||||
|
]
|
||||||
|
interface ID3D12GraphicsCommandList4 : ID3D12GraphicsCommandList3
|
||||||
|
{
|
||||||
|
void BeginRenderPass(
|
||||||
|
UINT render_targets_count,
|
||||||
|
const D3D12_RENDER_PASS_RENDER_TARGET_DESC *render_targets,
|
||||||
|
const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *depth_stencil,
|
||||||
|
D3D12_RENDER_PASS_FLAGS flags);
|
||||||
|
|
||||||
|
void EndRenderPass();
|
||||||
|
|
||||||
|
void InitializeMetaCommand(
|
||||||
|
ID3D12MetaCommand *meta_command,
|
||||||
|
const void *initialization_parameters_data,
|
||||||
|
SIZE_T initialization_parameters_data_size_in_bytes);
|
||||||
|
|
||||||
|
void ExecuteMetaCommand(
|
||||||
|
ID3D12MetaCommand *meta_command,
|
||||||
|
const void *execution_parameters_data,
|
||||||
|
SIZE_T execution_parameters_data_size_in_bytes);
|
||||||
|
|
||||||
|
void BuildRaytracingAccelerationStructure(
|
||||||
|
const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *desc,
|
||||||
|
UINT postbuild_info_descs_count,
|
||||||
|
const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *postbuild_info_descs);
|
||||||
|
|
||||||
|
void EmitRaytracingAccelerationStructurePostbuildInfo(
|
||||||
|
const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *desc,
|
||||||
|
UINT src_acceleration_structures_count,
|
||||||
|
const D3D12_GPU_VIRTUAL_ADDRESS *src_acceleration_structure_data);
|
||||||
|
|
||||||
|
void CopyRaytracingAccelerationStructure(
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS dst_acceleration_structure_data,
|
||||||
|
D3D12_GPU_VIRTUAL_ADDRESS src_acceleration_structure_data,
|
||||||
|
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE mode);
|
||||||
|
|
||||||
|
void SetPipelineState1(ID3D12StateObject *state_object);
|
||||||
|
|
||||||
|
void DispatchRays(const D3D12_DISPATCH_RAYS_DESC *desc);
|
||||||
|
}
|
||||||
|
|
||||||
typedef HRESULT (__stdcall *PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(
|
typedef HRESULT (__stdcall *PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(
|
||||||
const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
|
const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user