mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
include: Add the ID3D12GraphicsCommandList4 interface.
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
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;
|
||||
} 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
|
||||
{
|
||||
D3D12_GPU_VIRTUAL_ADDRESS Transform3x4;
|
||||
@ -3640,6 +3653,15 @@ typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
|
||||
} 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
|
||||
{
|
||||
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;
|
||||
|
||||
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
|
||||
{
|
||||
GUID DriverOpaqueGUID;
|
||||
@ -3697,6 +3733,14 @@ typedef struct 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
|
||||
{
|
||||
UINT64 ResultDataMaxSizeInBytes;
|
||||
@ -4214,6 +4258,91 @@ interface ID3D12Heap1 : ID3D12Heap
|
||||
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),
|
||||
object,
|
||||
@ -4227,6 +4356,63 @@ interface ID3D12MetaCommand : ID3D12Pageable
|
||||
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)(
|
||||
const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user