include: Update D3D12 IDL.

Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
This commit is contained in:
Philip Rebohle 2020-04-15 14:05:00 +02:00 committed by Hans-Kristian Arntzen
parent 6c9683e23c
commit bfcb41706c
1 changed files with 105 additions and 0 deletions

View File

@ -76,6 +76,7 @@ const UINT D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT = 512;
const UINT D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT = 4096;
const UINT D3D12_VS_INPUT_REGISTER_COUNT = 32;
const UINT D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16;
const UINT D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT = 2;
cpp_quote("#endif")
@ -170,6 +171,13 @@ typedef enum D3D12_RAYTRACING_TIER
D3D12_RAYTRACING_TIER_1_0 = 10,
} D3D12_RAYTRACING_TIER;
typedef enum D3D12_VARIABLE_SHADING_RATE_TIER
{
D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0,
D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1,
D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2,
} D3D12_VARIABLE_SHADING_RATE_TIER;
typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS
{
D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x0,
@ -384,6 +392,15 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
D3D12_RAYTRACING_TIER RaytracingTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS5;
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6
{
BOOL AdditionalShadingRatesSupported;
BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
UINT ShadingRateImageTileSize;
BOOL BackgroundProcessingSupported;
} D3D12_FEATURE_DATA_D3D12_OPTIONS6;
typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
{
DXGI_FORMAT Format;
@ -422,6 +439,16 @@ typedef struct D3D12_FEATURE_DATA_CROSS_NODE
BOOL AtomicShaderInstructions;
} D3D12_FEATURE_DATA_CROSS_NODE;
typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND
{
GUID CommandId;
UINT NodeMask;
const void *pQueryInputData;
SIZE_T QueryInputDataSizeInBytes;
void *pQueryOutputData;
SIZE_T QueryOutputDataSizeInBytes;
} D3D12_FEATURE_DATA_QUERY_META_COMMAND;
typedef enum D3D12_HEAP_TYPE
{
D3D12_HEAP_TYPE_DEFAULT = 1,
@ -556,6 +583,8 @@ typedef enum D3D12_RESOURCE_STATES
D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
D3D12_RESOURCE_STATE_GENERIC_READ = 0x1 | 0x2 | 0x40 | 0x80 | 0x200 | 0x800,
D3D12_RESOURCE_STATE_PRESENT = 0x0,
D3D12_RESOURCE_STATE_PREDICATION = 0x200,
@ -1856,6 +1885,8 @@ typedef enum D3D12_FEATURE
D3D12_FEATURE_SERIALIZATION = 24,
D3D12_FEATURE_CROSS_NODE = 25,
D3D12_FEATURE_D3D12_OPTIONS5 = 27,
D3D12_FEATURE_D3D12_OPTIONS6 = 30,
D3D12_FEATURE_QUERY_META_COMMAND = 31,
} D3D12_FEATURE;
typedef struct D3D12_MEMCPY_DEST
@ -2830,6 +2861,55 @@ typedef enum D3D12_RENDER_PASS_FLAGS
D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4,
} D3D12_RENDER_PASS_FLAGS;
typedef enum D3D12_AXIS_SHADING_RATE
{
D3D12_AXIS_SHADING_RATE_1X = 0,
D3D12_AXIS_SHADING_RATE_2X = 1,
D3D12_AXIS_SHADING_RATE_4X = 2,
} D3D12_AXIS_SHADING_RATE;
const UINT D3D12_SHADING_RATE_VALID_MASK = 0x3;
const UINT D3D12_SHADING_RATE_X_AXIS_SHIFT = 2;
cpp_quote("#define D3D12_MAKE_COARSE_SHADING_RATE(x,y) (((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT) | (y))")
cpp_quote("#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK)")
cpp_quote("#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(x) ((x) & D3D12_SHADING_RATE_VALID_MASK)")
typedef enum D3D12_SHADING_RATE
{
D3D12_SHADING_RATE_1X1 = 0x0,
D3D12_SHADING_RATE_1X2 = 0x1,
D3D12_SHADING_RATE_2X1 = 0x4,
D3D12_SHADING_RATE_2X2 = 0x5,
D3D12_SHADING_RATE_2X4 = 0x6,
D3D12_SHADING_RATE_4X2 = 0x9,
D3D12_SHADING_RATE_4X4 = 0xa,
} D3D12_SHADING_RATE;
typedef enum D3D12_SHADING_RATE_COMBINER
{
D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0,
D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1,
D3D12_SHADING_RATE_COMBINER_MIN = 2,
D3D12_SHADING_RATE_COMBINER_MAX = 3,
D3D12_SHADING_RATE_COMBINER_SUM = 4,
} D3D12_SHADING_RATE_COMBINER;
typedef enum D3D12_BACKGROUND_PROCESSING_MODE
{
D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0,
D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = 1,
D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = 2,
D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = 3,
} D3D12_BACKGROUND_PROCESSING_MODE;
typedef enum D3D12_MEASUREMENTS_ACTION
{
D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0,
D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = 1,
D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = 2,
D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = 3,
} D3D12_MEASUREMENTS_ACTION;
typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS
{
D3D12_CLEAR_VALUE ClearValue;
@ -3119,6 +3199,19 @@ interface ID3D12GraphicsCommandList4 : ID3D12GraphicsCommandList3
void DispatchRays(const D3D12_DISPATCH_RAYS_DESC *desc);
}
[
uuid(55050859-4024-474c-87f5-6472eaee44ea),
object,
local,
pointer_default(unique)
]
interface ID3D12GraphicsCommandList5 : ID3D12GraphicsCommandList4
{
void RSSetShadingRate(D3D12_SHADING_RATE base, const D3D12_SHADING_RATE_COMBINER *combiners);
void RSSetShadingRateImage(ID3D12Resource *image);
}
typedef enum D3D12_TILE_RANGE_FLAGS
{
D3D12_TILE_RANGE_FLAG_NONE = 0x0,
@ -3587,6 +3680,18 @@ interface ID3D12Device5 : ID3D12Device4
const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier);
}
[
uuid(c70b221b-40e4-4a17-89af-025a0727a6dc),
object,
local,
pointer_default(unique)
]
interface ID3D12Device6 : ID3D12Device5
{
HRESULT SetBackgroundProcessingMode(D3D12_BACKGROUND_PROCESSING_MODE mode,
D3D12_MEASUREMENTS_ACTION action, HANDLE event, BOOL further_measurements);
}
[
uuid(34ab647b-3cc8-46ac-841b-c0965645c046),
object,