diff --git a/Content/Documentation/ScriptingAPI-Documentation.md b/Content/Documentation/ScriptingAPI-Documentation.md
index 920ee4cfd..70c323e78 100644
--- a/Content/Documentation/ScriptingAPI-Documentation.md
+++ b/Content/Documentation/ScriptingAPI-Documentation.md
@@ -36,13 +36,14 @@ This is a reference and explanation of Lua scripting features in Wicked Engine.
11. [ObjectComponent](#objectcomponent)
12. [InverseKinematicsComponent](#inversekinematicscomponent)
13. [SpringComponent](#springcomponent)
- 10. [High Level Interface](#high-level-interface)
+ 10. [Canvas](#canvas)
+ 11. [High Level Interface](#high-level-interface)
1. [MainComponent](#maincomponent)
2. [RenderPath](#renderpath)
1. [RenderPath2D](#renderpath2d)
2. [RenderPath3D](#renderpath3d)
3. [LoadingScreen](#loadingscreen)
- 11. [Input](#input)
+ 12. [Input](#input)
## Introduction and usage
Scripting in Wicked Engine is powered by Lua, meaning that the user can make use of the
@@ -104,10 +105,8 @@ You can use the Renderer with the following functions, all of which are in the g
- GetGameSpeed() : float result
- SetGamma(float gamma)
- SetGameSpeed(float speed)
-- GetScreenWidth() : float result
-- GetScreenHeight() : float result
-- GetRenderWidth() : float result
-- GetRenderHeight(): float result
+- GetScreenWidth() : float result -- (deprecated, use MainComponent::GetCanvas().GetLogicalWidth() instead)
+- GetScreenHeight() : float result -- (deprecated, use MainComponent::GetCanvas().GetLogicalHeight() instead)
- HairParticleSettings(opt int lod0, opt int lod1, opt int lod2)
- SetShadowProps2D(int resolution, int count)
- SetShadowPropsCube(int resolution, int count)
@@ -596,6 +595,15 @@ Enables jiggle effect on transforms such as bones for example.
- SetDamping(float value)
- SetWindAffection(float value)
+## Canvas
+This is used to describe a drawable area
+- GetDPI() -- pixels per inch
+- GetDPIScaling() -- scaling factor between physical and logical size
+- GetPhysicalWidth() -- width in pixels
+- GetPhysicalHeight() -- height in pixels
+- GetLogicalWidth() -- width in dpi scaled units
+- GetLogicalHeight() -- height in dpi scaled units
+
## High Level Interface
### MainComponent
This is the main entry point and manages the lifetime of the application. Even though it is called a component, it is not part of the entity-component system
@@ -610,6 +618,7 @@ This is the main entry point and manages the lifetime of the application. Even t
- SetInfoDisplay(bool active)
- SetWatermarkDisplay(bool active)
- SetFPSDisplay(bool active)
+- GetCanvas() : Canvas canvas
- [outer]SetProfilerEnabled(bool enabled)
### RenderPath
diff --git a/Content/Documentation/WickedEngine-Documentation.md b/Content/Documentation/WickedEngine-Documentation.md
index 31bc11825..4297a5336 100644
--- a/Content/Documentation/WickedEngine-Documentation.md
+++ b/Content/Documentation/WickedEngine-Documentation.md
@@ -41,6 +41,7 @@ This is a reference for the C++ features of Wicked Engine
4. [wiInitializer](#wiinitializer)
5. [wiPlatform](#wiplatform)
6. [wiEvent](#wievent)
+ 7. [wiCanvas](#wicanvas)
3. [Graphics](#graphics)
1. [wiGraphics](#wigraphics)
1. [GraphicsDevice](#wigraphicsdevice)
@@ -170,6 +171,7 @@ The high level interface consists of classes that allow for extending the engine
### MainComponent
[[Header]](../../WickedEngine/MainComponent.h) [[Cpp]](../../WickedEngine/MainComponent.cpp)
This is the main runtime component that has the Run() function. It should be included in the application entry point while calling Run() in an infinite loop.
+The user should call the SetWindow() function to associate it with a window of the operating system. This window will be used to render to.
The MainComponent has many uses that the user is not necessarily interested in. The most important part is that it manages the RenderPaths. There can be one active RenderPath at a time, which will be updated and rendered to the screen every frame. However, because a RenderPath is a highly customizable class, there is no limitation what can be done within the RenderPath, for example supporting multiple concurrent RenderPaths if required. RenderPaths can be switched wit ha Fade out screen easily. Loading Screen can be activated as an active Renderpath and it will load and switch to an other RenderPath if desired. A RenderPath can be simply activated with the MainComponent::ActivatePath() function.
The MainComponent does the following every frame while it is running:
1. FixedUpdate()
@@ -183,7 +185,7 @@ Calls Compose for the active RenderPath
### RenderPath
[[Header]](../../WickedEngine/RenderPath.h)
-This is an empty base class that can be activated with a MainComponent. It calls its Start(), Update(), FixedUpdate(), Render(), Compose(), Stop() functions as needed. Override this to perform custom gameplay or rendering logic.
+This is an empty base class that can be activated with a MainComponent. It calls its Start(), Update(), FixedUpdate(), Render(), Compose(), Stop() functions as needed. Override this to perform custom gameplay or rendering logic. The RenderPath inherits from [wiCanvas](#wicanvas), and the canvas properties will be set by the [MainComponent](#maincomponent) when the RenderPath was activated, and while the RenderPath is active.
The order in which the functions are executed every frame:
1. PreUpdate()
This will be called once per frame before any script that calls Update().
@@ -412,6 +414,10 @@ The first argument is the event id, that says which events to invoke.
The second argument will be passed to the subscribed event's userdata parameter.
All events that are subsribed to the specified event id will run immediately at the time of the call of FireEvent. The order of execution among events is the order of which they were subscribed.
+### wiCanvas
+[[Header]](../../WickedEngine/wiCanvas.h)
+The canvas specifies a DPI-aware drawing area. Use the GetLogical... functions to get parameters with DPI aware scale factors applied. Use the GetPhysical... functions to get the real pixel counts.
+
## Graphics
Everything related to rendering graphics will be discussed below
@@ -434,7 +440,7 @@ Functions like `CreateTexture()`, `CreateBuffer()`, etc. can be used to create c
Resources will be destroyed automatically by the graphics device when they are no longer used.
##### Work submission
-Rendering commands that expect a `CommandList` as a parameter are not executed immediately. They will be recorded into command lists and submitted to the GPU for execution upon calling the `PresentEnd()` function. The `CommandList` is a simple handle that associates rendering commands to a CPU execution timeline. The `CommandList` is not thread safe, so every `CommandList` can be used by a single CPU thread at a time to record commands. In a multithreading scenario, each CPU thread should have its own `CommandList`. `CommandList`s can be retrieved from the [GraphicsDevice](#graphicsdevice) by calling `GraphicsDevice::BeginCommandList()` that will return a `CommandList` handle that is free to be used from that point by the calling thread. All such handles will be in use until `SubmitCommandLists()` or `PresentEnd()` was called, where GPU submission takes place. The command lists will be submitted in the order they were retrieved with `GraphicsDevice::BeginCommandList()`. The order of submission correlates with the order of actual GPU execution. For example:
+Rendering commands that expect a `CommandList` as a parameter are not executed immediately. They will be recorded into command lists and submitted to the GPU for execution upon calling the `SubmitCommandLists()` function. The `CommandList` is a simple handle that associates rendering commands to a CPU execution timeline. The `CommandList` is not thread safe, so every `CommandList` can be used by a single CPU thread at a time to record commands. In a multithreading scenario, each CPU thread should have its own `CommandList`. `CommandList`s can be retrieved from the [GraphicsDevice](#graphicsdevice) by calling `GraphicsDevice::BeginCommandList()` that will return a `CommandList` handle that is free to be used from that point by the calling thread. All such handles will be in use until `SubmitCommandLists()` or `PresentEnd()` was called, where GPU submission takes place. The command lists will be submitted in the order they were retrieved with `GraphicsDevice::BeginCommandList()`. The order of submission correlates with the order of actual GPU execution. For example:
```cpp
CommandList cmd1 = device->BeginCommandList();
@@ -446,32 +452,17 @@ Render_Shadowmaps(cmd1); // CPU executes these commands second
//...
CommandList cmd_present = device->BeginCommandList();
-device->PresentBegin(cmd_present);
-// ...
-device->PresentEnd(cmd_present); // CPU submits work for GPU
+
+device->SubmitCommandLists(cmd_present); // CPU submits work for GPU
// The GPU will execute the Render_Shadowmaps() commands first, then the Read_Shadowmaps() commands second
-// The GPU will execute the commands between PresentBegin() and PresentEnd() last.
-// PresentEnd displays the final image (render command executed between PresentBegin and PresentEnd) to the screen
```
-In specific circumstances, when outputting the final image to the screen is not immediately required, the `SubmitCommandLists()` option can also be used to submit and execute GPU work:
-
-```cpp
-CommandList cmd1 = device->BeginCommandList();
-CommandList cmd2 = device->BeginCommandList();
-
-// Record something with command lists...
-
-device->SubmitCommandLists(); // CPU submits work for GPU
-// The GPU will execute commands recorded with cmd1, then cmd2
-```
-
-When submitting command lists with `SubmitCommandLists()` or `PresentEnd()`, the CPU can be blocked in cases when there is too much GPU work submitted already that didn't finish.
+When submitting command lists with `SubmitCommandLists()`, the CPU thread can be blocked in cases when there is too much GPU work submitted already that didn't finish. It's not appropriate to start recording new command lists until `SubmitCommandLists()` finished.
Furthermore, the `BeginCommandList()` is thread safe, so the user can call it from worker threads if ordering between command lists is not a requirement (such as when they are producing workloads that are independent of each other).
##### Presenting to the screen
-The `PresentBegin()` and `PresentEnd()` functions are used to prepare for rendering to the back buffer. When the `PresentBegin()` is called, the back buffer will be set as the current active render target or render pass. This means, that rendering commands will draw directly to the screen. This is generally used to draw textures that were previously rendered to, or 2D GUI elements. For example, the `RenderPath3D::Compose()` function is used in the [High Level Interface](#high-level-interface) to draw the results of the `RenderPath3D::Render()`, and the [GUI](#gui) elements. The rendering commands executed between `PresentBegin()` and `PresentEnd()` are still executed by the GPU in the command list beginning order described in the topic: [Work submission](#work-submission).
+To present to the screen (an operating system window), first create a SwapChain with the `CreateSwapChain()` function that will be associated with a window. The SwapChain acts as a special kind of [RenderPass](#render-passes), so there is a `BeginRenderPass()` function with an overload that accepts a SwapChain parameter instead of a RenderPass. Simply use this `BeginRenderPass()` and `EndRenderPass()` to draw to the SwapChain. The final presentation will happen when calling `SubmitCommandLists()`.
##### Resource binding
The resource binding model is based on DirectX 11. That means, resources are bound to slot numbers that are simple integers. This makes it easy to share binding information between shaders and C++ code, just define the bind slot number as global constants in [shared header files](#shaderinterop). For sharing, the bind slot numbers can be easily defined as compile time constants using:
@@ -847,11 +838,12 @@ This is widely used to make code straight forward and easy to add new objects, w
### wiImage
[[Header]](../../WickedEngine/wiImage.h) [[Cpp]](../../WickedEngine/wiImage.cpp)
-This can render images to the screen in a simple manner. You can draw an image to the screen with a simple one liner:
+This can render images to the screen in a simple manner. You can draw an image like this:
```cpp
+wiImage::SetCanvas(canvas, cmd); // setting the canvas area is required to set the drawing area and perform DPI scaling (the canvas will remain for the duration of the command list)
wiImage::Draw(myTexture, wiImageParams(10, 20, 256, 128), cmd);
```
-The example will draw a 2D texture image to the position (10, 20), with a size of 256 x 128 pixels to the screen (or the curernt render pass). There are a lot of other parameters to customize the rendered image, for more information see wiImageParams structure.
+The example will draw a 2D texture image to the position (10, 20), with a size of 256 x 128 pixels to the current render pass. There are a lot of other parameters to customize the rendered image, for more information see wiImageParams structure.
- wiImageParams
Describe all parameters of how and where to draw the image on the screen.
@@ -859,6 +851,7 @@ Describe all parameters of how and where to draw the image on the screen.
[[Header]](../../WickedEngine/wiFont.h) [[Cpp]](../../WickedEngine/wiFont.cpp)
This can render fonts to the screen in a simple manner. You can render a font as simple as this:
```cpp
+wiFont::SetCanvas(canvas, cmd); // setting the canvas area is required to set the drawing area and perform DPI scaling (the canvas will remain for the duration of the command list)
wiFont::Draw("write this!", wiFontParams(10, 20), cmd);
```
Which will write the text write this! to 10, 20 pixel position onto the screen. There are many other parameters to describe the font's position, size, color, etc. See the wiFontParams structure for more details.
@@ -872,7 +865,7 @@ The wiFont can load and render .ttf (TrueType) fonts. The default arial font sty
GPU driven emitter particle system, used to draw large amount of camera facing quad billboards. Supports simulation with force fields and fluid simulation based on Smooth Particle Hydrodynamics computation.
### wiHairParticle
-[[Header]](../../WickedEngine/wiHairParticle.h) [[Cpp]](../../WickedEngine/wiHaorParticle.cpp)
+[[Header]](../../WickedEngine/wiHairParticle.h) [[Cpp]](../../WickedEngine/wiHairParticle.cpp)
GPU driven particles that are attached to a mesh surface. It can be used to render vegetation. It participates in force fields simulation.
### wiOcean
diff --git a/Editor/App_Windows.cpp b/Editor/App_Windows.cpp
index 331ee2b87..ca41c46bb 100644
--- a/Editor/App_Windows.cpp
+++ b/Editor/App_Windows.cpp
@@ -90,7 +90,7 @@ public:
m_logicalWidth = window.Bounds().Width;
m_logicalHeight = window.Bounds().Height;
- main.SetWindow(window);
+ main.SetWindow(&window);
}
void Load(winrt::hstring const&) noexcept
@@ -137,14 +137,7 @@ protected:
void OnWindowSizeChanged(CoreWindow const& sender, WindowSizeChangedEventArgs const& /*args*/)
{
- m_logicalWidth = sender.Bounds().Width;
- m_logicalHeight = sender.Bounds().Height;
-
- float dpiscale = wiRenderer::GetDevice()->GetDPIScaling();
- uint64_t data = 0;
- data |= int(m_logicalWidth * dpiscale);
- data |= int(m_logicalHeight * dpiscale) << 16;
- wiEvent::FireEvent(SYSTEM_EVENT_CHANGE_RESOLUTION, data);
+ main.SetWindow(&sender);
}
void OnVisibilityChanged(CoreWindow const& /*sender*/, VisibilityChangedEventArgs const& args)
@@ -173,9 +166,7 @@ protected:
void OnDpiChanged(DisplayInformation const& sender, IInspectable const& /*args*/)
{
- m_DPI = sender.LogicalDpi();
-
- wiEvent::FireEvent(SYSTEM_EVENT_CHANGE_DPI, (int)m_DPI);
+ main.SetWindow(&CoreWindow::GetForCurrentThread());
}
void OnDisplayContentsInvalidated(DisplayInformation const& /*sender*/, IInspectable const& /*args*/)
diff --git a/Editor/CameraWindow.cpp b/Editor/CameraWindow.cpp
index 69cf15ece..75823740b 100644
--- a/Editor/CameraWindow.cpp
+++ b/Editor/CameraWindow.cpp
@@ -190,7 +190,7 @@ void CameraWindow::Create(EditorComponent* editor)
SetEntity(INVALID_ENTITY);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 720, 100, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 720, 100, 0));
SetVisible(false);
}
diff --git a/Editor/Editor.cpp b/Editor/Editor.cpp
index c746686af..9a8a1eb98 100644
--- a/Editor/Editor.cpp
+++ b/Editor/Editor.cpp
@@ -10,7 +10,6 @@
#include
#include
-using namespace std;
using namespace wiGraphics;
using namespace wiRectPacker;
using namespace wiScene;
@@ -56,8 +55,8 @@ winrt::fire_and_forget uwp_copy_assets()
// Objects3D/WickedEngine
auto destfolder = co_await location.CreateFolderAsync(L"WickedEngine", CreationCollisionOption::OpenIfExists);
- string rootdir = std::filesystem::current_path().string() + "\\";
- wstring wstr;
+ std::string rootdir = std::filesystem::current_path().string() + "\\";
+ std::wstring wstr;
// scripts:
{
@@ -116,7 +115,6 @@ void Editor::Initialize()
infoDisplay.resolution = true;
infoDisplay.heap_allocation_counter = true;
- wiRenderer::GetDevice()->SetVSyncEnabled(true);
wiRenderer::SetOcclusionCullingEnabled(true);
loader.Load();
@@ -131,14 +129,13 @@ void Editor::Initialize()
void EditorLoadingScreen::Load()
{
- font = wiSpriteFont("Loading...", wiFontParams(wiRenderer::GetDevice()->GetScreenWidth()*0.5f, wiRenderer::GetDevice()->GetScreenHeight()*0.5f, 36,
+ font = wiSpriteFont("Loading...", wiFontParams(0, 0, 36,
WIFALIGN_CENTER, WIFALIGN_CENTER));
AddFont(&font);
sprite = wiSprite("images/logo_small.png");
sprite.anim.opa = 1;
sprite.anim.repeatable = true;
- sprite.params.pos = XMFLOAT3(wiRenderer::GetDevice()->GetScreenWidth()*0.5f, wiRenderer::GetDevice()->GetScreenHeight()*0.5f - font.textHeight(), 0);
sprite.params.siz = XMFLOAT2(128, 128);
sprite.params.pivot = XMFLOAT2(0.5f, 1.0f);
sprite.params.quality = QUALITY_LINEAR;
@@ -149,9 +146,9 @@ void EditorLoadingScreen::Load()
}
void EditorLoadingScreen::Update(float dt)
{
- font.params.posX = wiRenderer::GetDevice()->GetScreenWidth()*0.5f;
- font.params.posY = wiRenderer::GetDevice()->GetScreenHeight()*0.5f;
- sprite.params.pos = XMFLOAT3(wiRenderer::GetDevice()->GetScreenWidth()*0.5f, wiRenderer::GetDevice()->GetScreenHeight()*0.5f - font.textHeight(), 0);
+ font.params.posX = GetLogicalWidth()*0.5f;
+ font.params.posY = GetLogicalHeight()*0.5f;
+ sprite.params.pos = XMFLOAT3(GetLogicalWidth()*0.5f, GetLogicalHeight()*0.5f - font.textHeight(), 0);
LoadingScreen::Update(dt);
}
@@ -189,22 +186,26 @@ void EditorComponent::ChangeRenderPath(RENDERPATH path)
postprocessWnd = PostprocessWindow();
postprocessWnd.Create(this);
gui.AddWidget(&postprocessWnd);
-
- ResizeBuffers();
}
void EditorComponent::ResizeBuffers()
{
+ init(main->canvas);
RenderPath2D::ResizeBuffers();
GraphicsDevice* device = wiRenderer::GetDevice();
bool hr;
- if(renderPath != nullptr && renderPath->GetDepthStencil() != nullptr)
+ renderPath->init(*this);
+ renderPath->ResizeBuffers();
+
+ if(renderPath->GetDepthStencil() != nullptr)
{
+ XMUINT2 internalResolution = GetInternalResolution();
+
TextureDesc desc;
- desc.Width = GetInternalResolution().x;
- desc.Height = GetInternalResolution().y;
+ desc.Width = internalResolution.x;
+ desc.Height = internalResolution.y;
desc.Format = FORMAT_R8_UNORM;
desc.BindFlags = BIND_RENDER_TARGET | BIND_SHADER_RESOURCE;
@@ -261,8 +262,8 @@ void EditorComponent::ResizeLayout()
// GUI elements scaling:
- float screenW = wiRenderer::GetDevice()->GetScreenWidth();
- float screenH = wiRenderer::GetDevice()->GetScreenHeight();
+ float screenW = GetLogicalWidth();
+ float screenH = GetLogicalHeight();
XMFLOAT2 option_size = XMFLOAT2(100, 34);
float x = screenW - option_size.x;
@@ -712,7 +713,7 @@ void EditorComponent::Load()
wiHelper::FileDialog(params, [&](std::string fileName) {
wiEvent::Subscribe_Once(SYSTEM_EVENT_THREAD_SAFE_POINT, [=](uint64_t userdata) {
main->loader.addLoadingFunction([=](wiJobArgs args) {
- string extension = wiHelper::toUpper(wiHelper::GetExtensionFromFileName(fileName));
+ std::string extension = wiHelper::toUpper(wiHelper::GetExtensionFromFileName(fileName));
if (!extension.compare("WISCENE")) // engine-serialized
{
@@ -808,33 +809,33 @@ void EditorComponent::Load()
GetGUI().AddWidget(&helpButton);
{
- stringstream ss("");
- ss << "Help:" << endl;
- ss << "Move camera: WASD, or Contoller left stick or D-pad" << endl;
- ss << "Look: Middle mouse button / arrow keys / controller right stick" << endl;
- ss << "Select: Right mouse button" << endl;
- ss << "Place decal, interact with water: Left mouse button when nothing is selected" << endl;
- ss << "Camera speed: SHIFT button or controller R2/RT" << endl;
- ss << "Camera up: E, down: Q" << endl;
- ss << "Duplicate entity: Ctrl + D" << endl;
- ss << "Select All: Ctrl + A" << endl;
- ss << "Undo: Ctrl + Z" << endl;
- ss << "Redo: Ctrl + Y" << endl;
- ss << "Copy: Ctrl + C" << endl;
- ss << "Paste: Ctrl + V" << endl;
- ss << "Delete: DELETE button" << endl;
- ss << "Place Instances: Ctrl + Shift + Left mouse click (place clipboard onto clicked surface)" << endl;
- ss << "Script Console / backlog: HOME button" << endl;
- ss << endl;
- ss << "You can find sample scenes in the models directory. Try to load one." << endl;
- ss << "You can also import models from .OBJ, .GLTF, .GLB files." << endl;
- ss << "You can find a program configuration file at Editor/config.ini" << endl;
- ss << "You can find sample LUA scripts in the scripts directory. Try to load one." << endl;
- ss << "You can find a startup script at Editor/startup.lua (this will be executed on program start)" << endl;
- ss << endl << "For questions, bug reports, feedback, requests, please open an issue at:" << endl;
- ss << "https://github.com/turanszkij/WickedEngine" << endl;
- ss << endl << "Devblog: https://wickedengine.net/" << endl;
- ss << "Discord: https://discord.gg/CFjRYmE" << endl;
+ std::stringstream ss("");
+ ss << "Help:" << std::endl;
+ ss << "Move camera: WASD, or Contoller left stick or D-pad" << std::endl;
+ ss << "Look: Middle mouse button / arrow keys / controller right stick" << std::endl;
+ ss << "Select: Right mouse button" << std::endl;
+ ss << "Interact with water: Left mouse button when nothing is selected" << std::endl;
+ ss << "Camera speed: SHIFT button or controller R2/RT" << std::endl;
+ ss << "Camera up: E, down: Q" << std::endl;
+ ss << "Duplicate entity: Ctrl + D" << std::endl;
+ ss << "Select All: Ctrl + A" << std::endl;
+ ss << "Undo: Ctrl + Z" << std::endl;
+ ss << "Redo: Ctrl + Y" << std::endl;
+ ss << "Copy: Ctrl + C" << std::endl;
+ ss << "Paste: Ctrl + V" << std::endl;
+ ss << "Delete: DELETE button" << std::endl;
+ ss << "Place Instances: Ctrl + Shift + Left mouse click (place clipboard onto clicked surface)" << std::endl;
+ ss << "Script Console / backlog: HOME button" << std::endl;
+ ss << std::endl;
+ ss << "You can find sample scenes in the models directory. Try to load one." << std::endl;
+ ss << "You can also import models from .OBJ, .GLTF, .GLB files." << std::endl;
+ ss << "You can find a program configuration file at Editor/config.ini" << std::endl;
+ ss << "You can find sample LUA scripts in the scripts directory. Try to load one." << std::endl;
+ ss << "You can find a startup script at Editor/startup.lua (this will be executed on program start)" << std::endl;
+ ss << std::endl << "For questions, bug reports, feedback, requests, please open an issue at:" << std::endl;
+ ss << "https://github.com/turanszkij/WickedEngine" << std::endl;
+ ss << std::endl << "Devblog: https://wickedengine.net/" << std::endl;
+ ss << "Discord: https://discord.gg/CFjRYmE" << std::endl;
helpLabel.Create("HelpLabel");
helpLabel.SetText(ss.str());
@@ -1092,7 +1093,7 @@ void EditorComponent::Update(float dt)
if (cameraWnd.fpsCheckBox.GetCheck())
{
// FPS Camera
- const float clampedDT = min(dt, 0.1f); // if dt > 100 millisec, don't allow the camera to jump too far...
+ const float clampedDT = std::min(dt, 0.1f); // if dt > 100 millisec, don't allow the camera to jump too far...
const float speed = ((wiInput::Down(wiInput::KEYBOARD_BUTTON_LSHIFT) ? 10.0f : 1.0f) + rightTrigger.x * 10.0f) * cameraWnd.movespeedSlider.GetValue() * clampedDT;
static XMVECTOR move = XMVectorSet(0, 0, 0, 0);
@@ -1164,16 +1165,10 @@ void EditorComponent::Update(float dt)
{
// Begin picking:
unsigned int pickMask = rendererWnd.GetPickType();
- RAY pickRay = wiRenderer::GetPickRay((long)currentMouse.x, (long)currentMouse.y);
+ RAY pickRay = wiRenderer::GetPickRay((long)currentMouse.x, (long)currentMouse.y, *this);
{
hovered = wiScene::PickResult();
- // Try to pick objects-meshes:
- if (pickMask & PICK_OBJECT)
- {
- hovered = wiScene::Pick(pickRay, pickMask);
- }
-
if (pickMask & PICK_LIGHT)
{
for (size_t i = 0; i < scene.lights.GetCount(); ++i)
@@ -1331,6 +1326,18 @@ void EditorComponent::Update(float dt)
}
}
+ if (pickMask & PICK_OBJECT && hovered.entity == INVALID_ENTITY)
+ {
+ // Object picking only when mouse button down, because it can be slow with high polycount
+ if (
+ wiInput::Down(wiInput::MOUSE_BUTTON_LEFT) ||
+ wiInput::Down(wiInput::MOUSE_BUTTON_RIGHT) ||
+ paintToolWnd.GetMode() != PaintToolWindow::MODE_DISABLED
+ )
+ {
+ hovered = wiScene::Pick(pickRay, pickMask);
+ }
+ }
}
// Interactions only when paint tool is disabled:
@@ -1414,7 +1421,7 @@ void EditorComponent::Update(float dt)
if (!translator.selected.empty() && wiInput::Down(wiInput::KEYBOARD_BUTTON_LSHIFT))
{
// Union selection:
- list saved = translator.selected;
+ std::list saved = translator.selected;
translator.selected.clear();
for (const wiScene::PickResult& picked : saved)
{
@@ -1665,7 +1672,7 @@ void EditorComponent::Update(float dt)
}
}
- translator.Update();
+ translator.Update(*this);
if (translator.IsDragEnded())
{
@@ -2404,7 +2411,7 @@ void EditorComponent::ConsumeHistoryOperation(bool undo)
{
size_t count;
archive >> count;
- vector deletedEntities(count);
+ std::vector deletedEntities(count);
for (size_t i = 0; i < count; ++i)
{
archive >> deletedEntities[i];
@@ -2431,7 +2438,7 @@ void EditorComponent::ConsumeHistoryOperation(bool undo)
{
// Read selections states from archive:
- list selectedBEFORE;
+ std::list selectedBEFORE;
size_t selectionCountBEFORE;
archive >> selectionCountBEFORE;
for (size_t i = 0; i < selectionCountBEFORE; ++i)
@@ -2446,7 +2453,7 @@ void EditorComponent::ConsumeHistoryOperation(bool undo)
selectedBEFORE.push_back(sel);
}
- list selectedAFTER;
+ std::list selectedAFTER;
size_t selectionCountAFTER;
archive >> selectionCountAFTER;
for (size_t i = 0; i < selectionCountAFTER; ++i)
diff --git a/Editor/EmitterWindow.cpp b/Editor/EmitterWindow.cpp
index c2562555d..b9684a625 100644
--- a/Editor/EmitterWindow.cpp
+++ b/Editor/EmitterWindow.cpp
@@ -4,7 +4,6 @@
#include
-using namespace std;
using namespace wiECS;
using namespace wiScene;
@@ -756,16 +755,16 @@ void EmitterWindow::UpdateData()
NameComponent* name = scene.names.GetComponent(entity);
NameComponent* meshName = scene.names.GetComponent(emitter->meshID);
- stringstream ss("");
+ std::stringstream ss("");
ss.precision(2);
- ss << "Emitter Mesh: " << (meshName != nullptr ? meshName->name : "NO EMITTER MESH") << " (" << emitter->meshID << ")" << endl;
- ss << "Memort Budget: " << emitter->GetMemorySizeInBytes() / 1024.0f / 1024.0f << " MB" << endl;
- ss << endl;
+ ss << "Emitter Mesh: " << (meshName != nullptr ? meshName->name : "NO EMITTER MESH") << " (" << emitter->meshID << ")" << std::endl;
+ ss << "Memort Budget: " << emitter->GetMemorySizeInBytes() / 1024.0f / 1024.0f << " MB" << std::endl;
+ ss << std::endl;
auto data = emitter->GetStatistics();
- ss << "Alive Particle Count = " << data.aliveCount << endl;
- ss << "Dead Particle Count = " << data.deadCount << endl;
- ss << "GPU Emit count = " << data.realEmitCount << endl;
+ ss << "Alive Particle Count = " << data.aliveCount << std::endl;
+ ss << "Dead Particle Count = " << data.deadCount << std::endl;
+ ss << "GPU Emit count = " << data.realEmitCount << std::endl;
infoLabel.SetText(ss.str());
diff --git a/Editor/ForceFieldWindow.cpp b/Editor/ForceFieldWindow.cpp
index 9f08cc4ac..3bc4ec05f 100644
--- a/Editor/ForceFieldWindow.cpp
+++ b/Editor/ForceFieldWindow.cpp
@@ -109,7 +109,7 @@ void ForceFieldWindow::Create(EditorComponent* editor)
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 720, 50, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 720, 50, 0));
SetVisible(false);
SetEntity(INVALID_ENTITY);
diff --git a/Editor/HairParticleWindow.cpp b/Editor/HairParticleWindow.cpp
index 87bc59b63..255bc9ed9 100644
--- a/Editor/HairParticleWindow.cpp
+++ b/Editor/HairParticleWindow.cpp
@@ -2,7 +2,6 @@
#include "HairParticleWindow.h"
#include "Editor.h"
-using namespace std;
using namespace wiECS;
using namespace wiScene;
diff --git a/Editor/IKWindow.cpp b/Editor/IKWindow.cpp
index cdfa39624..d51bbde65 100644
--- a/Editor/IKWindow.cpp
+++ b/Editor/IKWindow.cpp
@@ -72,7 +72,7 @@ void IKWindow::Create(EditorComponent* editor)
});
AddWidget(&iterationCountSlider);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 740, 150, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 740, 150, 0));
SetVisible(false);
SetEntity(INVALID_ENTITY);
diff --git a/Editor/LayerWindow.cpp b/Editor/LayerWindow.cpp
index a25bb4324..f25bf244e 100644
--- a/Editor/LayerWindow.cpp
+++ b/Editor/LayerWindow.cpp
@@ -72,7 +72,7 @@ void LayerWindow::Create(EditorComponent* editor)
});
AddWidget(&enableNoneButton);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 450, 300, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 450, 300, 0));
SetVisible(false);
SetEntity(INVALID_ENTITY);
diff --git a/Editor/MaterialWindow.cpp b/Editor/MaterialWindow.cpp
index 2fc3a0527..e3fb0c898 100644
--- a/Editor/MaterialWindow.cpp
+++ b/Editor/MaterialWindow.cpp
@@ -4,7 +4,6 @@
#include
-using namespace std;
using namespace wiGraphics;
using namespace wiECS;
using namespace wiScene;
@@ -622,7 +621,7 @@ void MaterialWindow::Create(EditorComponent* editor)
AddWidget(&colorPicker);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 880, 120, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 880, 120, 0));
SetVisible(false);
SetEntity(INVALID_ENTITY);
diff --git a/Editor/MeshWindow.cpp b/Editor/MeshWindow.cpp
index 7fc41959a..7f4cc5455 100644
--- a/Editor/MeshWindow.cpp
+++ b/Editor/MeshWindow.cpp
@@ -6,7 +6,6 @@
#include
-using namespace std;
using namespace wiECS;
using namespace wiScene;
@@ -562,7 +561,7 @@ void MeshWindow::Create(EditorComponent* editor)
});
AddWidget(&morphTargetSlider);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 1000, 80, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 1000, 80, 0));
SetVisible(false);
SetEntity(INVALID_ENTITY);
@@ -586,12 +585,12 @@ void MeshWindow::SetEntity(Entity entity)
{
const NameComponent& name = *scene.names.GetComponent(entity);
- stringstream ss("");
- ss << "Mesh name: " << name.name << endl;
- ss << "Vertex count: " << mesh->vertex_positions.size() << endl;
- ss << "Index count: " << mesh->indices.size() << endl;
- ss << "Subset count: " << mesh->subsets.size() << endl;
- ss << endl << "Vertex buffers: ";
+ std::stringstream ss("");
+ ss << "Mesh name: " << name.name << std::endl;
+ ss << "Vertex count: " << mesh->vertex_positions.size() << std::endl;
+ ss << "Index count: " << mesh->indices.size() << std::endl;
+ ss << "Subset count: " << mesh->subsets.size() << std::endl;
+ ss << std::endl << "Vertex buffers: ";
if (mesh->vertexBuffer_POS.IsValid()) ss << "position; ";
if (mesh->vertexBuffer_UV0.IsValid()) ss << "uvset_0; ";
if (mesh->vertexBuffer_UV1.IsValid()) ss << "uvset_1; ";
@@ -602,7 +601,7 @@ void MeshWindow::SetEntity(Entity entity)
if (mesh->vertexBuffer_TAN.IsValid()) ss << "tangent; ";
if (mesh->streamoutBuffer_POS.IsValid()) ss << "streamout_position; ";
if (mesh->streamoutBuffer_TAN.IsValid()) ss << "streamout_tangents; ";
- if (mesh->IsTerrain()) ss << endl << endl << "Terrain will use 4 blend materials and blend by vertex colors, the default one is always the subset material and uses RED vertex color channel mask, the other 3 are selectable below.";
+ if (mesh->IsTerrain()) ss << std::endl << std::endl << "Terrain will use 4 blend materials and blend by vertex colors, the default one is always the subset material and uses RED vertex color channel mask, the other 3 are selectable below.";
meshInfoLabel.SetText(ss.str());
terrainCheckBox.SetCheck(mesh->IsTerrain());
diff --git a/Editor/ModelImporter_GLTF.cpp b/Editor/ModelImporter_GLTF.cpp
index 6fbbf9642..823d7e5fa 100644
--- a/Editor/ModelImporter_GLTF.cpp
+++ b/Editor/ModelImporter_GLTF.cpp
@@ -15,7 +15,6 @@
#include
#include
-using namespace std;
using namespace wiGraphics;
using namespace wiScene;
using namespace wiECS;
@@ -99,7 +98,7 @@ namespace tinygltf
if (image->uri.empty())
{
// Force some image resource name:
- stringstream ss;
+ std::stringstream ss;
do {
ss.str("");
ss << "gltfimport_" << wiRandom::getRandom(INT_MAX) << ".png";
@@ -143,7 +142,7 @@ struct LoaderState
{
tinygltf::Model gltfModel;
Scene* scene;
- unordered_map entityMap; // node -> entity
+ std::unordered_map entityMap; // node -> entity
};
// Recursively loads nodes and resolves hierarchy:
@@ -255,9 +254,9 @@ void LoadNode(int nodeIndex, Entity parent, LoaderState& state)
void ImportModel_GLTF(const std::string& fileName, Scene& scene)
{
- string directory = wiHelper::GetDirectoryFromPath(fileName);
- string name = wiHelper::GetFileNameFromPath(fileName);
- string extension = wiHelper::toUpper(wiHelper::GetExtensionFromFileName(name));
+ std::string directory = wiHelper::GetDirectoryFromPath(fileName);
+ std::string name = wiHelper::GetFileNameFromPath(fileName);
+ std::string extension = wiHelper::toUpper(wiHelper::GetExtensionFromFileName(name));
tinygltf::TinyGLTF loader;
@@ -620,7 +619,7 @@ void ImportModel_GLTF(const std::string& fileName, Scene& scene)
mesh.subsets.back().indexOffset = (uint32_t)indexOffset;
mesh.subsets.back().indexCount = (uint32_t)indexCount;
- mesh.subsets.back().materialID = scene.materials.GetEntity(max(0, prim.material));
+ mesh.subsets.back().materialID = scene.materials.GetEntity(std::max(0, prim.material));
MaterialComponent* material = scene.materials.GetComponent(mesh.subsets.back().materialID);
uint32_t vertexOffset = (uint32_t)mesh.vertex_positions.size();
@@ -675,7 +674,7 @@ void ImportModel_GLTF(const std::string& fileName, Scene& scene)
for (auto& attr : prim.attributes)
{
- const string& attr_name = attr.first;
+ const std::string& attr_name = attr.first;
int attr_data = attr.second;
const tinygltf::Accessor& accessor = state.gltfModel.accessors[attr_data];
@@ -810,7 +809,7 @@ void ImportModel_GLTF(const std::string& fileName, Scene& scene)
{
for (auto& attr : prim.targets[i])
{
- const string& attr_name = attr.first;
+ const std::string& attr_name = attr.first;
int attr_data = attr.second;
const tinygltf::Accessor& accessor = state.gltfModel.accessors[attr_data];
@@ -873,7 +872,7 @@ void ImportModel_GLTF(const std::string& fileName, Scene& scene)
}
// Create transform hierarchy, assign objects, meshes, armatures, cameras:
- const tinygltf::Scene &gltfScene = state.gltfModel.scenes[max(0, state.gltfModel.defaultScene)];
+ const tinygltf::Scene &gltfScene = state.gltfModel.scenes[std::max(0, state.gltfModel.defaultScene)];
for (size_t i = 0; i < gltfScene.nodes.size(); i++)
{
LoadNode(gltfScene.nodes[i], rootEntity, state);
@@ -949,8 +948,8 @@ void ImportModel_GLTF(const std::string& fileName, Scene& scene)
{
float time = ((float*)data)[j];
animationdata.keyframe_times[j] = time;
- animationcomponent.start = min(animationcomponent.start, time);
- animationcomponent.end = max(animationcomponent.end, time);
+ animationcomponent.start = std::min(animationcomponent.start, time);
+ animationcomponent.end = std::max(animationcomponent.end, time);
}
}
diff --git a/Editor/ModelImporter_OBJ.cpp b/Editor/ModelImporter_OBJ.cpp
index 8c22018de..ec2548766 100644
--- a/Editor/ModelImporter_OBJ.cpp
+++ b/Editor/ModelImporter_OBJ.cpp
@@ -8,7 +8,6 @@
#include
#include
-using namespace std;
using namespace wiGraphics;
using namespace wiScene;
using namespace wiECS;
@@ -74,13 +73,13 @@ static const bool transform_to_LH = true;
void ImportModel_OBJ(const std::string& fileName, Scene& scene)
{
- string directory = wiHelper::GetDirectoryFromPath(fileName);
- string name = wiHelper::GetFileNameFromPath(fileName);
+ std::string directory = wiHelper::GetDirectoryFromPath(fileName);
+ std::string name = wiHelper::GetFileNameFromPath(fileName);
tinyobj::attrib_t obj_attrib;
- vector obj_shapes;
- vector obj_materials;
- string obj_errors;
+ std::vector obj_shapes;
+ std::vector obj_materials;
+ std::string obj_errors;
std::vector filedata;
bool success = wiHelper::FileRead(fileName, filedata);
@@ -105,7 +104,7 @@ void ImportModel_OBJ(const std::string& fileName, Scene& scene)
if (success)
{
// Load material library:
- vector materialLibrary = {};
+ std::vector materialLibrary = {};
for (auto& obj_material : obj_materials)
{
Entity materialEntity = scene.Entity_CreateMaterial(obj_material.name);
@@ -117,7 +116,7 @@ void ImportModel_OBJ(const std::string& fileName, Scene& scene)
material.emissiveColor.x = obj_material.emission[0];
material.emissiveColor.y = obj_material.emission[1];
material.emissiveColor.z = obj_material.emission[2];
- material.emissiveColor.w = max(obj_material.emission[0], max(obj_material.emission[1], obj_material.emission[2]));
+ material.emissiveColor.w = std::max(obj_material.emission[0], std::max(obj_material.emission[1], obj_material.emission[2]));
//material.refractionIndex = obj_material.ior;
material.metalness = obj_material.metallic;
material.textures[MaterialComponent::NORMALMAP].name = obj_material.normal_texname;
@@ -164,8 +163,8 @@ void ImportModel_OBJ(const std::string& fileName, Scene& scene)
object.meshID = meshEntity;
- unordered_map registered_materialIndices = {};
- unordered_map uniqueVertices = {};
+ std::unordered_map registered_materialIndices = {};
+ std::unordered_map uniqueVertices = {};
for (size_t i = 0; i < shape.mesh.indices.size(); i += 3)
{
@@ -210,7 +209,7 @@ void ImportModel_OBJ(const std::string& fileName, Scene& scene)
);
}
- int materialIndex = max(0, shape.mesh.material_ids[i / 3]); // this indexes the material library
+ int materialIndex = std::max(0, shape.mesh.material_ids[i / 3]); // this indexes the material library
if (registered_materialIndices.count(materialIndex) == 0)
{
registered_materialIndices[materialIndex] = (int)mesh.subsets.size();
diff --git a/Editor/NameWindow.cpp b/Editor/NameWindow.cpp
index 6e4f88f3e..ed439b281 100644
--- a/Editor/NameWindow.cpp
+++ b/Editor/NameWindow.cpp
@@ -33,7 +33,7 @@ void NameWindow::Create(EditorComponent* editor)
});
AddWidget(&nameInput);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 450, 200, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 450, 200, 0));
SetVisible(false);
SetEntity(INVALID_ENTITY);
diff --git a/Editor/ObjectWindow.cpp b/Editor/ObjectWindow.cpp
index 23e852336..10732c20a 100644
--- a/Editor/ObjectWindow.cpp
+++ b/Editor/ObjectWindow.cpp
@@ -792,7 +792,7 @@ void ObjectWindow::Create(EditorComponent* editor)
AddWidget(&colorPicker);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 720, 120, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 720, 120, 0));
SetVisible(false);
SetEntity(INVALID_ENTITY);
diff --git a/Editor/PaintToolWindow.cpp b/Editor/PaintToolWindow.cpp
index 952a77a0e..c4f110631 100644
--- a/Editor/PaintToolWindow.cpp
+++ b/Editor/PaintToolWindow.cpp
@@ -196,7 +196,7 @@ void PaintToolWindow::Create(EditorComponent* editor)
colorPicker.SetPos(XMFLOAT2(10, y += step));
AddWidget(&colorPicker);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 550, 50, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 550, 50, 0));
SetVisible(false);
}
@@ -207,8 +207,8 @@ void PaintToolWindow::Update(float dt)
rot -= dt;
// by default, paint tool is on center of screen, this makes it easy to tweak radius with GUI:
XMFLOAT2 posNew;
- posNew.x = wiRenderer::GetDevice()->GetScreenWidth() * 0.5f;
- posNew.y = wiRenderer::GetDevice()->GetScreenHeight() * 0.5f;
+ posNew.x = editor->GetLogicalWidth() * 0.5f;
+ posNew.y = editor->GetLogicalHeight() * 0.5f;
if (editor->GetGUI().HasFocus() || wiBackLog::isActive() || entity == INVALID_ENTITY)
{
pos = posNew;
@@ -253,7 +253,7 @@ void PaintToolWindow::Update(float dt)
const XMMATRIX VP = camera.GetViewProjection();
const XMVECTOR MUL = XMVectorSet(0.5f, -0.5f, 1, 1);
const XMVECTOR ADD = XMVectorSet(0.5f, 0.5f, 0, 0);
- const XMVECTOR SCREEN = XMVectorSet((float)wiRenderer::GetDevice()->GetScreenWidth(), (float)wiRenderer::GetDevice()->GetScreenHeight(), 1, 1);
+ const XMVECTOR SCREEN = XMVectorSet((float)editor->GetLogicalWidth(), (float)editor->GetLogicalHeight(), 1, 1);
const XMVECTOR F = camera.GetAt();
switch (mode)
diff --git a/Editor/PostprocessWindow.cpp b/Editor/PostprocessWindow.cpp
index 3552fdb38..9d63aeb71 100644
--- a/Editor/PostprocessWindow.cpp
+++ b/Editor/PostprocessWindow.cpp
@@ -4,7 +4,6 @@
#include
-using namespace std;
using namespace wiGraphics;
@@ -239,7 +238,7 @@ void PostprocessWindow::Create(EditorComponent* editor)
AddWidget(&motionBlurStrengthSlider);
depthOfFieldCheckBox.Create("DepthOfField: ");
- depthOfFieldCheckBox.SetTooltip("Enable Depth of field effect. Additional focus and strength setup required.");
+ depthOfFieldCheckBox.SetTooltip("Enable Depth of field effect. Requires additional camera setup: focal length and aperture size.");
depthOfFieldCheckBox.SetScriptTip("RenderPath3D::SetDepthOfFieldEnabled(bool value)");
depthOfFieldCheckBox.SetSize(XMFLOAT2(hei, hei));
depthOfFieldCheckBox.SetPos(XMFLOAT2(x, y += step));
@@ -385,7 +384,7 @@ void PostprocessWindow::Create(EditorComponent* editor)
AddWidget(&chromaticaberrationSlider);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 500, 80, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 500, 80, 0));
SetVisible(false);
}
diff --git a/Editor/RendererWindow.cpp b/Editor/RendererWindow.cpp
index f85498b34..4ae0323ff 100644
--- a/Editor/RendererWindow.cpp
+++ b/Editor/RendererWindow.cpp
@@ -22,10 +22,10 @@ void RendererWindow::Create(EditorComponent* editor)
vsyncCheckBox.SetScriptTip("SetVSyncEnabled(opt bool enabled)");
vsyncCheckBox.SetPos(XMFLOAT2(x, y += step));
vsyncCheckBox.SetSize(XMFLOAT2(itemheight, itemheight));
- vsyncCheckBox.OnClick([](wiEventArgs args) {
- wiRenderer::GetDevice()->SetVSyncEnabled(args.bValue);
+ vsyncCheckBox.OnClick([=](wiEventArgs args) {
+ wiEvent::SetVSync(args.bValue);
});
- vsyncCheckBox.SetCheck(wiRenderer::GetDevice()->GetVSyncEnabled());
+ vsyncCheckBox.SetCheck(editor->main->swapChain.desc.vsync);
AddWidget(&vsyncCheckBox);
occlusionCullingCheckBox.Create("Occlusion Culling: ");
@@ -48,7 +48,6 @@ void RendererWindow::Create(EditorComponent* editor)
if (editor->resolutionScale != args.fValue)
{
editor->renderPath->resolutionScale = args.fValue;
- editor->renderPath->ResizeBuffers();
editor->resolutionScale = args.fValue;
editor->ResizeBuffers();
}
diff --git a/Editor/SoundWindow.cpp b/Editor/SoundWindow.cpp
index dd8cbb1a7..1803624ce 100644
--- a/Editor/SoundWindow.cpp
+++ b/Editor/SoundWindow.cpp
@@ -5,7 +5,6 @@
#include
-using namespace std;
using namespace wiGraphics;
using namespace wiECS;
using namespace wiScene;
diff --git a/Editor/SpringWindow.cpp b/Editor/SpringWindow.cpp
index 70da124d8..d9c331c38 100644
--- a/Editor/SpringWindow.cpp
+++ b/Editor/SpringWindow.cpp
@@ -83,7 +83,7 @@ void SpringWindow::Create(EditorComponent* editor)
});
AddWidget(&windSlider);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 700, 80, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 700, 80, 0));
SetVisible(false);
SetEntity(INVALID_ENTITY);
diff --git a/Editor/TransformWindow.cpp b/Editor/TransformWindow.cpp
index 4f763c855..339439e26 100644
--- a/Editor/TransformWindow.cpp
+++ b/Editor/TransformWindow.cpp
@@ -212,7 +212,7 @@ void TransformWindow::Create(EditorComponent* editor)
});
AddWidget(&szInput);
- Translate(XMFLOAT3((float)wiRenderer::GetDevice()->GetScreenWidth() - 750, 100, 0));
+ Translate(XMFLOAT3((float)editor->GetLogicalWidth() - 750, 100, 0));
SetVisible(false);
SetEntity(INVALID_ENTITY);
diff --git a/Editor/Translator.cpp b/Editor/Translator.cpp
index 9c200ac1e..3295086e5 100644
--- a/Editor/Translator.cpp
+++ b/Editor/Translator.cpp
@@ -165,7 +165,7 @@ void Translator::Create()
}
}
-void Translator::Update()
+void Translator::Update(const wiCanvas& canvas)
{
if (selected.empty())
{
@@ -192,7 +192,7 @@ void Translator::Update()
dist = wiMath::Distance(p, cam.Eye) * 0.05f;
- RAY ray = wiRenderer::GetPickRay((long)pointer.x, (long)pointer.y);
+ RAY ray = wiRenderer::GetPickRay((long)pointer.x, (long)pointer.y, canvas);
XMVECTOR x, y, z, xy, xz, yz;
@@ -323,12 +323,12 @@ void Translator::Update()
}
plane = XMPlaneFromPointNormal(pos, XMVector3Normalize(planeNormal));
- RAY ray = wiRenderer::GetPickRay((long)pointer.x, (long)pointer.y);
+ RAY ray = wiRenderer::GetPickRay((long)pointer.x, (long)pointer.y, canvas);
XMVECTOR rayOrigin = XMLoadFloat3(&ray.origin);
XMVECTOR rayDir = XMLoadFloat3(&ray.direction);
XMVECTOR intersection = XMPlaneIntersectLine(plane, rayOrigin, rayOrigin + rayDir*cam.zFarP);
- ray = wiRenderer::GetPickRay((long)prevPointer.x, (long)prevPointer.y);
+ ray = wiRenderer::GetPickRay((long)prevPointer.x, (long)prevPointer.y, canvas);
rayOrigin = XMLoadFloat3(&ray.origin);
rayDir = XMLoadFloat3(&ray.direction);
XMVECTOR intersectionPrev = XMPlaneIntersectLine(plane, rayOrigin, rayOrigin + rayDir*cam.zFarP);
diff --git a/Editor/Translator.h b/Editor/Translator.h
index e222ed10e..97ed29da8 100644
--- a/Editor/Translator.h
+++ b/Editor/Translator.h
@@ -1,5 +1,6 @@
#pragma once
#include "CommonInclude.h"
+#include "wiCanvas.h"
#include
@@ -14,7 +15,7 @@ private:
public:
void Create();
- void Update();
+ void Update(const wiCanvas& canvas);
void Draw(const wiScene::CameraComponent& camera, wiGraphics::CommandList cmd) const;
// Attach selection to translator temporarily
diff --git a/Editor/WeatherWindow.cpp b/Editor/WeatherWindow.cpp
index c85820a94..9f387ab75 100644
--- a/Editor/WeatherWindow.cpp
+++ b/Editor/WeatherWindow.cpp
@@ -4,7 +4,6 @@
#include
-using namespace std;
using namespace wiECS;
using namespace wiScene;
using namespace wiGraphics;
diff --git a/Editor/main_Windows.cpp b/Editor/main_Windows.cpp
index ec4f66bd1..cac9aa9f4 100644
--- a/Editor/main_Windows.cpp
+++ b/Editor/main_Windows.cpp
@@ -4,8 +4,6 @@
#include
-using namespace std;
-
#define MAX_LOADSTRING 100
// Global Variables:
@@ -119,9 +117,9 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
int x = CW_USEDEFAULT, y = 0, w = CW_USEDEFAULT, h = 0;
bool fullscreen = false;
bool borderless = false;
- string voidStr = "";
+ std::string voidStr = "";
- ifstream file("config.ini");
+ std::ifstream file("config.ini");
if (file.is_open())
{
int enabled;
@@ -201,17 +199,15 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
break;
case WM_SIZE:
- wiEvent::FireEvent(SYSTEM_EVENT_CHANGE_RESOLUTION, lParam);
- break;
case WM_DPICHANGED:
- wiEvent::FireEvent(SYSTEM_EVENT_CHANGE_DPI, wParam);
+ editor.SetWindow(hWnd);
break;
case WM_HOTKEY:
switch (wParam)
{
case PRINTSCREEN:
{
- wiHelper::screenshot();
+ wiHelper::screenshot(editor.swapChain);
}
break;
default:
diff --git a/Template_UWP/Main.cpp b/Template_UWP/Main.cpp
index d58c51853..57e09b324 100644
--- a/Template_UWP/Main.cpp
+++ b/Template_UWP/Main.cpp
@@ -87,7 +87,7 @@ public:
m_logicalWidth = window.Bounds().Width;
m_logicalHeight = window.Bounds().Height;
- main.SetWindow(window);
+ main.SetWindow(&window);
}
void Load(winrt::hstring const &) noexcept
@@ -134,14 +134,7 @@ protected:
void OnWindowSizeChanged(CoreWindow const & sender, WindowSizeChangedEventArgs const & /*args*/)
{
- m_logicalWidth = sender.Bounds().Width;
- m_logicalHeight = sender.Bounds().Height;
-
- float dpiscale = wiRenderer::GetDevice()->GetDPIScaling();
- uint64_t data = 0;
- data |= int(m_logicalWidth * dpiscale);
- data |= int(m_logicalHeight * dpiscale) << 16;
- wiEvent::FireEvent(SYSTEM_EVENT_CHANGE_RESOLUTION, data);
+ main.SetWindow(&sender);
}
void OnVisibilityChanged(CoreWindow const & /*sender*/, VisibilityChangedEventArgs const & args)
@@ -170,9 +163,7 @@ protected:
void OnDpiChanged(DisplayInformation const & sender, IInspectable const & /*args*/)
{
- m_DPI = sender.LogicalDpi();
-
- wiEvent::FireEvent(SYSTEM_EVENT_CHANGE_DPI, (int)m_DPI);
+ main.SetWindow(&CoreWindow::GetForCurrentThread());
}
void OnDisplayContentsInvalidated(DisplayInformation const & /*sender*/, IInspectable const & /*args*/)
diff --git a/Template_Windows/main.cpp b/Template_Windows/main.cpp
index 2377086ff..c851b4306 100644
--- a/Template_Windows/main.cpp
+++ b/Template_Windows/main.cpp
@@ -161,10 +161,8 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
break;
case WM_SIZE:
- wiEvent::FireEvent(SYSTEM_EVENT_CHANGE_RESOLUTION, lParam);
- break;
case WM_DPICHANGED:
- wiEvent::FireEvent(SYSTEM_EVENT_CHANGE_DPI, wParam);
+ main.SetWindow(hWnd);
break;
case WM_CHAR:
switch (wParam)
diff --git a/Tests/Tests.cpp b/Tests/Tests.cpp
index 1dc73f4f6..8c6bb054f 100644
--- a/Tests/Tests.cpp
+++ b/Tests/Tests.cpp
@@ -19,6 +19,7 @@ void Tests::Initialize()
infoDisplay.resolution = true;
infoDisplay.heap_allocation_counter = true;
+ renderer.init(canvas);
renderer.Load();
ActivatePath(&renderer);
@@ -28,8 +29,8 @@ void TestsRenderer::ResizeLayout()
{
RenderPath3D::ResizeLayout();
- float screenW = wiRenderer::GetDevice()->GetScreenWidth();
- float screenH = wiRenderer::GetDevice()->GetScreenHeight();
+ float screenW = GetLogicalWidth();
+ float screenH = GetLogicalHeight();
label.SetPos(XMFLOAT2(screenW / 2.f - label.scale.x / 2.f, screenH * 0.95f));
}
void TestsRenderer::Load()
@@ -123,7 +124,7 @@ void TestsRenderer::Load()
testSelector.OnSelect([=](wiEventArgs args) {
// Reset all state that tests might have modified:
- wiRenderer::GetDevice()->SetVSyncEnabled(true);
+ wiEvent::SetVSync(true);
wiRenderer::SetToDrawGridHelper(false);
wiRenderer::SetTemporalAAEnabled(false);
wiRenderer::ClearWorld(wiScene::GetScene());
@@ -140,8 +141,8 @@ void TestsRenderer::Load()
transform.UpdateTransform();
wiScene::GetCamera().TransformCamera(transform);
- float screenW = wiRenderer::GetDevice()->GetScreenWidth();
- float screenH = wiRenderer::GetDevice()->GetScreenHeight();
+ float screenW = GetLogicalWidth();
+ float screenH = GetLogicalHeight();
// Based on combobox selection, start the appropriate test:
switch (args.iValue)
@@ -210,7 +211,7 @@ void TestsRenderer::Load()
RunSpriteTest();
break;
case 14:
- wiRenderer::GetDevice()->SetVSyncEnabled(false); // turn off vsync if we can to accelerate the baking
+ wiEvent::SetVSync(false); // turn off vsync if we can to accelerate the baking
wiRenderer::SetTemporalAAEnabled(true);
wiScene::LoadModel("../Content/models/lightmap_bake_test.wiscene", XMMatrixTranslation(0, 0, 4));
break;
@@ -340,7 +341,7 @@ void TestsRenderer::Update(float dt)
TransformComponent& target = *scene.transforms.GetComponent(ik.target);
// place ik target on a plane intersected by mouse ray:
- RAY ray = wiRenderer::GetPickRay((long)wiInput::GetPointer().x, (long)wiInput::GetPointer().y);
+ RAY ray = wiRenderer::GetPickRay((long)wiInput::GetPointer().x, (long)wiInput::GetPointer().y, *this);
XMVECTOR plane = XMVectorSet(0, 0, 1, 0.2f);
XMVECTOR I = XMPlaneIntersectLine(plane, XMLoadFloat3(&ray.origin), XMLoadFloat3(&ray.origin) + XMLoadFloat3(&ray.direction) * 10000);
target.ClearTransform();
@@ -436,8 +437,8 @@ void TestsRenderer::RunJobSystemTest()
static wiSpriteFont font;
font = wiSpriteFont(ss.str());
- font.params.posX = wiRenderer::GetDevice()->GetScreenWidth() / 2;
- font.params.posY = wiRenderer::GetDevice()->GetScreenHeight() / 2;
+ font.params.posX = GetLogicalWidth() / 2;
+ font.params.posY = GetLogicalHeight() / 2;
font.params.h_align = WIFALIGN_CENTER;
font.params.v_align = WIFALIGN_CENTER;
font.params.size = 24;
@@ -451,8 +452,8 @@ void TestsRenderer::RunFontTest()
font.SetText("This is Arial, size 32 wiFont");
font_upscaled.SetText("This is Arial, size 14 wiFont, but upscaled to 32");
- font.params.posX = wiRenderer::GetDevice()->GetScreenWidth() / 2.0f;
- font.params.posY = wiRenderer::GetDevice()->GetScreenHeight() / 6.0f;
+ font.params.posX = GetLogicalWidth() / 2.0f;
+ font.params.posY = GetLogicalHeight() / 6.0f;
font.params.size = 32;
font_upscaled.params = font.params;
@@ -509,7 +510,7 @@ void TestsRenderer::RunFontTest()
font_colored.params.h_align = WIFALIGN_CENTER;
font_colored.params.v_align = WIFALIGN_TOP;
font_colored.params.size = 26;
- font_colored.params.posX = wiRenderer::GetDevice()->GetScreenWidth() / 2;
+ font_colored.params.posX = GetLogicalWidth() / 2;
font_colored.params.posY = font_japanese.params.posY + font_japanese.textHeight();
font_colored.SetText("Colored font");
AddFont(&font_colored);
@@ -517,8 +518,8 @@ void TestsRenderer::RunFontTest()
void TestsRenderer::RunSpriteTest()
{
const float step = 30;
- const float screenW = wiRenderer::GetDevice()->GetScreenWidth();
- const float screenH = wiRenderer::GetDevice()->GetScreenHeight();
+ const float screenW = GetLogicalWidth();
+ const float screenH = GetLogicalHeight();
const XMFLOAT3 startPos = XMFLOAT3(screenW * 0.3f, screenH * 0.2f, 0);
wiImageParams params;
params.pos = startPos;
@@ -893,8 +894,8 @@ void TestsRenderer::RunNetworkTest()
sender.join();
receiver.join();
- font.params.posX = wiRenderer::GetDevice()->GetScreenWidth() / 2;
- font.params.posY = wiRenderer::GetDevice()->GetScreenHeight() / 2;
+ font.params.posX = GetLogicalWidth() / 2;
+ font.params.posY = GetLogicalHeight() / 2;
font.params.h_align = WIFALIGN_CENTER;
font.params.v_align = WIFALIGN_CENTER;
font.params.size = 24;
diff --git a/Tests/main_Windows.cpp b/Tests/main_Windows.cpp
index 5d7d8ad29..6f93e6822 100644
--- a/Tests/main_Windows.cpp
+++ b/Tests/main_Windows.cpp
@@ -154,10 +154,8 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
break;
case WM_SIZE:
- wiEvent::FireEvent(SYSTEM_EVENT_CHANGE_RESOLUTION, lParam);
- break;
case WM_DPICHANGED:
- wiEvent::FireEvent(SYSTEM_EVENT_CHANGE_DPI, wParam);
+ tests.SetWindow(hWnd);
break;
case WM_CHAR:
switch (wParam)
diff --git a/WickedEngine/CommonInclude.h b/WickedEngine/CommonInclude.h
index 3ba866345..cb4b1249d 100644
--- a/WickedEngine/CommonInclude.h
+++ b/WickedEngine/CommonInclude.h
@@ -32,5 +32,4 @@ static const XMFLOAT4X4 IDENTITYMATRIX = XMFLOAT4X4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0
#define NOMINMAX
#define ALIGN_16 void* operator new(size_t i){return _mm_malloc(i, 16);} void operator delete(void* p){_mm_free(p);}
-
#endif //WICKEDENGINE_COMMONINCLUDE_H
diff --git a/WickedEngine/LoadingScreen.h b/WickedEngine/LoadingScreen.h
index 9d2076c38..d43190675 100644
--- a/WickedEngine/LoadingScreen.h
+++ b/WickedEngine/LoadingScreen.h
@@ -24,8 +24,6 @@ public:
//Set a function that should be called when the loading finishes
//use std::bind( YourFunctionPointer )
void onFinished(std::function finishFunction);
- //Get percentage of finished loading tasks (values 0-100)
- int getPercentageComplete();
//See if the loading is currently running
bool isActive();
diff --git a/WickedEngine/LoadingScreen_BindLua.cpp b/WickedEngine/LoadingScreen_BindLua.cpp
index d12a377e8..60f37ee12 100644
--- a/WickedEngine/LoadingScreen_BindLua.cpp
+++ b/WickedEngine/LoadingScreen_BindLua.cpp
@@ -1,7 +1,5 @@
#include "LoadingScreen_BindLua.h"
-using namespace std;
-
const char LoadingScreen_BindLua::className[] = "LoadingScreen";
Luna::FunctionType LoadingScreen_BindLua::methods[] = {
@@ -35,7 +33,7 @@ int LoadingScreen_BindLua::AddLoadingTask(lua_State* L)
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
- string task = wiLua::SGetString(L, 1);
+ std::string task = wiLua::SGetString(L, 1);
LoadingScreen* loading = dynamic_cast(component);
if (loading != nullptr)
{
@@ -55,7 +53,7 @@ int LoadingScreen_BindLua::OnFinished(lua_State* L)
int argc = wiLua::SGetArgCount(L);
if (argc > 0)
{
- string task = wiLua::SGetString(L, 1);
+ std::string task = wiLua::SGetString(L, 1);
LoadingScreen* loading = dynamic_cast(component);
if (loading != nullptr)
{
diff --git a/WickedEngine/MainComponent.cpp b/WickedEngine/MainComponent.cpp
index 50f6d1730..5e188ea50 100644
--- a/WickedEngine/MainComponent.cpp
+++ b/WickedEngine/MainComponent.cpp
@@ -25,7 +25,6 @@
#include
#include
-using namespace std;
using namespace wiGraphics;
void MainComponent::Initialize()
@@ -41,6 +40,11 @@ void MainComponent::Initialize()
void MainComponent::ActivatePath(RenderPath* component, float fadeSeconds, wiColor fadeColor)
{
+ if (component != nullptr)
+ {
+ component->init(canvas);
+ }
+
// Fade manager will activate on fadeout
fadeManager.Clear();
fadeManager.Start(fadeSeconds, fadeColor, [this, component]() {
@@ -72,19 +76,26 @@ void MainComponent::Run()
{
// Until engine is not loaded, present initialization screen...
CommandList cmd = wiRenderer::GetDevice()->BeginCommandList();
- wiRenderer::GetDevice()->PresentBegin(cmd);
+ wiRenderer::GetDevice()->RenderPassBegin(&swapChain, cmd);
+ wiImage::SetCanvas(canvas, cmd);
+ wiFont::SetCanvas(canvas, cmd);
+ Viewport viewport;
+ viewport.Width = (float)swapChain.desc.width;
+ viewport.Height = (float)swapChain.desc.height;
+ wiRenderer::GetDevice()->BindViewports(1, &viewport, cmd);
wiFontParams params;
params.posX = 5.f;
params.posY = 5.f;
- string text = wiBackLog::getText();
+ std::string text = wiBackLog::getText();
float textheight = wiFont::textHeight(text, params);
- float screenheight = wiRenderer::GetDevice()->GetScreenHeight();
+ float screenheight = canvas.GetLogicalHeight();
if (textheight > screenheight)
{
params.posY = screenheight - textheight;
}
wiFont::Draw(text, params, cmd);
- wiRenderer::GetDevice()->PresentEnd(cmd);
+ wiRenderer::GetDevice()->RenderPassEnd(cmd);
+ wiRenderer::GetDevice()->SubmitCommandLists();
return;
}
@@ -112,6 +123,11 @@ void MainComponent::Run()
fadeManager.Update(dt);
+ if (GetActivePath() != nullptr)
+ {
+ GetActivePath()->init(canvas);
+ }
+
// Fixed time update:
auto range = wiProfiler::BeginRangeCPU("Fixed Update");
{
@@ -141,24 +157,30 @@ void MainComponent::Run()
// Variable-timed update:
Update(dt);
- wiInput::Update();
-
Render();
}
else
{
// If the application is not active, disable Update loops:
deltaTimeAccumulator = 0;
- wiInput::Update(); // still flush the input events so they don't just accumulate
}
+ wiInput::Update(window);
+
CommandList cmd = wiRenderer::GetDevice()->BeginCommandList();
- wiRenderer::GetDevice()->PresentBegin(cmd);
+ wiRenderer::GetDevice()->RenderPassBegin(&swapChain, cmd);
{
+ wiImage::SetCanvas(canvas, cmd);
+ wiFont::SetCanvas(canvas, cmd);
+ Viewport viewport;
+ viewport.Width = (float)swapChain.desc.width;
+ viewport.Height = (float)swapChain.desc.height;
+ wiRenderer::GetDevice()->BindViewports(1, &viewport, cmd);
Compose(cmd);
wiProfiler::EndFrame(cmd); // End before Present() so that GPU queries are properly recorded
}
- wiRenderer::GetDevice()->PresentEnd(cmd);
+ wiRenderer::GetDevice()->RenderPassEnd(cmd);
+ wiRenderer::GetDevice()->SubmitCommandLists();
}
void MainComponent::Update(float dt)
@@ -184,7 +206,7 @@ void MainComponent::Update(float dt)
void MainComponent::FixedUpdate()
{
- wiBackLog::Update();
+ wiBackLog::Update(canvas);
wiLua::FixedUpdate();
if (GetActivePath() != nullptr)
@@ -222,8 +244,8 @@ void MainComponent::Compose(CommandList cmd)
{
// display fade rect
static wiImageParams fx;
- fx.siz.x = (float)device->GetScreenWidth();
- fx.siz.y = (float)device->GetScreenHeight();
+ fx.siz.x = canvas.GetLogicalWidth();
+ fx.siz.y = canvas.GetLogicalHeight();
fx.opacity = fadeManager.opacity;
wiImage::Draw(wiTextureHelper::getColor(fadeManager.color), fx, cmd);
}
@@ -231,7 +253,7 @@ void MainComponent::Compose(CommandList cmd)
// Draw the information display
if (infoDisplay.active)
{
- stringstream ss("");
+ std::stringstream ss("");
if (infoDisplay.watermark)
{
ss << "Wicked Engine " << wiVersion::GetVersionString() << " ";
@@ -274,11 +296,11 @@ void MainComponent::Compose(CommandList cmd)
{
ss << "[debugdevice]";
}
- ss << endl;
+ ss << std::endl;
}
if (infoDisplay.resolution)
{
- ss << "Resolution: " << device->GetResolutionWidth() << " x " << device->GetResolutionHeight() << " (" << device->GetDPI() << " dpi)" << endl;
+ ss << "Resolution: " << canvas.GetPhysicalWidth() << " x " << canvas.GetPhysicalHeight() << " (" << canvas.GetDPI() << " dpi)" << std::endl;
}
if (infoDisplay.fpsinfo)
{
@@ -295,20 +317,20 @@ void MainComponent::Compose(CommandList cmd)
}
ss.precision(2);
- ss << fixed << 1.0f / displaydeltatime << " FPS" << endl;
+ ss << std::fixed << 1.0f / displaydeltatime << " FPS" << std::endl;
}
if (infoDisplay.heap_allocation_counter)
{
- ss << "Heap allocations per frame: " << number_of_allocs.load() << endl;
+ ss << "Heap allocations per frame: " << number_of_allocs.load() << std::endl;
number_of_allocs.store(0);
}
#ifdef _DEBUG
- ss << "Warning: This is a [DEBUG] build, performance will be slow!" << endl;
+ ss << "Warning: This is a [DEBUG] build, performance will be slow!" << std::endl;
#endif
if (wiRenderer::GetDevice()->IsDebugDevice())
{
- ss << "Warning: Graphics is in [debugdevice] mode, performance will be slow!" << endl;
+ ss << "Warning: Graphics is in [debugdevice] mode, performance will be slow!" << std::endl;
}
ss.precision(2);
@@ -316,23 +338,26 @@ void MainComponent::Compose(CommandList cmd)
if (infoDisplay.colorgrading_helper)
{
- wiImage::Draw(wiTextureHelper::getColorGradeDefault(), wiImageParams(0, 0, 256.0f / device->GetDPIScaling(), 16.0f / device->GetDPIScaling()), cmd);
+ wiImage::Draw(wiTextureHelper::getColorGradeDefault(), wiImageParams(0, 0, 256.0f / canvas.GetDPIScaling(), 16.0f / canvas.GetDPIScaling()), cmd);
}
}
- wiProfiler::DrawData(4, 120, cmd);
+ wiProfiler::DrawData(canvas, 4, 120, cmd);
- wiBackLog::Draw(cmd);
+ wiBackLog::Draw(canvas, cmd);
wiProfiler::EndRange(range); // Compose
}
void MainComponent::SetWindow(wiPlatform::window_type window, bool fullscreen)
{
+ this->window = window;
+
// User can also create a graphics device if custom logic is desired, but they must do before this function!
if (wiRenderer::GetDevice() == nullptr)
{
bool debugdevice = wiStartupArguments::HasArgument("debugdevice");
+ bool gpuvalidation = wiStartupArguments::HasArgument("gpuvalidation");
bool use_dx11 = wiStartupArguments::HasArgument("dx11");
bool use_dx12 = wiStartupArguments::HasArgument("dx12");
@@ -376,23 +401,40 @@ void MainComponent::SetWindow(wiPlatform::window_type window, bool fullscreen)
{
#ifdef WICKEDENGINE_BUILD_VULKAN
wiRenderer::SetShaderPath(wiRenderer::GetShaderPath() + "spirv/");
- wiRenderer::SetDevice(std::make_shared(window, fullscreen, debugdevice));
+ wiRenderer::SetDevice(std::make_shared(window, debugdevice));
#endif
}
else if (use_dx12)
{
#ifdef WICKEDENGINE_BUILD_DX12
wiRenderer::SetShaderPath(wiRenderer::GetShaderPath() + "hlsl6/");
- wiRenderer::SetDevice(std::make_shared(window, fullscreen, debugdevice));
+ wiRenderer::SetDevice(std::make_shared(debugdevice, gpuvalidation));
#endif
}
else if (use_dx11)
{
#ifdef WICKEDENGINE_BUILD_DX11
wiRenderer::SetShaderPath(wiRenderer::GetShaderPath() + "hlsl5/");
- wiRenderer::SetDevice(std::make_shared(window, fullscreen, debugdevice));
+ wiRenderer::SetDevice(std::make_shared(debugdevice));
#endif
}
}
+
+ canvas.init(window);
+
+ SwapChainDesc desc;
+ desc.width = canvas.GetPhysicalWidth();
+ desc.height = canvas.GetPhysicalHeight();
+ desc.buffercount = 3;
+ desc.format = FORMAT_R10G10B10A2_UNORM;
+ bool success = wiRenderer::GetDevice()->CreateSwapChain(&desc, window, &swapChain);
+ assert(success);
+
+ swapChainVsyncChangeEvent = wiEvent::Subscribe(SYSTEM_EVENT_SET_VSYNC, [this](uint64_t userdata) {
+ SwapChainDesc desc = swapChain.desc;
+ desc.vsync = userdata != 0;
+ bool success = wiRenderer::GetDevice()->CreateSwapChain(&desc, nullptr, &swapChain);
+ assert(success);
+ });
}
diff --git a/WickedEngine/MainComponent.h b/WickedEngine/MainComponent.h
index 679635bb3..2cf662fcb 100644
--- a/WickedEngine/MainComponent.h
+++ b/WickedEngine/MainComponent.h
@@ -4,12 +4,19 @@
#include "wiResourceManager.h"
#include "wiColor.h"
#include "wiFadeManager.h"
+#include "wiGraphics.h"
+#include "wiEvent.h"
+#include "wiCanvas.h"
class RenderPath;
class MainComponent
{
protected:
+ wiEvent::Handle swapChainResizeEvent;
+ wiEvent::Handle swapChainVsyncChangeEvent;
+ wiEvent::Handle dpiChangeEvent;
+
RenderPath* activePath = nullptr;
float targetFrameRate = 60;
bool frameskip = true;
@@ -26,7 +33,12 @@ protected:
int fps_avg_counter = 0;
public:
+ virtual ~MainComponent() = default;
+
bool is_window_active = true;
+ wiGraphics::SwapChain swapChain;
+ wiCanvas canvas;
+ wiPlatform::window_type window;
// Runs the main engine loop
void Run();
@@ -37,14 +49,14 @@ public:
inline RenderPath* GetActivePath(){ return activePath; }
// Set the desired target framerate for the FixedUpdate() loop (default = 60)
- void setTargetFrameRate(float value) { targetFrameRate = value; }
+ void setTargetFrameRate(float value) { targetFrameRate = value; }
// Get the desired target framerate for the FixedUpdate() loop
- float getTargetFrameRate() const { return targetFrameRate; }
+ float getTargetFrameRate() const { return targetFrameRate; }
// Set the desired behaviour of the FixedUpdate() loop (default = true)
// enabled : the FixedUpdate() loop will run at targetFrameRate frequency
// disabled : the FixedUpdate() loop will run every frame only once.
- void setFrameSkip(bool enabled) { frameskip = enabled; }
- void setFrameRateLock(bool enabled) { framerate_lock = enabled; }
+ void setFrameSkip(bool enabled) { frameskip = enabled; }
+ void setFrameRateLock(bool enabled) { framerate_lock = enabled; }
// This is where the critical initializations happen (before any rendering or anything else)
virtual void Initialize();
@@ -83,5 +95,6 @@ public:
};
// display all-time engine information text
InfoDisplayer infoDisplay;
+
};
diff --git a/WickedEngine/MainComponent_BindLua.cpp b/WickedEngine/MainComponent_BindLua.cpp
index 531614a84..d7b0fbb59 100644
--- a/WickedEngine/MainComponent_BindLua.cpp
+++ b/WickedEngine/MainComponent_BindLua.cpp
@@ -17,6 +17,7 @@ Luna::FunctionType MainComponent_BindLua::methods[] = {
lunamethod(MainComponent_BindLua, SetWatermarkDisplay),
lunamethod(MainComponent_BindLua, SetFPSDisplay),
lunamethod(MainComponent_BindLua, SetResolutionDisplay),
+ lunamethod(MainComponent_BindLua, GetCanvas),
{ NULL, NULL }
};
Luna::PropertyType MainComponent_BindLua::properties[] = {
@@ -256,6 +257,17 @@ int MainComponent_BindLua::SetResolutionDisplay(lua_State *L)
return 0;
}
+int MainComponent_BindLua::GetCanvas(lua_State* L)
+{
+ if (component == nullptr)
+ {
+ wiLua::SError(L, "GetCanvas() component is empty!");
+ return 0;
+ }
+ Luna::push(L, new Canvas_BindLua(component->canvas));
+ return 1;
+}
+
int SetProfilerEnabled(lua_State* L)
{
@@ -281,3 +293,69 @@ void MainComponent_BindLua::Bind()
wiLua::RegisterFunc("SetProfilerEnabled", SetProfilerEnabled);
}
}
+
+
+
+
+
+
+
+
+
+
+const char Canvas_BindLua::className[] = "Canvas";
+
+Luna::FunctionType Canvas_BindLua::methods[] = {
+ lunamethod(Canvas_BindLua, GetDPI),
+ lunamethod(Canvas_BindLua, GetDPIScaling),
+ lunamethod(Canvas_BindLua, GetPhysicalWidth),
+ lunamethod(Canvas_BindLua, GetPhysicalHeight),
+ lunamethod(Canvas_BindLua, GetLogicalWidth),
+ lunamethod(Canvas_BindLua, GetLogicalHeight),
+ { NULL, NULL }
+};
+Luna::PropertyType Canvas_BindLua::properties[] = {
+ { NULL, NULL }
+};
+
+
+int Canvas_BindLua::GetDPI(lua_State* L)
+{
+ wiLua::SSetFloat(L, canvas.GetDPI());
+ return 1;
+}
+int Canvas_BindLua::GetDPIScaling(lua_State* L)
+{
+ wiLua::SSetFloat(L, canvas.GetDPIScaling());
+ return 1;
+}
+int Canvas_BindLua::GetPhysicalWidth(lua_State* L)
+{
+ wiLua::SSetInt(L, canvas.GetPhysicalWidth());
+ return 1;
+}
+int Canvas_BindLua::GetPhysicalHeight(lua_State* L)
+{
+ wiLua::SSetInt(L, canvas.GetPhysicalHeight());
+ return 1;
+}
+int Canvas_BindLua::GetLogicalWidth(lua_State* L)
+{
+ wiLua::SSetFloat(L, canvas.GetLogicalWidth());
+ return 1;
+}
+int Canvas_BindLua::GetLogicalHeight(lua_State* L)
+{
+ wiLua::SSetFloat(L, canvas.GetLogicalHeight());
+ return 1;
+}
+
+void Canvas_BindLua::Bind()
+{
+ static bool initialized = false;
+ if (!initialized)
+ {
+ initialized = true;
+ Luna::Register(wiLua::GetLuaState());
+ }
+}
diff --git a/WickedEngine/MainComponent_BindLua.h b/WickedEngine/MainComponent_BindLua.h
index 70f290576..632c20c1e 100644
--- a/WickedEngine/MainComponent_BindLua.h
+++ b/WickedEngine/MainComponent_BindLua.h
@@ -3,6 +3,27 @@
#include "wiLuna.h"
#include "MainComponent.h"
+class Canvas_BindLua
+{
+public:
+ wiCanvas canvas;
+ static const char className[];
+ static Luna::FunctionType methods[];
+ static Luna::PropertyType properties[];
+
+ Canvas_BindLua(const wiCanvas& canvas) : canvas(canvas) {}
+ Canvas_BindLua(lua_State* L) {}
+
+ int GetDPI(lua_State* L);
+ int GetDPIScaling(lua_State* L);
+ int GetPhysicalWidth(lua_State* L);
+ int GetPhysicalHeight(lua_State* L);
+ int GetLogicalWidth(lua_State* L);
+ int GetLogicalHeight(lua_State* L);
+
+ static void Bind();
+};
+
class MainComponent_BindLua
{
private:
@@ -25,6 +46,8 @@ public:
int SetFPSDisplay(lua_State *L);
int SetResolutionDisplay(lua_State *L);
+ int GetCanvas(lua_State* L);
+
static void Bind();
};
diff --git a/WickedEngine/RenderPath.h b/WickedEngine/RenderPath.h
index 033339110..5b4077f13 100644
--- a/WickedEngine/RenderPath.h
+++ b/WickedEngine/RenderPath.h
@@ -1,13 +1,16 @@
#pragma once
#include "CommonInclude.h"
#include "wiGraphicsDevice.h"
+#include "wiCanvas.h"
-class RenderPath
+class RenderPath : public wiCanvas
{
private:
uint32_t layerMask = 0xFFFFFFFF;
public:
+ virtual ~RenderPath() = default;
+
// load resources in background (for example behind loading screen)
virtual void Load() {}
// called when RenderPath gets activated
diff --git a/WickedEngine/RenderPath2D.cpp b/WickedEngine/RenderPath2D.cpp
index d92dda266..7919f5e10 100644
--- a/WickedEngine/RenderPath2D.cpp
+++ b/WickedEngine/RenderPath2D.cpp
@@ -9,9 +9,12 @@ using namespace wiGraphics;
void RenderPath2D::ResizeBuffers()
{
+ current_buffersize = GetInternalResolution();
+ current_layoutscale = 0; // invalidate layout
+
GraphicsDevice* device = wiRenderer::GetDevice();
- FORMAT defaultTextureFormat = device->GetBackBufferFormat();
+ FORMAT defaultTextureFormat = FORMAT_R10G10B10A2_UNORM;
const Texture* dsv = GetDepthStencil();
if(dsv != nullptr && (resolutionScale != 1.0f || dsv->GetDesc().SampleCount > 1))
@@ -39,8 +42,8 @@ void RenderPath2D::ResizeBuffers()
TextureDesc desc;
desc.BindFlags = BIND_RENDER_TARGET | BIND_SHADER_RESOURCE;
desc.Format = defaultTextureFormat;
- desc.Width = device->GetResolutionWidth();
- desc.Height = device->GetResolutionHeight();
+ desc.Width = GetPhysicalWidth();
+ desc.Height = GetPhysicalHeight();
device->CreateTexture(&desc, nullptr, &rtFinal);
device->SetName(&rtFinal, "rtFinal");
}
@@ -91,52 +94,25 @@ void RenderPath2D::ResizeBuffers()
}
}
-
-void RenderPath2D::Load()
+void RenderPath2D::ResizeLayout()
{
- // ideally, this would happen here, under loading screen
- if (!resolutionChange_handle.IsValid())
- {
- ResizeBuffers();
- resolutionChange_handle = wiEvent::Subscribe(SYSTEM_EVENT_CHANGE_RESOLUTION, [this](uint64_t userdata) {
- ResizeBuffers();
- ResizeLayout();
- });
- }
- if (!dpiChange_handle.IsValid())
- {
- ResizeLayout();
- dpiChange_handle = wiEvent::Subscribe(SYSTEM_EVENT_CHANGE_DPI, [this](uint64_t userdata) {
- ResizeLayout();
- });
- }
+ current_layoutscale = GetDPIScaling();
+}
- RenderPath::Load();
-}
-void RenderPath2D::Start()
-{
- RenderPath::Start();
-}
void RenderPath2D::Update(float dt)
{
- // this is last resort, if Load() wasn't called
- if (!resolutionChange_handle.IsValid())
+ XMUINT2 internalResolution = GetInternalResolution();
+
+ if (current_buffersize.x != internalResolution.x || current_buffersize.y != internalResolution.y)
{
ResizeBuffers();
- resolutionChange_handle = wiEvent::Subscribe(SYSTEM_EVENT_CHANGE_RESOLUTION, [this](uint64_t userdata) {
- ResizeBuffers();
- ResizeLayout();
- });
}
- if (!dpiChange_handle.IsValid())
+ if (current_layoutscale != GetDPIScaling())
{
ResizeLayout();
- dpiChange_handle = wiEvent::Subscribe(SYSTEM_EVENT_CHANGE_DPI, [this](uint64_t userdata) {
- ResizeLayout();
- });
}
- GetGUI().Update(dt);
+ GetGUI().Update(*this, dt);
for (auto& x : layers)
{
@@ -194,12 +170,14 @@ void RenderPath2D::Render() const
{
GraphicsDevice* device = wiRenderer::GetDevice();
CommandList cmd = device->BeginCommandList();
+ wiImage::SetCanvas(*this, cmd);
+ wiFont::SetCanvas(*this, cmd);
wiRenderer::ProcessDeferredMipGenRequests(cmd);
if (GetGUIBlurredBackground() != nullptr)
{
- wiImage::SetBackgroundBlurTexture(*GetGUIBlurredBackground(), cmd);
+ wiImage::SetBackground(*GetGUIBlurredBackground(), cmd);
}
// Special care for internal resolution, because stencil buffer is of internal resolution,
@@ -299,7 +277,7 @@ void RenderPath2D::Render() const
}
wiRenderer::GetDevice()->EventEnd(cmd);
- GetGUI().Render(cmd);
+ GetGUI().Render(*this, cmd);
device->RenderPassEnd(cmd);
@@ -543,13 +521,3 @@ void RenderPath2D::CleanLayers()
x.items = itemsToRetain;
}
}
-
-
-XMUINT2 RenderPath2D::GetInternalResolution() const
-{
- GraphicsDevice* device = wiRenderer::GetDevice();
- return XMUINT2(
- (uint32_t)ceilf(device->GetResolutionWidth() * resolutionScale),
- (uint32_t)ceilf(device->GetResolutionHeight() * resolutionScale)
- );
-}
diff --git a/WickedEngine/RenderPath2D.h b/WickedEngine/RenderPath2D.h
index 39daa1ff6..8ef0e0ab4 100644
--- a/WickedEngine/RenderPath2D.h
+++ b/WickedEngine/RenderPath2D.h
@@ -1,7 +1,6 @@
#pragma once
#include "RenderPath.h"
#include "wiGUI.h"
-#include "wiEvent.h"
#include
@@ -41,17 +40,16 @@ private:
wiGraphics::RenderPass renderpass_final;
wiGUI GUI;
- wiEvent::Handle resolutionChange_handle;
- wiEvent::Handle dpiChange_handle;
+
+ XMUINT2 current_buffersize{};
+ float current_layoutscale{};
public:
- // create resolution dependant resources, such as render targets
+ // create resolution dependent resources, such as render targets
virtual void ResizeBuffers();
- // update resolution dependent elements, such as elements dependent on current monitor DPI
- virtual void ResizeLayout() {}
+ // update DPI dependent elements, such as GUI elements, sprites
+ virtual void ResizeLayout();
- void Load() override;
- void Start() override;
void Update(float dt) override;
void FixedUpdate() override;
void Render() const override;
@@ -83,6 +81,12 @@ public:
wiGUI& GetGUI() { return GUI; }
float resolutionScale = 1.0f;
- virtual XMUINT2 GetInternalResolution() const;
+ XMUINT2 GetInternalResolution() const
+ {
+ return XMUINT2(
+ uint32_t((float)GetPhysicalWidth() * resolutionScale),
+ uint32_t((float)GetPhysicalHeight() * resolutionScale)
+ );
+ }
};
diff --git a/WickedEngine/RenderPath2D_BindLua.cpp b/WickedEngine/RenderPath2D_BindLua.cpp
index 4f26d7cb0..4eab50d16 100644
--- a/WickedEngine/RenderPath2D_BindLua.cpp
+++ b/WickedEngine/RenderPath2D_BindLua.cpp
@@ -4,8 +4,6 @@
#include
-using namespace std;
-
const char RenderPath2D_BindLua::className[] = "RenderPath2D";
Luna::FunctionType RenderPath2D_BindLua::methods[] = {
@@ -304,10 +302,10 @@ int RenderPath2D_BindLua::GetLayers(lua_State* L)
RenderPath2D* ccomp = dynamic_cast(component);
if (ccomp != nullptr)
{
- stringstream ss("");
+ std::stringstream ss("");
for (auto& x : ccomp->layers)
{
- ss << x.name << endl;
+ ss << x.name << std::endl;
}
wiLua::SSetString(L, ss.str());
return 1;
@@ -422,4 +420,4 @@ void RenderPath2D_BindLua::Bind()
initialized = true;
Luna::Register(wiLua::GetLuaState());
}
-}
\ No newline at end of file
+}
diff --git a/WickedEngine/RenderPath3D.cpp b/WickedEngine/RenderPath3D.cpp
index 4971a5800..afd2b3f88 100644
--- a/WickedEngine/RenderPath3D.cpp
+++ b/WickedEngine/RenderPath3D.cpp
@@ -12,7 +12,7 @@ void RenderPath3D::ResizeBuffers()
{
GraphicsDevice* device = wiRenderer::GetDevice();
- FORMAT defaultTextureFormat = device->GetBackBufferFormat();
+ FORMAT defaultTextureFormat = FORMAT_R10G10B10A2_UNORM;
XMUINT2 internalResolution = GetInternalResolution();
camera->CreatePerspective((float)internalResolution.x, (float)internalResolution.y, camera->zNearP, camera->zFarP);
@@ -532,6 +532,11 @@ void RenderPath3D::PreUpdate()
void RenderPath3D::Update(float dt)
{
+ if (rtGbuffer[GBUFFER_COLOR].desc.SampleCount != msaaSampleCount)
+ {
+ ResizeBuffers();
+ }
+
RenderPath2D::Update(dt);
if (getSceneUpdateEnabled())
@@ -559,13 +564,22 @@ void RenderPath3D::Update(float dt)
wiRenderer::UpdateVisibility(visibility_reflection);
}
- wiRenderer::UpdatePerFrameData(*scene, visibility_main, frameCB, GetInternalResolution(), dt);
+ XMUINT2 internalResolution = GetInternalResolution();
+
+ wiRenderer::UpdatePerFrameData(
+ *scene,
+ visibility_main,
+ frameCB,
+ internalResolution,
+ *this,
+ dt
+ );
if (wiRenderer::GetTemporalAAEnabled())
{
const XMFLOAT4& halton = wiMath::GetHaltonSequence(wiRenderer::GetDevice()->GetFrameCount() % 256);
- camera->jitter.x = (halton.x * 2 - 1) / (float)GetInternalResolution().x;
- camera->jitter.y = (halton.y * 2 - 1) / (float)GetInternalResolution().y;
+ camera->jitter.x = (halton.x * 2 - 1) / (float)internalResolution.x;
+ camera->jitter.y = (halton.y * 2 - 1) / (float)internalResolution.y;
}
else
{
@@ -939,7 +953,8 @@ void RenderPath3D::Compose(CommandList cmd) const
if (wiRenderer::GetDebugLightCulling() || wiRenderer::GetVariableRateShadingClassificationDebug())
{
- wiImage::Draw(&debugUAV, wiImageParams((float)wiRenderer::GetDevice()->GetScreenWidth(), (float)wiRenderer::GetDevice()->GetScreenHeight()), cmd);
+ fx.enableFullScreen();
+ wiImage::Draw(&debugUAV, fx, cmd);
}
RenderPath2D::Compose(cmd);
@@ -1223,7 +1238,7 @@ void RenderPath3D::RenderTransparents(CommandList cmd) const
wiRenderer::DrawLensFlares(visibility_main, depthBuffer_Copy, cmd);
}
- wiRenderer::DrawDebugWorld(*scene, *camera, cmd);
+ wiRenderer::DrawDebugWorld(*scene, *camera, *this, cmd);
device->RenderPassEnd(cmd);
diff --git a/WickedEngine/RenderPath3D.h b/WickedEngine/RenderPath3D.h
index 9295ed30e..83bc92da6 100644
--- a/WickedEngine/RenderPath3D.h
+++ b/WickedEngine/RenderPath3D.h
@@ -258,7 +258,7 @@ public:
constexpr void setOcclusionCullingEnabled(bool value) { occlusionCullingEnabled = value; }
constexpr void setSceneUpdateEnabled(bool value) { sceneUpdateEnabled = value; }
- virtual void setMSAASampleCount(uint32_t value) { if (msaaSampleCount != value) { msaaSampleCount = value; ResizeBuffers(); } }
+ virtual void setMSAASampleCount(uint32_t value) { msaaSampleCount = value; }
void PreUpdate() override;
void Update(float dt) override;
diff --git a/WickedEngine/RenderPath3D_PathTracing.cpp b/WickedEngine/RenderPath3D_PathTracing.cpp
index 660df112b..36c8046a0 100644
--- a/WickedEngine/RenderPath3D_PathTracing.cpp
+++ b/WickedEngine/RenderPath3D_PathTracing.cpp
@@ -18,14 +18,15 @@ void RenderPath3D_PathTracing::ResizeBuffers()
GraphicsDevice* device = wiRenderer::GetDevice();
- FORMAT defaultTextureFormat = device->GetBackBufferFormat();
+ XMUINT2 internalResolution = GetInternalResolution();
+ FORMAT defaultTextureFormat = FORMAT_R10G10B10A2_UNORM;
{
TextureDesc desc;
desc.BindFlags = BIND_UNORDERED_ACCESS | BIND_SHADER_RESOURCE | BIND_RENDER_TARGET;
desc.Format = FORMAT_R32G32B32A32_FLOAT;
- desc.Width = GetInternalResolution().x;
- desc.Height = GetInternalResolution().y;
+ desc.Width = internalResolution.x;
+ desc.Height = internalResolution.y;
device->CreateTexture(&desc, nullptr, &traceResult);
device->SetName(&traceResult, "traceResult");
}
@@ -33,8 +34,8 @@ void RenderPath3D_PathTracing::ResizeBuffers()
TextureDesc desc;
desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS;
desc.Format = defaultTextureFormat;
- desc.Width = GetInternalResolution().x;
- desc.Height = GetInternalResolution().y;
+ desc.Width = internalResolution.x;
+ desc.Height = internalResolution.y;
device->CreateTexture(&desc, nullptr, &rtPostprocess_LDR[0]);
device->SetName(&rtPostprocess_LDR[0], "rtPostprocess_LDR[0]");
diff --git a/WickedEngine/RenderPath_BindLua.cpp b/WickedEngine/RenderPath_BindLua.cpp
index de7e5431d..5ba11788a 100644
--- a/WickedEngine/RenderPath_BindLua.cpp
+++ b/WickedEngine/RenderPath_BindLua.cpp
@@ -1,7 +1,5 @@
#include "RenderPath_BindLua.h"
-using namespace std;
-
const char RenderPath_BindLua::className[] = "RenderPath";
Luna::FunctionType RenderPath_BindLua::methods[] = {
diff --git a/WickedEngine/Utility/dx12/D3DCommon.idl b/WickedEngine/Utility/dx12/D3DCommon.idl
deleted file mode 100644
index 04ad40ef7..000000000
--- a/WickedEngine/Utility/dx12/D3DCommon.idl
+++ /dev/null
@@ -1,904 +0,0 @@
-import "oaidl.idl";
-import "ocidl.idl";
-
-//----------------------------------------------------------------------------
-//
-// D3D-version-neutral runtime information.
-//
-//----------------------------------------------------------------------------
-
-typedef enum D3D_DRIVER_TYPE
-{
- D3D_DRIVER_TYPE_UNKNOWN,
- D3D_DRIVER_TYPE_HARDWARE,
- D3D_DRIVER_TYPE_REFERENCE,
- D3D_DRIVER_TYPE_NULL,
- D3D_DRIVER_TYPE_SOFTWARE,
- D3D_DRIVER_TYPE_WARP,
-} D3D_DRIVER_TYPE;
-
-typedef enum D3D_FEATURE_LEVEL
-{
- D3D_FEATURE_LEVEL_1_0_CORE = 0x1000,
- D3D_FEATURE_LEVEL_9_1 = 0x9100,
- D3D_FEATURE_LEVEL_9_2 = 0x9200,
- D3D_FEATURE_LEVEL_9_3 = 0x9300,
- D3D_FEATURE_LEVEL_10_0 = 0xa000,
- D3D_FEATURE_LEVEL_10_1 = 0xa100,
- D3D_FEATURE_LEVEL_11_0 = 0xb000,
- D3D_FEATURE_LEVEL_11_1 = 0xb100,
- D3D_FEATURE_LEVEL_12_0 = 0xc000,
- D3D_FEATURE_LEVEL_12_1 = 0xc100,
- D3D_FEATURE_LEVEL_12_2 = 0xc200
-} D3D_FEATURE_LEVEL;
-
-cpp_quote("#define D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION 2048")
-cpp_quote("#define D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION 4096")
-cpp_quote("#define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048")
-cpp_quote("#define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096")
-cpp_quote("#define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512")
-cpp_quote("#define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096")
-cpp_quote("#define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256")
-cpp_quote("#define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2")
-cpp_quote("#define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535")
-cpp_quote("#define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575")
-cpp_quote("#define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1")
-cpp_quote("#define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4")
-cpp_quote("#define D3D_FL9_1_MAX_TEXTURE_REPEAT 128")
-cpp_quote("#define D3D_FL9_2_MAX_TEXTURE_REPEAT 2048")
-cpp_quote("#define D3D_FL9_3_MAX_TEXTURE_REPEAT 8192")
-
-typedef enum D3D_PRIMITIVE_TOPOLOGY
-{
- D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
- D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
- D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2,
- D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
- D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
- D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
- // 6 is reserved for legacy triangle fans
- // Adjacency values should be equal to (0x8 & non-adjacency):
- D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
- D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
- D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
- D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
- D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
- D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34,
- D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35,
- D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36,
- D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37,
- D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38,
- D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39,
- D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40,
- D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41,
- D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42,
- D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43,
- D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44,
- D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45,
- D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46,
- D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47,
- D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48,
- D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49,
- D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50,
- D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51,
- D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52,
- D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53,
- D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54,
- D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55,
- D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56,
- D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57,
- D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58,
- D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59,
- D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60,
- D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61,
- D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62,
- D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63,
- D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64,
-
- D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
- D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
- D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
- D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
- D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
- D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
- D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
- D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
- D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
- D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
-
- D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
- D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
- D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
- D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
- D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
- D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
- D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
- D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
- D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
- D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
- D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST,
- D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST,
-} D3D_PRIMITIVE_TOPOLOGY;
-
-typedef enum D3D_PRIMITIVE
-{
- D3D_PRIMITIVE_UNDEFINED = 0,
- D3D_PRIMITIVE_POINT = 1,
- D3D_PRIMITIVE_LINE = 2,
- D3D_PRIMITIVE_TRIANGLE = 3,
- // Adjacency values should be equal to (0x4 & non-adjacency):
- D3D_PRIMITIVE_LINE_ADJ = 6,
- D3D_PRIMITIVE_TRIANGLE_ADJ = 7,
- D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
- D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9,
- D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10,
- D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11,
- D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12,
- D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13,
- D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14,
- D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15,
- D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16,
- D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17,
- D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18,
- D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19,
- D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20,
- D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21,
- D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22,
- D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23,
- D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24,
- D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25,
- D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26,
- D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27,
- D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28,
- D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29,
- D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30,
- D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31,
- D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32,
- D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33,
- D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34,
- D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35,
- D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36,
- D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37,
- D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38,
- D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39,
-
- D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED,
- D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT,
- D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE,
- D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE,
- D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ,
- D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ,
-
- D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED,
- D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT,
- D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE,
- D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE,
- D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ,
- D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ,
- D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH,
- D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH,
-} D3D_PRIMITIVE;
-
-typedef enum D3D_SRV_DIMENSION
-{
- D3D_SRV_DIMENSION_UNKNOWN = 0,
- D3D_SRV_DIMENSION_BUFFER = 1,
- D3D_SRV_DIMENSION_TEXTURE1D = 2,
- D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3,
- D3D_SRV_DIMENSION_TEXTURE2D = 4,
- D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5,
- D3D_SRV_DIMENSION_TEXTURE2DMS = 6,
- D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
- D3D_SRV_DIMENSION_TEXTURE3D = 8,
- D3D_SRV_DIMENSION_TEXTURECUBE = 9,
- D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
- D3D_SRV_DIMENSION_BUFFEREX = 11,
-
- D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
- D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
- D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
- D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
- D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
- D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
- D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
- D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
- D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
- D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
-
- D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
- D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
- D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
- D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
- D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
- D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
- D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
- D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
- D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
- D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
- D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
-
- D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
- D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
- D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
- D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
- D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
- D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
- D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
- D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
- D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
- D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
- D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
- D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX,
-} D3D_SRV_DIMENSION;
-
-// Bits in shaders indicating features they use which the runtime checks against current device support:
-cpp_quote("#define D3D_SHADER_FEATURE_DOUBLES 0x00001")
-cpp_quote("#define D3D_SHADER_FEATURE_COMPUTE_SHADERS_PLUS_RAW_AND_STRUCTURED_BUFFERS_VIA_SHADER_4_X 0x00002")
-cpp_quote("#define D3D_SHADER_FEATURE_UAVS_AT_EVERY_STAGE 0x00004")
-cpp_quote("#define D3D_SHADER_FEATURE_64_UAVS 0x00008")
-cpp_quote("#define D3D_SHADER_FEATURE_MINIMUM_PRECISION 0x00010")
-cpp_quote("#define D3D_SHADER_FEATURE_11_1_DOUBLE_EXTENSIONS 0x00020")
-cpp_quote("#define D3D_SHADER_FEATURE_11_1_SHADER_EXTENSIONS 0x00040")
-cpp_quote("#define D3D_SHADER_FEATURE_LEVEL_9_COMPARISON_FILTERING 0x00080")
-cpp_quote("#define D3D_SHADER_FEATURE_TILED_RESOURCES 0x00100")
-cpp_quote("#define D3D_SHADER_FEATURE_STENCIL_REF 0x00200")
-cpp_quote("#define D3D_SHADER_FEATURE_INNER_COVERAGE 0x00400")
-cpp_quote("#define D3D_SHADER_FEATURE_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00800")
-cpp_quote("#define D3D_SHADER_FEATURE_ROVS 0x01000")
-cpp_quote("#define D3D_SHADER_FEATURE_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x02000")
-cpp_quote("#define D3D_SHADER_FEATURE_WAVE_OPS 0x04000")
-cpp_quote("#define D3D_SHADER_FEATURE_INT64_OPS 0x08000")
-cpp_quote("#define D3D_SHADER_FEATURE_VIEW_ID 0x10000")
-cpp_quote("#define D3D_SHADER_FEATURE_BARYCENTRICS 0x20000")
-cpp_quote("#define D3D_SHADER_FEATURE_NATIVE_16BIT_OPS 0x40000")
-cpp_quote("#define D3D_SHADER_FEATURE_SHADING_RATE 0x80000")
-cpp_quote("#define D3D_SHADER_FEATURE_RAYTRACING_TIER_1_1 0x100000")
-cpp_quote("#define D3D_SHADER_FEATURE_SAMPLER_FEEDBACK 0x200000")
-cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_TYPED_RESOURCE 0x400000")
-cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_GROUP_SHARED 0x800000")
-cpp_quote("#define D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x1000000")
-cpp_quote("#define D3D_SHADER_FEATURE_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x2000000")
-cpp_quote("#define D3D_SHADER_FEATURE_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x4000000")
-cpp_quote("#define D3D_SHADER_FEATURE_WAVE_MMA 0x8000000")
-
-// Additional internal shader feature flags are listed in dxbcutils.h (not relevant/useful for public to see)
-// When adding entries here, make sure they don't conflict with what's there.
-
-//----------------------------------------------------------------------------
-//
-// Shader compilation information.
-//
-//----------------------------------------------------------------------------
-
-//----------------------------------------------------------------------------
-// D3D_SHADER_MACRO:
-// ----------
-// Preprocessor macro definition. The application pass in a NULL-terminated
-// array of this structure to various D3D APIs. This enables the application
-// to #define tokens at runtime, before the file is parsed.
-//----------------------------------------------------------------------------
-
-typedef struct _D3D_SHADER_MACRO
-{
- LPCSTR Name;
- LPCSTR Definition;
-} D3D_SHADER_MACRO, *LPD3D_SHADER_MACRO;
-
-//----------------------------------------------------------------------------
-// ID3DBlob:
-// ------------
-// The buffer object is used by D3D to return arbitrary size data.
-// For compatibility with D3D10 this interface is also called ID3D10Blob,
-// but the version-neutral form is preferred.
-//
-// GetBufferPointer -
-// Returns a pointer to the beginning of the buffer.
-//
-// GetBufferSize -
-// Returns the size of the buffer, in bytes.
-//----------------------------------------------------------------------------
-
-// {8BA5FB08-5195-40e2-AC58-0D989C3A0102}
-cpp_quote("DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);")
-
-[ uuid( 8BA5FB08-5195-40e2-AC58-0D989C3A0102 ), object, local, pointer_default( unique ) ]
-interface ID3D10Blob : IUnknown
-{
- LPVOID GetBufferPointer();
- SIZE_T GetBufferSize();
-};
-
-cpp_quote("typedef interface ID3D10Blob* LPD3D10BLOB;")
-
-typedef ID3D10Blob ID3DBlob;
-cpp_quote("typedef ID3DBlob* LPD3DBLOB;")
-cpp_quote("#define IID_ID3DBlob IID_ID3D10Blob")
-
-// ID3DDestructionNotifier: An interface to QI for, to set a callback which is triggered when the object is fully destroyed
-typedef void(__stdcall *PFN_DESTRUCTION_CALLBACK)(void* pData);
-
-[uuid(a06eb39a-50da-425b-8c31-4eecd6c270f3), object, local, pointer_default(unique)]
-interface ID3DDestructionNotifier
- : IUnknown
-{
- HRESULT RegisterDestructionCallback(
- [annotation("_In_")] PFN_DESTRUCTION_CALLBACK callbackFn,
- [annotation("_In_")] void* pData,
- [annotation("_Out_")] UINT* pCallbackID
- );
- HRESULT UnregisterDestructionCallback(
- [annotation("_In_")] UINT callbackID
- );
-};
-
-typedef enum _D3D_INCLUDE_TYPE
-{
- D3D_INCLUDE_LOCAL,
- D3D_INCLUDE_SYSTEM,
-
- D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL,
- D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM,
-
- // force 32-bit size enum
- D3D_INCLUDE_FORCE_DWORD = 0x7fffffff
-} D3D_INCLUDE_TYPE;
-
-//----------------------------------------------------------------------------
-// ID3DInclude:
-// -------------
-// This interface is intended to be implemented by the application, and can
-// be used by various D3D APIs. This enables application-specific handling
-// of #include directives in source files.
-//
-// Open()
-// Opens an include file. If successful, it should fill in ppData and
-// pBytes. The data pointer returned must remain valid until Close is
-// subsequently called. The name of the file is encoded in UTF-8 format.
-// Close()
-// Closes an include file. If Open was successful, Close is guaranteed
-// to be called before the API using this interface returns.
-//----------------------------------------------------------------------------
-
-cpp_quote("typedef interface ID3DInclude ID3DInclude;")
-
-cpp_quote("#undef INTERFACE")
-cpp_quote("#define INTERFACE ID3DInclude")
-
-cpp_quote("DECLARE_INTERFACE(ID3DInclude)")
-cpp_quote("{")
-cpp_quote(" STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE;")
-cpp_quote(" STDMETHOD(Close)(THIS_ LPCVOID pData) PURE;")
-cpp_quote("};")
-
-cpp_quote("typedef ID3DInclude* LPD3DINCLUDE;")
-
-//----------------------------------------------------------------------------
-//
-// Shader reflection information.
-//
-//----------------------------------------------------------------------------
-
-typedef enum _D3D_SHADER_VARIABLE_CLASS
-{
- D3D_SVC_SCALAR,
- D3D_SVC_VECTOR,
- D3D_SVC_MATRIX_ROWS,
- D3D_SVC_MATRIX_COLUMNS,
- D3D_SVC_OBJECT,
- D3D_SVC_STRUCT,
- D3D_SVC_INTERFACE_CLASS,
- D3D_SVC_INTERFACE_POINTER,
-
- D3D10_SVC_SCALAR = D3D_SVC_SCALAR,
- D3D10_SVC_VECTOR = D3D_SVC_VECTOR,
- D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS,
- D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS,
- D3D10_SVC_OBJECT = D3D_SVC_OBJECT,
- D3D10_SVC_STRUCT = D3D_SVC_STRUCT,
-
- D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS,
- D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER,
-
- // force 32-bit size enum
- D3D_SVC_FORCE_DWORD = 0x7fffffff
-} D3D_SHADER_VARIABLE_CLASS;
-
-typedef enum _D3D_SHADER_VARIABLE_FLAGS
-{
- D3D_SVF_USERPACKED = 1,
- D3D_SVF_USED = 2,
-
- D3D_SVF_INTERFACE_POINTER = 4,
- D3D_SVF_INTERFACE_PARAMETER = 8,
-
- D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED,
- D3D10_SVF_USED = D3D_SVF_USED,
-
- D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER,
- D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER,
-
- // force 32-bit size enum
- D3D_SVF_FORCE_DWORD = 0x7fffffff
-} D3D_SHADER_VARIABLE_FLAGS;
-
-typedef enum _D3D_SHADER_VARIABLE_TYPE
-{
- D3D_SVT_VOID = 0,
- D3D_SVT_BOOL = 1,
- D3D_SVT_INT = 2,
- D3D_SVT_FLOAT = 3,
- D3D_SVT_STRING = 4,
- D3D_SVT_TEXTURE = 5,
- D3D_SVT_TEXTURE1D = 6,
- D3D_SVT_TEXTURE2D = 7,
- D3D_SVT_TEXTURE3D = 8,
- D3D_SVT_TEXTURECUBE = 9,
- D3D_SVT_SAMPLER = 10,
- D3D_SVT_SAMPLER1D = 11,
- D3D_SVT_SAMPLER2D = 12,
- D3D_SVT_SAMPLER3D = 13,
- D3D_SVT_SAMPLERCUBE = 14,
- D3D_SVT_PIXELSHADER = 15,
- D3D_SVT_VERTEXSHADER = 16,
- D3D_SVT_PIXELFRAGMENT = 17,
- D3D_SVT_VERTEXFRAGMENT = 18,
- D3D_SVT_UINT = 19,
- D3D_SVT_UINT8 = 20,
- D3D_SVT_GEOMETRYSHADER = 21,
- D3D_SVT_RASTERIZER = 22,
- D3D_SVT_DEPTHSTENCIL = 23,
- D3D_SVT_BLEND = 24,
- D3D_SVT_BUFFER = 25,
- D3D_SVT_CBUFFER = 26,
- D3D_SVT_TBUFFER = 27,
- D3D_SVT_TEXTURE1DARRAY = 28,
- D3D_SVT_TEXTURE2DARRAY = 29,
- D3D_SVT_RENDERTARGETVIEW = 30,
- D3D_SVT_DEPTHSTENCILVIEW = 31,
-
- D3D_SVT_TEXTURE2DMS = 32,
- D3D_SVT_TEXTURE2DMSARRAY = 33,
-
- D3D_SVT_TEXTURECUBEARRAY = 34,
-
- D3D_SVT_HULLSHADER = 35,
- D3D_SVT_DOMAINSHADER = 36,
-
- D3D_SVT_INTERFACE_POINTER = 37,
- D3D_SVT_COMPUTESHADER = 38,
-
- D3D_SVT_DOUBLE = 39,
-
- D3D_SVT_RWTEXTURE1D = 40,
- D3D_SVT_RWTEXTURE1DARRAY = 41,
- D3D_SVT_RWTEXTURE2D = 42,
- D3D_SVT_RWTEXTURE2DARRAY = 43,
- D3D_SVT_RWTEXTURE3D = 44,
- D3D_SVT_RWBUFFER = 45,
-
- D3D_SVT_BYTEADDRESS_BUFFER = 46,
- D3D_SVT_RWBYTEADDRESS_BUFFER = 47,
- D3D_SVT_STRUCTURED_BUFFER = 48,
- D3D_SVT_RWSTRUCTURED_BUFFER = 49,
- D3D_SVT_APPEND_STRUCTURED_BUFFER = 50,
- D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51,
-
- D3D_SVT_MIN8FLOAT = 52,
- D3D_SVT_MIN10FLOAT = 53,
- D3D_SVT_MIN16FLOAT = 54,
- D3D_SVT_MIN12INT = 55,
- D3D_SVT_MIN16INT = 56,
- D3D_SVT_MIN16UINT = 57,
-
- D3D10_SVT_VOID = D3D_SVT_VOID,
- D3D10_SVT_BOOL = D3D_SVT_BOOL,
- D3D10_SVT_INT = D3D_SVT_INT,
- D3D10_SVT_FLOAT = D3D_SVT_FLOAT,
- D3D10_SVT_STRING = D3D_SVT_STRING,
- D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE,
- D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D,
- D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D,
- D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D,
- D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE,
- D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER,
- D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D,
- D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D,
- D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D,
- D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE,
- D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER,
- D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER,
- D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT,
- D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT,
- D3D10_SVT_UINT = D3D_SVT_UINT,
- D3D10_SVT_UINT8 = D3D_SVT_UINT8,
- D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER,
- D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER,
- D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL,
- D3D10_SVT_BLEND = D3D_SVT_BLEND,
- D3D10_SVT_BUFFER = D3D_SVT_BUFFER,
- D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER,
- D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER,
- D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY,
- D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY,
- D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW,
- D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW,
-
- D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS,
- D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY,
-
- D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY,
-
- D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER,
- D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER,
-
- D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER,
- D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER,
-
- D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE,
-
- D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D,
- D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY,
- D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D,
- D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY,
- D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D,
- D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER,
-
- D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER,
- D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER,
- D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER,
- D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER,
- D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER,
- D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER,
-
- // force 32-bit size enum
- D3D_SVT_FORCE_DWORD = 0x7fffffff
-} D3D_SHADER_VARIABLE_TYPE;
-
-typedef enum _D3D_SHADER_INPUT_FLAGS
-{
- D3D_SIF_USERPACKED = 0x01,
- D3D_SIF_COMPARISON_SAMPLER = 0x02, // is this a comparison sampler?
- D3D_SIF_TEXTURE_COMPONENT_0 = 0x04, // this 2-bit value encodes c - 1, where c
- D3D_SIF_TEXTURE_COMPONENT_1 = 0x08, // is the number of components in the texture
- D3D_SIF_TEXTURE_COMPONENTS = 0x0c,
- D3D_SIF_UNUSED = 0x10,
-
- D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED,
- D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER,
- D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0,
- D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1,
- D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS,
-
- // force 32-bit size enum
- D3D_SIF_FORCE_DWORD = 0x7fffffff
-} D3D_SHADER_INPUT_FLAGS;
-
-typedef enum _D3D_SHADER_INPUT_TYPE
-{
- D3D_SIT_CBUFFER,
- D3D_SIT_TBUFFER,
- D3D_SIT_TEXTURE,
- D3D_SIT_SAMPLER,
- D3D_SIT_UAV_RWTYPED,
- D3D_SIT_STRUCTURED,
- D3D_SIT_UAV_RWSTRUCTURED,
- D3D_SIT_BYTEADDRESS,
- D3D_SIT_UAV_RWBYTEADDRESS,
- D3D_SIT_UAV_APPEND_STRUCTURED,
- D3D_SIT_UAV_CONSUME_STRUCTURED,
- D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
- D3D_SIT_RTACCELERATIONSTRUCTURE,
- D3D_SIT_UAV_FEEDBACKTEXTURE,
-
- D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER,
- D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER,
- D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE,
- D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER,
-
- D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED,
- D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED,
- D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED,
- D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS,
- D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS,
- D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED,
- D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED,
- D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
-} D3D_SHADER_INPUT_TYPE;
-
-typedef enum _D3D_SHADER_CBUFFER_FLAGS
-{
- D3D_CBF_USERPACKED = 1,
-
- D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED,
-
- // force 32-bit size enum
- D3D_CBF_FORCE_DWORD = 0x7fffffff
-} D3D_SHADER_CBUFFER_FLAGS;
-
-typedef enum _D3D_CBUFFER_TYPE
-{
- D3D_CT_CBUFFER,
- D3D_CT_TBUFFER,
- D3D_CT_INTERFACE_POINTERS,
- D3D_CT_RESOURCE_BIND_INFO,
-
- D3D10_CT_CBUFFER = D3D_CT_CBUFFER,
- D3D10_CT_TBUFFER = D3D_CT_TBUFFER,
-
- D3D11_CT_CBUFFER = D3D_CT_CBUFFER,
- D3D11_CT_TBUFFER = D3D_CT_TBUFFER,
- D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS,
- D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO,
-} D3D_CBUFFER_TYPE;
-
-typedef enum D3D_NAME
-{
- D3D_NAME_UNDEFINED = 0,
-
- // Names meaningful to both HLSL and hardware
- D3D_NAME_POSITION = 1,
- D3D_NAME_CLIP_DISTANCE = 2,
- D3D_NAME_CULL_DISTANCE = 3,
- D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
- D3D_NAME_VIEWPORT_ARRAY_INDEX = 5,
- D3D_NAME_VERTEX_ID = 6,
- D3D_NAME_PRIMITIVE_ID = 7,
- D3D_NAME_INSTANCE_ID = 8,
- D3D_NAME_IS_FRONT_FACE = 9,
- D3D_NAME_SAMPLE_INDEX = 10,
- D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11,
- D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12,
- D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13,
- D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14,
- D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15,
- D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16,
- D3D_NAME_BARYCENTRICS = 23,
- D3D_NAME_SHADINGRATE = 24,
- D3D_NAME_CULLPRIMITIVE = 25,
-
- // Names meaningful to HLSL only
- D3D_NAME_TARGET = 64,
- D3D_NAME_DEPTH = 65,
- D3D_NAME_COVERAGE = 66,
- D3D_NAME_DEPTH_GREATER_EQUAL = 67,
- D3D_NAME_DEPTH_LESS_EQUAL = 68,
- D3D_NAME_STENCIL_REF = 69,
- D3D_NAME_INNER_COVERAGE = 70,
-
- D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED,
- D3D10_NAME_POSITION = D3D_NAME_POSITION,
- D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE,
- D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE,
- D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX,
- D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX,
- D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID,
- D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID,
- D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID,
- D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE,
- D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX,
- D3D10_NAME_TARGET = D3D_NAME_TARGET,
- D3D10_NAME_DEPTH = D3D_NAME_DEPTH,
- D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE,
-
- D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR,
- D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR,
- D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR,
- D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR,
- D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR,
- D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR,
- D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL,
- D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL,
-
- D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF,
- D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE,
-
- D3D12_NAME_BARYCENTRICS = D3D_NAME_BARYCENTRICS,
- D3D12_NAME_SHADINGRATE = D3D_NAME_SHADINGRATE,
- D3D12_NAME_CULLPRIMITIVE = D3D_NAME_CULLPRIMITIVE,
-} D3D_NAME;
-
-typedef enum D3D_RESOURCE_RETURN_TYPE
-{
- D3D_RETURN_TYPE_UNORM = 1,
- D3D_RETURN_TYPE_SNORM = 2,
- D3D_RETURN_TYPE_SINT = 3,
- D3D_RETURN_TYPE_UINT = 4,
- D3D_RETURN_TYPE_FLOAT = 5,
- D3D_RETURN_TYPE_MIXED = 6,
- D3D_RETURN_TYPE_DOUBLE = 7,
- D3D_RETURN_TYPE_CONTINUED = 8,
-
- D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM,
- D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM,
- D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT,
- D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT,
- D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT,
- D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED,
-
- D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM,
- D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM,
- D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT,
- D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT,
- D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT,
- D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED,
- D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE,
- D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED,
-} D3D_RESOURCE_RETURN_TYPE;
-
-typedef enum D3D_REGISTER_COMPONENT_TYPE
-{
- D3D_REGISTER_COMPONENT_UNKNOWN = 0,
- D3D_REGISTER_COMPONENT_UINT32 = 1,
- D3D_REGISTER_COMPONENT_SINT32 = 2,
- D3D_REGISTER_COMPONENT_FLOAT32 = 3,
-
- D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN,
- D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32,
- D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32,
- D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32,
-} D3D_REGISTER_COMPONENT_TYPE;
-
-typedef enum D3D_TESSELLATOR_DOMAIN
-{
- D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0,
- D3D_TESSELLATOR_DOMAIN_ISOLINE = 1,
- D3D_TESSELLATOR_DOMAIN_TRI = 2,
- D3D_TESSELLATOR_DOMAIN_QUAD = 3,
-
- D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED,
- D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE,
- D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI,
- D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD,
-} D3D_TESSELLATOR_DOMAIN;
-
-typedef enum D3D_TESSELLATOR_PARTITIONING
-{
- D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
- D3D_TESSELLATOR_PARTITIONING_INTEGER = 1,
- D3D_TESSELLATOR_PARTITIONING_POW2 = 2,
- D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
- D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
-
- D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED,
- D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER,
- D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2,
- D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD,
- D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN,
-} D3D_TESSELLATOR_PARTITIONING;
-
-typedef enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE
-{
- D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0,
- D3D_TESSELLATOR_OUTPUT_POINT = 1,
- D3D_TESSELLATOR_OUTPUT_LINE = 2,
- D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
- D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4,
-
- D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED,
- D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT,
- D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE,
- D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW,
- D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW,
-} D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
-
-typedef enum D3D_MIN_PRECISION
-{
- D3D_MIN_PRECISION_DEFAULT = 0, // Default precision for the shader model
- D3D_MIN_PRECISION_FLOAT_16 = 1, // Min 16 bit/component float
- D3D_MIN_PRECISION_FLOAT_2_8 = 2, // Min 10(2.8)bit/comp. float
- D3D_MIN_PRECISION_RESERVED = 3, // Reserved for future use
- D3D_MIN_PRECISION_SINT_16 = 4, // Min 16 bit/comp. signed integer
- D3D_MIN_PRECISION_UINT_16 = 5, // Min 16 bit/comp. unsigned integer
-
- // These values are abstractions of width only for use in situations
- // where a general width is needed instead of specific types. They
- // will never be used in shader operands.
- D3D_MIN_PRECISION_ANY_16 = 0xf0,
- D3D_MIN_PRECISION_ANY_10 = 0xf1,
-} D3D_MIN_PRECISION;
-
-typedef enum D3D_INTERPOLATION_MODE
-{
- D3D_INTERPOLATION_UNDEFINED = 0,
- D3D_INTERPOLATION_CONSTANT = 1,
- D3D_INTERPOLATION_LINEAR = 2,
- D3D_INTERPOLATION_LINEAR_CENTROID = 3,
- D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4,
- D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5,
- D3D_INTERPOLATION_LINEAR_SAMPLE = 6,
- D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7,
-} D3D_INTERPOLATION_MODE;
-
-// Parameter flags.
-typedef enum _D3D_PARAMETER_FLAGS
-{
- D3D_PF_NONE = 0x00000000,
- D3D_PF_IN = 0x00000001,
- D3D_PF_OUT = 0x00000002,
- D3D_PF_FORCE_DWORD = 0x7fffffff
-} D3D_PARAMETER_FLAGS;
-
-// Well-Known Private Data IDs (WKPDID_*):
-
-// WKPDID_D3DDebugObjectName provides a unique name to objects in order to assist the developer during debugging.
-//
-// const char c_szName[] = "texture.jpg";
-// pObject->SetPrivateData( WKPDID_D3DDebugObjectName, sizeof( c_szName ) - 1, c_szName );
-cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);")
-cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectNameW,0x4cca5fd8,0x921f,0x42c8,0x85,0x66,0x70,0xca,0xf2,0xa9,0xb7,0x41);")
-cpp_quote("DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x00, 0xad, 0x26, 0x6b, 0xb2);")
-cpp_quote("DEFINE_GUID(WKPDID_D3D12UniqueObjectId, 0x1b39de15, 0xec04, 0x4bae, 0xba, 0x4d, 0x8c, 0xef, 0x79, 0xfc, 0x04, 0xc1);")
-
-cpp_quote("#define D3D_SET_OBJECT_NAME_N_A(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectName, Chars, pName)")
-cpp_quote("#define D3D_SET_OBJECT_NAME_A(pObject, pName) D3D_SET_OBJECT_NAME_N_A(pObject, lstrlenA(pName), pName)")
-cpp_quote("#define D3D_SET_OBJECT_NAME_N_W(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectNameW, Chars*2, pName)")
-cpp_quote("#define D3D_SET_OBJECT_NAME_W(pObject, pName) D3D_SET_OBJECT_NAME_N_W(pObject, wcslen(pName), pName)")
-
-cpp_quote("#define D3D_COMPONENT_MASK_X 1")
-cpp_quote("#define D3D_COMPONENT_MASK_Y 2")
-cpp_quote("#define D3D_COMPONENT_MASK_Z 4")
-cpp_quote("#define D3D_COMPONENT_MASK_W 8")
-
-cpp_quote("DEFINE_GUID(D3D_TEXTURE_LAYOUT_ROW_MAJOR,0xb5dc234f,0x72bb,0x4bec,0x97,0x05,0x8c,0xf2,0x58,0xdf,0x6b,0x6c);") // Feature_D3D1XDisplayable
-cpp_quote("DEFINE_GUID(D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE,0x4c0f29e3,0x3f5f,0x4d35,0x84,0xc9,0xbc,0x09,0x83,0xb6,0x2c,0x28);") // Feature_D3D1XDisplayable
-
diff --git a/WickedEngine/Utility/dx12/d3d12.h b/WickedEngine/Utility/dx12/d3d12.h
index 967456aa2..0cac34370 100644
--- a/WickedEngine/Utility/dx12/d3d12.h
+++ b/WickedEngine/Utility/dx12/d3d12.h
@@ -1,6 +1,7 @@
/*-------------------------------------------------------------------------------------
*
* Copyright (c) Microsoft Corporation
+ * Licensed under the MIT license
*
*-------------------------------------------------------------------------------------*/
@@ -8,7 +9,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.01.0624 */
+ /* File created by MIDL compiler version 8.01.0625 */
@@ -444,8 +445,8 @@ typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6;
/* header files for imported files */
-#include "oaidl.h"
-#include "ocidl.h"
+#include "OAIdl.h"
+#include "OCIdl.h"
#include "dxgicommon.h"
#include "dxgiformat.h"
#include "d3dcommon.h"
@@ -2079,7 +2080,8 @@ enum D3D12_FEATURE
D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
D3D12_FEATURE_D3D12_OPTIONS8 = 36,
D3D12_FEATURE_D3D12_OPTIONS9 = 37,
- D3D12_FEATURE_D3D12_OPTIONS10 = 39
+ D3D12_FEATURE_D3D12_OPTIONS10 = 39,
+ D3D12_FEATURE_D3D12_OPTIONS11 = 40
} D3D12_FEATURE;
typedef
@@ -2341,7 +2343,9 @@ enum D3D12_SHADER_CACHE_SUPPORT_FLAGS
D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8,
- D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10
+ D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10,
+ D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20,
+ D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40
} D3D12_SHADER_CACHE_SUPPORT_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS );
@@ -2525,6 +2529,11 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10
_Out_ BOOL MeshShaderPerPrimitiveShadingRateSupported;
} D3D12_FEATURE_DATA_D3D12_OPTIONS10;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11
+ {
+ _Out_ BOOL AtomicInt64OnDescriptorHeapResourceSupported;
+ } D3D12_FEATURE_DATA_D3D12_OPTIONS11;
+
typedef struct D3D12_RESOURCE_ALLOCATION_INFO
{
UINT64 SizeInBytes;
@@ -4372,10 +4381,6 @@ EXTERN_C const IID IID_ID3D12Heap;
-
-
-
-
#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */
@@ -4595,10 +4600,6 @@ EXTERN_C const IID IID_ID3D12Resource;
-
-
-
-
#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */
@@ -5321,18 +5322,6 @@ EXTERN_C const IID IID_ID3D12DescriptorHeap;
-
-
-
-
-
-
-
-
-
-
-
-
#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */
@@ -8351,10 +8340,6 @@ EXTERN_C const IID IID_ID3D12CommandQueue;
-
-
-
-
#endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
@@ -9078,18 +9063,6 @@ EXTERN_C const IID IID_ID3D12Device;
-
-
-
-
-
-
-
-
-
-
-
-
#endif /* __ID3D12Device_INTERFACE_DEFINED__ */
@@ -11564,10 +11537,6 @@ EXTERN_C const IID IID_ID3D12ProtectedResourceSession;
-
-
-
-
#endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */
@@ -12262,10 +12231,6 @@ EXTERN_C const IID IID_ID3D12Device4;
-
-
-
-
#endif /* __ID3D12Device4_INTERFACE_DEFINED__ */
@@ -12486,10 +12451,6 @@ EXTERN_C const IID IID_ID3D12SwapChainAssistant;
-
-
-
-
#endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */
@@ -15888,10 +15849,6 @@ EXTERN_C const IID IID_ID3D12ProtectedResourceSession1;
-
-
-
-
#endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */
@@ -17542,10 +17499,6 @@ EXTERN_C const IID IID_ID3D12Device8;
-
-
-
-
#endif /* __ID3D12Device8_INTERFACE_DEFINED__ */
@@ -17957,10 +17910,6 @@ EXTERN_C const IID IID_ID3D12Resource2;
-
-
-
-
#endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */
@@ -20141,10 +20090,6 @@ EXTERN_C const IID IID_ID3D12ShaderCacheSession;
-
-
-
-
#endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */
diff --git a/WickedEngine/Utility/dx12/d3d12.idl b/WickedEngine/Utility/dx12/d3d12.idl
deleted file mode 100644
index 2057df6ec..000000000
--- a/WickedEngine/Utility/dx12/d3d12.idl
+++ /dev/null
@@ -1,5447 +0,0 @@
-/*-------------------------------------------------------------------------------------
- *
- * Copyright (c) Microsoft Corporation
- *
- *-------------------------------------------------------------------------------------*/
-import "oaidl.idl";
-import "ocidl.idl";
-
-import "dxgicommon.idl";
-import "dxgiformat.idl";
-
-import "d3dcommon.idl";
-
-cpp_quote("#include ")
-
-#pragma region App Family
-cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)")
-
-// NOTE: The following constants are generated from the D3D12 hardware spec. Do not edit these values directly.
-cpp_quote( "#ifndef _D3D12_CONSTANTS" )
-cpp_quote( "#define _D3D12_CONSTANTS" )
-const UINT D3D12_16BIT_INDEX_STRIP_CUT_VALUE = 0xffff;
-const UINT D3D12_32BIT_INDEX_STRIP_CUT_VALUE = 0xffffffff;
-const UINT D3D12_8BIT_INDEX_STRIP_CUT_VALUE = 0xff;
-const UINT D3D12_APPEND_ALIGNED_ELEMENT = 0xffffffff;
-const UINT D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9;
-const UINT D3D12_CLIP_OR_CULL_DISTANCE_COUNT = 8;
-const UINT D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2;
-const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14;
-const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4;
-const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15;
-const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT = 16;
-const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
-const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15;
-const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
-const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
-const UINT D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64;
-const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
-const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1;
-const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
-const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
-const UINT D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1;
-const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128;
-const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1;
-const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1;
-const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128;
-const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1;
-const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16;
-const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1;
-const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1;
-const UINT D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT = 16;
-const UINT D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32;
-const UINT D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4;
-const UINT D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_COMMONSHADER_TEMP_REGISTER_COUNT = 4096;
-const UINT D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3;
-const UINT D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3;
-const UINT D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10;
-const INT D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10;
-const INT D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8;
-const UINT D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7;
-const UINT D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT = 256;
-const UINT D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 256;
-const UINT D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP = 64;
-const UINT D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 240;
-const UINT D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP = 68;
-const UINT D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 224;
-const UINT D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP = 72;
-const UINT D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 208;
-const UINT D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP = 76;
-const UINT D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 192;
-const UINT D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP = 84;
-const UINT D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 176;
-const UINT D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP = 92;
-const UINT D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 160;
-const UINT D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP = 100;
-const UINT D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 144;
-const UINT D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP = 112;
-const UINT D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 128;
-const UINT D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP = 128;
-const UINT D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 112;
-const UINT D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP = 144;
-const UINT D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 96;
-const UINT D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP = 168;
-const UINT D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 80;
-const UINT D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP = 204;
-const UINT D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 64;
-const UINT D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP = 256;
-const UINT D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 48;
-const UINT D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP = 340;
-const UINT D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 32;
-const UINT D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP = 512;
-const UINT D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 16;
-const UINT D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP = 768;
-const UINT D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION = 1;
-const UINT D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT = 256;
-const UINT D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP = 768;
-const UINT D3D12_CS_4_X_THREAD_GROUP_MAX_X = 768;
-const UINT D3D12_CS_4_X_THREAD_GROUP_MAX_Y = 768;
-const UINT D3D12_CS_4_X_UAV_REGISTER_COUNT = 1;
-const UINT D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION = 65535;
-const UINT D3D12_CS_TGSM_REGISTER_COUNT = 8192;
-const UINT D3D12_CS_TGSM_REGISTER_READS_PER_INST = 1;
-const UINT D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = 1;
-const UINT D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = 1;
-const UINT D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS = 3;
-const UINT D3D12_CS_THREADGROUPID_REGISTER_COUNT = 1;
-const UINT D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS = 1;
-const UINT D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT = 1;
-const UINT D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS = 3;
-const UINT D3D12_CS_THREADIDINGROUP_REGISTER_COUNT = 1;
-const UINT D3D12_CS_THREADID_REGISTER_COMPONENTS = 3;
-const UINT D3D12_CS_THREADID_REGISTER_COUNT = 1;
-const UINT D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = 1024;
-const UINT D3D12_CS_THREAD_GROUP_MAX_X = 1024;
-const UINT D3D12_CS_THREAD_GROUP_MAX_Y = 1024;
-const UINT D3D12_CS_THREAD_GROUP_MAX_Z = 64;
-const UINT D3D12_CS_THREAD_GROUP_MIN_X = 1;
-const UINT D3D12_CS_THREAD_GROUP_MIN_Y = 1;
-const UINT D3D12_CS_THREAD_GROUP_MIN_Z = 1;
-const UINT D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = 16384;
-cpp_quote( "#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f )" )
-cpp_quote( "#define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f )" )
-cpp_quote( "#define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f )" )
-cpp_quote( "#define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f )" )
-cpp_quote( "#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f )" )
-const UINT D3D12_DEFAULT_DEPTH_BIAS = 0;
-cpp_quote( "#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f )" )
-const UINT D3D12_DEFAULT_MAX_ANISOTROPY = 16;
-cpp_quote( "#define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f )" )
-const UINT D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 4194304;
-const UINT D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0;
-const UINT D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT = 65536;
-const UINT D3D12_DEFAULT_SAMPLE_MASK = 0xffffffff;
-const UINT D3D12_DEFAULT_SCISSOR_ENDX = 0;
-const UINT D3D12_DEFAULT_SCISSOR_ENDY = 0;
-const UINT D3D12_DEFAULT_SCISSOR_STARTX = 0;
-const UINT D3D12_DEFAULT_SCISSOR_STARTY = 0;
-cpp_quote( "#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f )" )
-const UINT D3D12_DEFAULT_STENCIL_READ_MASK = 0xff;
-const UINT D3D12_DEFAULT_STENCIL_REFERENCE = 0;
-const UINT D3D12_DEFAULT_STENCIL_WRITE_MASK = 0xff;
-const UINT D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0;
-const UINT D3D12_DEFAULT_VIEWPORT_HEIGHT = 0;
-cpp_quote( "#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f )" )
-cpp_quote( "#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f )" )
-const UINT D3D12_DEFAULT_VIEWPORT_TOPLEFTX = 0;
-const UINT D3D12_DEFAULT_VIEWPORT_TOPLEFTY = 0;
-const UINT D3D12_DEFAULT_VIEWPORT_WIDTH = 0;
-const UINT D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND = 0xffffffff;
-const UINT D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END = 0xfffffff7;
-const UINT D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff0;
-const UINT D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968;
-const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT = 32;
-const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS = 1;
-const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS = 3;
-const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT = 1;
-const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS = 1;
-const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT = 32;
-const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1;
-const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1;
-const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1;
-const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1;
-const UINT D3D12_DS_OUTPUT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_DS_OUTPUT_REGISTER_COUNT = 32;
-cpp_quote( "#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 )" )
-cpp_quote( "#define D3D12_FLOAT32_MAX ( 3.402823466e+38f )" )
-cpp_quote( "#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f )" )
-cpp_quote( "#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f )" )
-cpp_quote( "#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f )" )
-cpp_quote( "#define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f )" )
-cpp_quote( "#define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f )" )
-cpp_quote( "#define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f )" )
-cpp_quote( "#define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f )" )
-cpp_quote( "#define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f )" )
-cpp_quote( "#define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f )" )
-cpp_quote( "#define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f )" )
-cpp_quote( "#define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f )" )
-const UINT D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST = 2;
-const UINT D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS = 1;
-const UINT D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS = 1;
-const UINT D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT = 1;
-const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1;
-const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1;
-const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1;
-const UINT D3D12_GS_INPUT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_GS_INPUT_REGISTER_COUNT = 32;
-const UINT D3D12_GS_INPUT_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_GS_INPUT_REGISTER_READ_PORTS = 1;
-const UINT D3D12_GS_INPUT_REGISTER_VERTICES = 32;
-const UINT D3D12_GS_MAX_INSTANCE_COUNT = 32;
-const UINT D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES = 1024;
-const UINT D3D12_GS_OUTPUT_ELEMENTS = 32;
-const UINT D3D12_GS_OUTPUT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_GS_OUTPUT_REGISTER_COUNT = 32;
-const UINT D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT = 32;
-const UINT D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT = 32;
-const UINT D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS = 1;
-const UINT D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND = 0xFFFFFFFF;
-const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS = 1;
-const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT = 1;
-const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS = 1;
-const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS = 1;
-const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT = 1;
-const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS = 1;
-const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1;
-const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1;
-const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1;
-const UINT D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND = 0xFFFFFFFF;
-cpp_quote( "#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f )" )
-cpp_quote( "#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f )" )
-const UINT D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968;
-const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS = 1;
-const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT = 1;
-const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS = 1;
-const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT = 32;
-const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1;
-const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS = 128;
-const UINT D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0;
-const UINT D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0;
-const UINT D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0;
-const UINT D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1;
-const UINT D3D12_IA_INSTANCE_ID_BIT_COUNT = 32;
-const UINT D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32;
-const UINT D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT = 32;
-const UINT D3D12_IA_PRIMITIVE_ID_BIT_COUNT = 32;
-const UINT D3D12_IA_VERTEX_ID_BIT_COUNT = 32;
-const UINT D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32;
-const UINT D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128;
-const UINT D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32;
-const UINT D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 0xffffffff;
-const UINT D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 0xffffffff;
-const UINT D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL = 0xffffffff;
-const UINT D3D12_KEEP_UNORDERED_ACCESS_VIEWS = 0xffffffff;
-cpp_quote( "#define D3D12_LINEAR_GAMMA ( 1.0f )" )
-const UINT D3D12_MAJOR_VERSION = 12;
-cpp_quote( "#define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f )" )
-cpp_quote( "#define D3D12_MAX_DEPTH ( 1.0f )" )
-const UINT D3D12_MAX_LIVE_STATIC_SAMPLERS = 2032;
-const UINT D3D12_MAX_MAXANISOTROPY = 16;
-const UINT D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT = 32;
-cpp_quote( "#define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f )" )
-const UINT D3D12_MAX_ROOT_COST = 64;
-const UINT D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 = 1000000;
-const UINT D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 = 1000000;
-const UINT D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE = 2048;
-const UINT D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17;
-const UINT D3D12_MAX_VIEW_INSTANCE_COUNT = 4;
-const UINT D3D12_MINOR_VERSION = 0;
-cpp_quote( "#define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f )" )
-cpp_quote( "#define D3D12_MIN_DEPTH ( 0.0f )" )
-const UINT D3D12_MIN_MAXANISOTROPY = 0;
-cpp_quote( "#define D3D12_MIP_LOD_BIAS_MAX ( 15.99f )" )
-cpp_quote( "#define D3D12_MIP_LOD_BIAS_MIN ( -16.0f )" )
-const UINT D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT = 8;
-const UINT D3D12_MIP_LOD_RANGE_BIT_COUNT = 8;
-cpp_quote( "#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f )" )
-const UINT D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0;
-const UINT D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END = 0xffffffff;
-const UINT D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff8;
-const UINT D3D12_PACKED_TILE = 0xffffffff;
-const UINT D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15;
-const UINT D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 16;
-const UINT D3D12_PS_CS_UAV_REGISTER_COMPONENTS = 1;
-const UINT D3D12_PS_CS_UAV_REGISTER_COUNT = 8;
-const UINT D3D12_PS_CS_UAV_REGISTER_READS_PER_INST = 1;
-const UINT D3D12_PS_CS_UAV_REGISTER_READ_PORTS = 1;
-const UINT D3D12_PS_FRONTFACING_DEFAULT_VALUE = 0xFFFFFFFF;
-const UINT D3D12_PS_FRONTFACING_FALSE_VALUE = 0x00000000;
-const UINT D3D12_PS_FRONTFACING_TRUE_VALUE = 0xFFFFFFFF;
-const UINT D3D12_PS_INPUT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_PS_INPUT_REGISTER_COUNT = 32;
-const UINT D3D12_PS_INPUT_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_PS_INPUT_REGISTER_READ_PORTS = 1;
-cpp_quote( "#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f )" )
-const UINT D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1;
-const UINT D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1;
-const UINT D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1;
-const UINT D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_PS_OUTPUT_MASK_REGISTER_COUNT = 1;
-const UINT D3D12_PS_OUTPUT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_PS_OUTPUT_REGISTER_COUNT = 8;
-cpp_quote( "#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f )" )
-const UINT D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT = 16;
-const UINT D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT = 8;
-const UINT D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT = 256;
-const UINT D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT = 16;
-const UINT D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES = 32;
-const UINT D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH = 31;
-const UINT D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE = 16777216;
-const UINT D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE = 16777216;
-const UINT D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE = 536870912;
-const UINT D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS = 1073741824;
-const UINT D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE = 4096;
-const UINT D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT = 32;
-const UINT D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT = 64;
-const UINT D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT = 16;
-const UINT D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE = 4096;
-const UINT D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27;
-const UINT D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
-const UINT D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = 4096;
-const UINT D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32;
-const UINT D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32;
-const UINT D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 16384;
-const UINT D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024;
-const UINT D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
-const UINT D3D12_REQ_MAXANISOTROPY = 16;
-const UINT D3D12_REQ_MIP_LEVELS = 15;
-const UINT D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048;
-const UINT D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = 4096;
-const UINT D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 16384;
-const UINT D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = 128;
-cpp_quote( "#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f )" )
-const UINT D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM = 2048;
-const UINT D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = 20;
-const UINT D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE = 4096;
-const UINT D3D12_REQ_SUBRESOURCES = 30720;
-const UINT D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048;
-const UINT D3D12_REQ_TEXTURE1D_U_DIMENSION = 16384;
-const UINT D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048;
-const UINT D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384;
-const UINT D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048;
-const UINT D3D12_REQ_TEXTURECUBE_DIMENSION = 16384;
-const UINT D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0;
-const UINT D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES = 0xffffffff;
-const UINT D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT = 2;
-const UINT D3D12_SDK_VERSION = 4;
-const UINT D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES = 32;
-const UINT D3D12_SHADER_MAJOR_VERSION = 5;
-const UINT D3D12_SHADER_MAX_INSTANCES = 65535;
-const UINT D3D12_SHADER_MAX_INTERFACES = 253;
-const UINT D3D12_SHADER_MAX_INTERFACE_CALL_SITES = 4096;
-const UINT D3D12_SHADER_MAX_TYPES = 65535;
-const UINT D3D12_SHADER_MINOR_VERSION = 1;
-const UINT D3D12_SHIFT_INSTRUCTION_PAD_VALUE = 0;
-const UINT D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5;
-const UINT D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT = 8;
-const UINT D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 65536;
-const UINT D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT = 4096;
-const UINT D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048;
-const UINT D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 512;
-const UINT D3D12_SO_BUFFER_SLOT_COUNT = 4;
-const UINT D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff;
-const UINT D3D12_SO_NO_RASTERIZED_STREAM = 0xffffffff;
-const UINT D3D12_SO_OUTPUT_COMPONENT_COUNT = 128;
-const UINT D3D12_SO_STREAM_COUNT = 4;
-const UINT D3D12_SPEC_DATE_DAY = 14;
-const UINT D3D12_SPEC_DATE_MONTH = 11;
-const UINT D3D12_SPEC_DATE_YEAR = 2014;
-cpp_quote( "#define D3D12_SPEC_VERSION ( 1.16 )" )
-cpp_quote( "#define D3D12_SRGB_GAMMA ( 2.2f )" )
-cpp_quote( "#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f )" )
-cpp_quote( "#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f )" )
-cpp_quote( "#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f )" )
-cpp_quote( "#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f )" )
-cpp_quote( "#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f )" )
-cpp_quote( "#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f )" )
-const UINT D3D12_STANDARD_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64;
-const UINT D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4;
-const UINT D3D12_STANDARD_PIXEL_COMPONENT_COUNT = 128;
-const UINT D3D12_STANDARD_PIXEL_ELEMENT_COUNT = 32;
-const UINT D3D12_STANDARD_VECTOR_SIZE = 4;
-const UINT D3D12_STANDARD_VERTEX_ELEMENT_COUNT = 32;
-const UINT D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64;
-const UINT D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8;
-const UINT D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT = 8;
-const UINT D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END = 0xffffffff;
-const UINT D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff0;
-const UINT D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR = 64;
-const UINT D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR = 64;
-const UINT D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR = 63;
-const UINT D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR = 64;
-const UINT D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR = 2;
-const UINT D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR = 1;
-const UINT D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR = 1;
-const UINT D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT = 16;
-const UINT D3D12_TEXTURE_DATA_PITCH_ALIGNMENT = 256;
-const UINT D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT = 512;
-const UINT D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES = 65536;
-const UINT D3D12_TRACKED_WORKLOAD_MAX_INSTANCES = 32;
-const UINT D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT = 4096;
-const UINT D3D12_UAV_SLOT_COUNT = 64;
-const UINT D3D12_UNBOUND_MEMORY_ACCESS_RESULT = 0;
-const UINT D3D12_VIDEO_DECODE_MAX_ARGUMENTS = 10;
-const UINT D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS = 4;
-const UINT D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT = 256;
-const UINT D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT = 256;
-const UINT D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN = 0xffffffff;
-const UINT D3D12_VIDEO_PROCESS_MAX_FILTERS = 32;
-const UINT D3D12_VIDEO_PROCESS_STEREO_VIEWS = 2;
-const UINT D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15;
-const UINT D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16;
-const UINT D3D12_VIEWPORT_BOUNDS_MAX = 32767;
-const INT D3D12_VIEWPORT_BOUNDS_MIN = -32768;
-const UINT D3D12_VS_INPUT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_VS_INPUT_REGISTER_COUNT = 32;
-const UINT D3D12_VS_INPUT_REGISTER_READS_PER_INST = 2;
-const UINT D3D12_VS_INPUT_REGISTER_READ_PORTS = 1;
-const UINT D3D12_VS_OUTPUT_REGISTER_COMPONENTS = 4;
-const UINT D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
-const UINT D3D12_VS_OUTPUT_REGISTER_COUNT = 32;
-const UINT D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10;
-const UINT D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25;
-const UINT D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25;
-cpp_quote( "#endif" )
-
-
-// Forward declarations
-interface ID3D12CommandQueue;
-
-
-typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
-
-typedef enum D3D12_COMMAND_LIST_TYPE
-{
- D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
- D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
- D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
- D3D12_COMMAND_LIST_TYPE_COPY = 3,
- D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4,
- D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5,
- D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6,
-
-} D3D12_COMMAND_LIST_TYPE;
-
-typedef enum D3D12_COMMAND_QUEUE_FLAGS
-{
- D3D12_COMMAND_QUEUE_FLAG_NONE = 0x0,
- D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1,
-} D3D12_COMMAND_QUEUE_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS );" )
-
-typedef enum D3D12_COMMAND_QUEUE_PRIORITY
-{
- D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
- D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
- D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
-} D3D12_COMMAND_QUEUE_PRIORITY;
-
-typedef struct D3D12_COMMAND_QUEUE_DESC
-{
- D3D12_COMMAND_LIST_TYPE Type;
- INT Priority;
- D3D12_COMMAND_QUEUE_FLAGS Flags;
- UINT NodeMask;
-} D3D12_COMMAND_QUEUE_DESC;
-
-typedef enum D3D12_PRIMITIVE_TOPOLOGY_TYPE
-{
- D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
- D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
- D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
- D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
- D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
-} D3D12_PRIMITIVE_TOPOLOGY_TYPE;
-
-typedef enum D3D12_INPUT_CLASSIFICATION
-{
- D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
- D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1
-} D3D12_INPUT_CLASSIFICATION;
-
-typedef struct D3D12_INPUT_ELEMENT_DESC
-{
- LPCSTR SemanticName;
- UINT SemanticIndex;
- DXGI_FORMAT Format;
- UINT InputSlot;
- UINT AlignedByteOffset;
- D3D12_INPUT_CLASSIFICATION InputSlotClass;
- UINT InstanceDataStepRate;
-} D3D12_INPUT_ELEMENT_DESC;
-
-// Keep FILL_MODE values in sync with earlier DX versions (HW consumes values directly).
-typedef enum D3D12_FILL_MODE
-{
- // 1 was POINT in D3D, unused in D3D12
- D3D12_FILL_MODE_WIREFRAME = 2,
- D3D12_FILL_MODE_SOLID = 3
-} D3D12_FILL_MODE;
-
-typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
-
-typedef D3D_PRIMITIVE D3D12_PRIMITIVE;
-
-// Keep CULL_MODE values in sync with earlier DX versions (HW consumes values directly).
-typedef enum D3D12_CULL_MODE
-{
- D3D12_CULL_MODE_NONE = 1,
- D3D12_CULL_MODE_FRONT = 2,
- D3D12_CULL_MODE_BACK = 3
-} D3D12_CULL_MODE;
-
-typedef struct D3D12_SO_DECLARATION_ENTRY
-{
- UINT Stream;
- LPCSTR SemanticName;
- UINT SemanticIndex;
- BYTE StartComponent;
- BYTE ComponentCount;
- BYTE OutputSlot;
-} D3D12_SO_DECLARATION_ENTRY;
-
-typedef struct D3D12_VIEWPORT
-{
- FLOAT TopLeftX;
- FLOAT TopLeftY;
- FLOAT Width;
- FLOAT Height;
- FLOAT MinDepth;
- FLOAT MaxDepth;
-} D3D12_VIEWPORT;
-
-
-typedef RECT D3D12_RECT;
-
-
-typedef struct D3D12_BOX
-{
- UINT left;
- UINT top;
- UINT front;
- UINT right;
- UINT bottom;
- UINT back;
-} D3D12_BOX;
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// Depth-Stencil State
-//
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-// Keep COMPARISON_FUNC values in sync with earlier DX versions (HW consumes values directly).
-typedef enum D3D12_COMPARISON_FUNC
-{
- D3D12_COMPARISON_FUNC_NEVER = 1,
- D3D12_COMPARISON_FUNC_LESS = 2,
- D3D12_COMPARISON_FUNC_EQUAL = 3,
- D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
- D3D12_COMPARISON_FUNC_GREATER = 5,
- D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
- D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
- D3D12_COMPARISON_FUNC_ALWAYS = 8
-} D3D12_COMPARISON_FUNC;
-
-typedef enum D3D12_DEPTH_WRITE_MASK
-{
- D3D12_DEPTH_WRITE_MASK_ZERO = 0,
- D3D12_DEPTH_WRITE_MASK_ALL = 1
-} D3D12_DEPTH_WRITE_MASK;
-
-// Keep STENCILOP values in sync with earlier DX versions (HW consumes values directly).
-typedef enum D3D12_STENCIL_OP
-{
- D3D12_STENCIL_OP_KEEP = 1,
- D3D12_STENCIL_OP_ZERO = 2,
- D3D12_STENCIL_OP_REPLACE = 3,
- D3D12_STENCIL_OP_INCR_SAT = 4,
- D3D12_STENCIL_OP_DECR_SAT = 5,
- D3D12_STENCIL_OP_INVERT = 6,
- D3D12_STENCIL_OP_INCR = 7,
- D3D12_STENCIL_OP_DECR = 8
-} D3D12_STENCIL_OP;
-
-typedef struct D3D12_DEPTH_STENCILOP_DESC
-{
- D3D12_STENCIL_OP StencilFailOp;
- D3D12_STENCIL_OP StencilDepthFailOp;
- D3D12_STENCIL_OP StencilPassOp;
- D3D12_COMPARISON_FUNC StencilFunc;
-} D3D12_DEPTH_STENCILOP_DESC;
-
-typedef struct D3D12_DEPTH_STENCIL_DESC
-{
- BOOL DepthEnable;
- D3D12_DEPTH_WRITE_MASK DepthWriteMask;
- D3D12_COMPARISON_FUNC DepthFunc;
- BOOL StencilEnable;
- UINT8 StencilReadMask;
- UINT8 StencilWriteMask;
- D3D12_DEPTH_STENCILOP_DESC FrontFace;
- D3D12_DEPTH_STENCILOP_DESC BackFace;
-} D3D12_DEPTH_STENCIL_DESC;
-
-typedef struct D3D12_DEPTH_STENCIL_DESC1
-{
- BOOL DepthEnable;
- D3D12_DEPTH_WRITE_MASK DepthWriteMask;
- D3D12_COMPARISON_FUNC DepthFunc;
- BOOL StencilEnable;
- UINT8 StencilReadMask;
- UINT8 StencilWriteMask;
- D3D12_DEPTH_STENCILOP_DESC FrontFace;
- D3D12_DEPTH_STENCILOP_DESC BackFace;
- BOOL DepthBoundsTestEnable;
-} D3D12_DEPTH_STENCIL_DESC1;
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// Blend State
-//
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-// Keep BLEND values in sync with earlier DX versions (HW consumes values directly).
-typedef enum D3D12_BLEND
-{
- D3D12_BLEND_ZERO = 1,
- D3D12_BLEND_ONE = 2,
- D3D12_BLEND_SRC_COLOR = 3, // PS output oN.rgb (N is current RT being blended)
- D3D12_BLEND_INV_SRC_COLOR = 4, // 1.0f - PS output oN.rgb
- D3D12_BLEND_SRC_ALPHA = 5, // PS output oN.a
- D3D12_BLEND_INV_SRC_ALPHA = 6, // 1.0f - PS output oN.a
- D3D12_BLEND_DEST_ALPHA = 7, // RT(N).a (N is current RT being blended)
- D3D12_BLEND_INV_DEST_ALPHA = 8, // 1.0f - RT(N).a
- D3D12_BLEND_DEST_COLOR = 9, // RT(N).rgb
- D3D12_BLEND_INV_DEST_COLOR = 10,// 1.0f - RT(N).rgb
- D3D12_BLEND_SRC_ALPHA_SAT = 11,// (f,f,f,1), f = min(1 - RT(N).a, oN.a)
- // 12 reserved (was BOTHSRCALPHA)
- // 13 reserved (was BOTHSRCALPHA)
- D3D12_BLEND_BLEND_FACTOR = 14,
- D3D12_BLEND_INV_BLEND_FACTOR = 15,
- D3D12_BLEND_SRC1_COLOR = 16, // PS output o1.rgb
- D3D12_BLEND_INV_SRC1_COLOR = 17, // 1.0f - PS output o1.rgb
- D3D12_BLEND_SRC1_ALPHA = 18, // PS output o1.a
- D3D12_BLEND_INV_SRC1_ALPHA = 19, // 1.0f - PS output o1.a
-} D3D12_BLEND;
-
-// Keep BLENDOP values in sync with earlier DX versions (HW consumes values directly).
-typedef enum D3D12_BLEND_OP
-{
- D3D12_BLEND_OP_ADD = 1,
- D3D12_BLEND_OP_SUBTRACT = 2,
- D3D12_BLEND_OP_REV_SUBTRACT = 3,
- D3D12_BLEND_OP_MIN = 4, // min semantics are like min shader instruction
- D3D12_BLEND_OP_MAX = 5, // max semantics are like max shader instruction
-} D3D12_BLEND_OP;
-
-typedef enum D3D12_COLOR_WRITE_ENABLE
-{
- D3D12_COLOR_WRITE_ENABLE_RED = 1,
- D3D12_COLOR_WRITE_ENABLE_GREEN = 2,
- D3D12_COLOR_WRITE_ENABLE_BLUE = 4,
- D3D12_COLOR_WRITE_ENABLE_ALPHA = 8,
- D3D12_COLOR_WRITE_ENABLE_ALL = (D3D12_COLOR_WRITE_ENABLE_RED|D3D12_COLOR_WRITE_ENABLE_GREEN|
- D3D12_COLOR_WRITE_ENABLE_BLUE|D3D12_COLOR_WRITE_ENABLE_ALPHA),
-} D3D12_COLOR_WRITE_ENABLE;
-
-typedef enum D3D12_LOGIC_OP
-{
- // Operation:
- // (s == PS output, d = RTV contents)
- D3D12_LOGIC_OP_CLEAR = 0, // 0
- D3D12_LOGIC_OP_SET, // 1
- D3D12_LOGIC_OP_COPY, // s
- D3D12_LOGIC_OP_COPY_INVERTED, // ~s
- D3D12_LOGIC_OP_NOOP, // d
- D3D12_LOGIC_OP_INVERT, // ~d
- D3D12_LOGIC_OP_AND, // s & d
- D3D12_LOGIC_OP_NAND, // ~(s & d)
- D3D12_LOGIC_OP_OR, // s | d
- D3D12_LOGIC_OP_NOR, // ~(s | d)
- D3D12_LOGIC_OP_XOR, // s ^ d
- D3D12_LOGIC_OP_EQUIV, // ~(s ^ d)
- D3D12_LOGIC_OP_AND_REVERSE, // s & ~d
- D3D12_LOGIC_OP_AND_INVERTED, // ~s & d
- D3D12_LOGIC_OP_OR_REVERSE, // s | ~d
- D3D12_LOGIC_OP_OR_INVERTED, // ~s | d
-} D3D12_LOGIC_OP;
-
-typedef struct D3D12_RENDER_TARGET_BLEND_DESC
-{
- BOOL BlendEnable;
- BOOL LogicOpEnable; // LogicOpEnable and BlendEnable can't both be true
- D3D12_BLEND SrcBlend;
- D3D12_BLEND DestBlend;
- D3D12_BLEND_OP BlendOp;
- D3D12_BLEND SrcBlendAlpha;
- D3D12_BLEND DestBlendAlpha;
- D3D12_BLEND_OP BlendOpAlpha;
- D3D12_LOGIC_OP LogicOp; // applies to RGBA
- UINT8 RenderTargetWriteMask; // D3D12_COLOR_WRITE_ENABLE
-} D3D12_RENDER_TARGET_BLEND_DESC;
-
-typedef struct D3D12_BLEND_DESC
-{
- BOOL AlphaToCoverageEnable; // relevant to multisample antialiasing only
- BOOL IndependentBlendEnable; // if FALSE, then replicate the first entry in RenderTarget array to other entries
- D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT];
-} D3D12_BLEND_DESC;
-
-cpp_quote( "/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT. ")
-cpp_quote( " IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */" )
-
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// Rasterizer State
-//
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-typedef enum D3D12_CONSERVATIVE_RASTERIZATION_MODE
-{
- D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, // Default
- D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1,
-} D3D12_CONSERVATIVE_RASTERIZATION_MODE;
-
-typedef struct D3D12_RASTERIZER_DESC
-{
- D3D12_FILL_MODE FillMode;
- D3D12_CULL_MODE CullMode;
- BOOL FrontCounterClockwise;
- INT DepthBias;
- FLOAT DepthBiasClamp;
- FLOAT SlopeScaledDepthBias;
- BOOL DepthClipEnable;
- BOOL MultisampleEnable;
- BOOL AntialiasedLineEnable;
- UINT ForcedSampleCount;
- D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
-} D3D12_RASTERIZER_DESC;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// Pipeline State v1
-//
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-[ uuid( c54a6b66-72df-4ee8-8be5-a946a1429214 ), object, local, pointer_default( unique ) ]
-interface ID3D12RootSignature
- : ID3D12DeviceChild
-{
-}
-
-typedef struct D3D12_SHADER_BYTECODE
-{
- [annotation("_Field_size_bytes_full_(BytecodeLength)")] const void* pShaderBytecode;
- SIZE_T BytecodeLength;
-} D3D12_SHADER_BYTECODE;
-
-typedef struct D3D12_STREAM_OUTPUT_DESC
-{
- [annotation("_Field_size_full_(NumEntries)")] const D3D12_SO_DECLARATION_ENTRY* pSODeclaration;
- UINT NumEntries;
- [annotation("_Field_size_full_(NumStrides)")] const UINT* pBufferStrides;
- UINT NumStrides;
- UINT RasterizedStream;
-} D3D12_STREAM_OUTPUT_DESC;
-
-typedef struct D3D12_INPUT_LAYOUT_DESC
-{
- [annotation("_Field_size_full_(NumElements)")] const D3D12_INPUT_ELEMENT_DESC* pInputElementDescs;
- UINT NumElements;
-} D3D12_INPUT_LAYOUT_DESC;
-
-typedef enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
-{
- D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
- D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
- D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2
-} D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
-
-typedef struct D3D12_CACHED_PIPELINE_STATE
-{
- [annotation("_Field_size_bytes_full_(CachedBlobSizeInBytes)")] const void* pCachedBlob;
- SIZE_T CachedBlobSizeInBytes;
-} D3D12_CACHED_PIPELINE_STATE;
-
-typedef enum D3D12_PIPELINE_STATE_FLAGS
-{
- D3D12_PIPELINE_STATE_FLAG_NONE = 0x0,
- D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1,
-
-} D3D12_PIPELINE_STATE_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS );" )
-
-typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC
-{
- ID3D12RootSignature* pRootSignature;
- D3D12_SHADER_BYTECODE VS;
- D3D12_SHADER_BYTECODE PS;
- D3D12_SHADER_BYTECODE DS;
- D3D12_SHADER_BYTECODE HS;
- D3D12_SHADER_BYTECODE GS;
- D3D12_STREAM_OUTPUT_DESC StreamOutput;
- D3D12_BLEND_DESC BlendState;
- UINT SampleMask;
- D3D12_RASTERIZER_DESC RasterizerState;
- D3D12_DEPTH_STENCIL_DESC DepthStencilState;
- D3D12_INPUT_LAYOUT_DESC InputLayout;
- D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
- D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
- UINT NumRenderTargets;
- DXGI_FORMAT RTVFormats[ D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ];
- DXGI_FORMAT DSVFormat;
- DXGI_SAMPLE_DESC SampleDesc;
- UINT NodeMask;
- D3D12_CACHED_PIPELINE_STATE CachedPSO;
- D3D12_PIPELINE_STATE_FLAGS Flags;
-} D3D12_GRAPHICS_PIPELINE_STATE_DESC;
-
-typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC
-{
- ID3D12RootSignature* pRootSignature;
- D3D12_SHADER_BYTECODE CS;
- UINT NodeMask;
- D3D12_CACHED_PIPELINE_STATE CachedPSO;
- D3D12_PIPELINE_STATE_FLAGS Flags;
-} D3D12_COMPUTE_PIPELINE_STATE_DESC;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// Pipeline State v2
-//
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-struct D3D12_RT_FORMAT_ARRAY
-{
- DXGI_FORMAT RTFormats[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT];
- UINT NumRenderTargets;
-};
-
-typedef struct D3D12_PIPELINE_STATE_STREAM_DESC
-{
- [annotation("_In_")] SIZE_T SizeInBytes;
- [annotation("_In_reads_(_Inexpressible_(\"Dependent on size of subobjects\"))")] void* pPipelineStateSubobjectStream;
-} D3D12_PIPELINE_STATE_STREAM_DESC;
-
-typedef enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE
-{
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE, // ID3D12RootSignature*
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS, // D3D12_SHADER_BYTECODE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS, // D3D12_SHADER_BYTECODE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS, // D3D12_SHADER_BYTECODE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS, // D3D12_SHADER_BYTECODE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS, // D3D12_SHADER_BYTECODE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS, // D3D12_SHADER_BYTECODE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT, // D3D12_STREAM_OUTPUT_DESC
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND, // D3D12_BLEND_DESC
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK, // UINT
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER, // D3D12_RASTERIZER_DESC
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL, // D3D12_DEPTH_STENCIL_DESC
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT, // D3D12_INPUT_LAYOUT_DESC
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE, // D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY, // D3D12_PRIMITIVE_TOPOLOGY_TYPE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS, // D3D12_RT_FORMAT_ARRAY
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT, // DXGI_FORMAT
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC, // DXGI_SAMPLE_DESC
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK, // UINT
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO, // D3D12_CACHED_PIPELINE_STATE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS, // D3D12_PIPELINE_STATE_FLAGS
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1, // D3D12_DEPTH_STENCIL_DESC1
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING, // D3D12_VIEW_INSTANCING_DESC
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24, // D3D12_SHADER_BYTECODE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25, // D3D12_SHADER_BYTECODE
- D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID,
-} D3D12_PIPELINE_STATE_SUBOBJECT_TYPE;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// D3D12 Caps
-//
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-typedef enum D3D12_FEATURE
-{
- D3D12_FEATURE_D3D12_OPTIONS = 0,
- D3D12_FEATURE_ARCHITECTURE = 1, // Deprecated by D3D12_FEATURE_ARCHITECTURE1
- D3D12_FEATURE_FEATURE_LEVELS = 2,
- D3D12_FEATURE_FORMAT_SUPPORT = 3,
- D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
- D3D12_FEATURE_FORMAT_INFO = 5,
- D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
- D3D12_FEATURE_SHADER_MODEL = 7,
- D3D12_FEATURE_D3D12_OPTIONS1 = 8,
- D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
- D3D12_FEATURE_ROOT_SIGNATURE = 12,
- D3D12_FEATURE_ARCHITECTURE1 = 16,
- D3D12_FEATURE_D3D12_OPTIONS2 = 18,
- D3D12_FEATURE_SHADER_CACHE = 19,
- D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
- D3D12_FEATURE_D3D12_OPTIONS3 = 21,
- D3D12_FEATURE_EXISTING_HEAPS = 22,
- D3D12_FEATURE_D3D12_OPTIONS4 = 23,
- D3D12_FEATURE_SERIALIZATION = 24,
- D3D12_FEATURE_CROSS_NODE = 25,
- D3D12_FEATURE_D3D12_OPTIONS5 = 27,
- D3D12_FEATURE_DISPLAYABLE = 28,
- D3D12_FEATURE_D3D12_OPTIONS6 = 30,
- D3D12_FEATURE_QUERY_META_COMMAND = 31,
- D3D12_FEATURE_D3D12_OPTIONS7 = 32,
- D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
- D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
- D3D12_FEATURE_D3D12_OPTIONS8 = 36,
- D3D12_FEATURE_D3D12_OPTIONS9 = 37,
- D3D12_FEATURE_D3D12_OPTIONS10 = 39,
-} D3D12_FEATURE;
-
-typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT
-{
- D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0x0,
- D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
- D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
-} D3D12_SHADER_MIN_PRECISION_SUPPORT;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT );" )
-
-typedef enum D3D12_TILED_RESOURCES_TIER
-{
- D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
- D3D12_TILED_RESOURCES_TIER_1 = 1,
- D3D12_TILED_RESOURCES_TIER_2 = 2,
- D3D12_TILED_RESOURCES_TIER_3 = 3,
- D3D12_TILED_RESOURCES_TIER_4 = 4,
-} D3D12_TILED_RESOURCES_TIER;
-
-typedef enum D3D12_RESOURCE_BINDING_TIER
-{
- D3D12_RESOURCE_BINDING_TIER_1 = 1,
- D3D12_RESOURCE_BINDING_TIER_2 = 2,
- D3D12_RESOURCE_BINDING_TIER_3 = 3,
-} D3D12_RESOURCE_BINDING_TIER;
-
-typedef enum D3D12_CONSERVATIVE_RASTERIZATION_TIER {
- D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
- D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
- D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
- D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3,
-} D3D12_CONSERVATIVE_RASTERIZATION_TIER;
-
-
-typedef enum D3D12_FORMAT_SUPPORT1
-{
- D3D12_FORMAT_SUPPORT1_NONE = 0,
- D3D12_FORMAT_SUPPORT1_BUFFER = 0x00000001,
- D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x00000002,
- D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x00000004,
- D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x00000008,
- D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x00000010,
- D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x00000020,
- D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x00000040,
- D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x00000080,
- D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x00000100,
- D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x00000200,
- D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x00000400,
- D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x00000800,
- D3D12_FORMAT_SUPPORT1_MIP = 0x00001000,
- D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x00004000,
- D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x00008000,
- D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x00010000,
- D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x00040000,
- D3D12_FORMAT_SUPPORT1_DISPLAY = 0x00080000,
- D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x00100000,
- D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x00200000,
- D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x00400000,
- D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x00800000,
- D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x01000000,
- D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x02000000,
- D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x04000000,
- D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x08000000,
- D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
- D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
- D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000,
-} D3D12_FORMAT_SUPPORT1;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 );" )
-
-typedef enum D3D12_FORMAT_SUPPORT2
-{
- D3D12_FORMAT_SUPPORT2_NONE = 0,
- D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x00000001,
- D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x00000002,
- D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x00000004,
- D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x00000008,
- D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x00000010,
- D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x00000020,
- D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x00000040,
- D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x00000080,
- D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x00000100,
- D3D12_FORMAT_SUPPORT2_TILED = 0x00000200,
- D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x00004000,
- D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x00008000,
-} D3D12_FORMAT_SUPPORT2;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 );" )
-
-typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS
-{
- D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0,
- D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x00000001,
-} D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS );" )
-
-typedef enum D3D12_CROSS_NODE_SHARING_TIER
-{
- D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
- D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
- D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
- D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
- D3D12_CROSS_NODE_SHARING_TIER_3 = 4,
-} D3D12_CROSS_NODE_SHARING_TIER;
-
-typedef enum D3D12_RESOURCE_HEAP_TIER
-{
- D3D12_RESOURCE_HEAP_TIER_1 = 1,
- D3D12_RESOURCE_HEAP_TIER_2 = 2,
-} D3D12_RESOURCE_HEAP_TIER;
-
-typedef enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER
-{
- D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0,
- D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1,
- D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2,
-} D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
-
-typedef enum D3D12_VIEW_INSTANCING_TIER
-{
- D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0,
- D3D12_VIEW_INSTANCING_TIER_1 = 1,
- D3D12_VIEW_INSTANCING_TIER_2 = 2,
- D3D12_VIEW_INSTANCING_TIER_3 = 3,
-} D3D12_VIEW_INSTANCING_TIER;
-
-// D3D12_FEATURE_D3D12_OPTIONS
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
-{
- [annotation("_Out_")] BOOL DoublePrecisionFloatShaderOps;
- [annotation("_Out_")] BOOL OutputMergerLogicOp;
- [annotation("_Out_")] D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
- [annotation("_Out_")] D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
- [annotation("_Out_")] D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
- [annotation("_Out_")] BOOL PSSpecifiedStencilRefSupported;
- [annotation("_Out_")] BOOL TypedUAVLoadAdditionalFormats;
- [annotation("_Out_")] BOOL ROVsSupported;
- [annotation("_Out_")] D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
- [annotation("_Out_")] UINT MaxGPUVirtualAddressBitsPerResource;
- [annotation("_Out_")] BOOL StandardSwizzle64KBSupported;
- [annotation("_Out_")] D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
- [annotation("_Out_")] BOOL CrossAdapterRowMajorTextureSupported;
- [annotation("_Out_")] BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
- [annotation("_Out_")] D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS;
-
-// D3D12_FEATURE_D3D12_OPTIONS1
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
-{
- [annotation("_Out_")] BOOL WaveOps;
- [annotation("_Out_")] UINT WaveLaneCountMin;
- [annotation("_Out_")] UINT WaveLaneCountMax;
- [annotation("_Out_")] UINT TotalLaneCount;
- [annotation("_Out_")] BOOL ExpandedComputeResourceStates;
- [annotation("_Out_")] BOOL Int64ShaderOps;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS1;
-
-// D3D12_FEATURE_D3D12_OPTIONS2
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2
-{
- [annotation("_Out_")] BOOL DepthBoundsTestSupported;
- [annotation("_Out_")] D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS2;
-
-// D3D12_FEATURE_ROOT_SIGNATURE
-typedef enum D3D_ROOT_SIGNATURE_VERSION
-{
- D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
- D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
- D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2,
-} D3D_ROOT_SIGNATURE_VERSION;
-
-typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
-{
- [annotation("_Inout_")] D3D_ROOT_SIGNATURE_VERSION HighestVersion;
-} D3D12_FEATURE_DATA_ROOT_SIGNATURE;
-
-// D3D12_FEATURE_ARCHITECTURE
-typedef struct D3D12_FEATURE_DATA_ARCHITECTURE // Deprecated by D3D12_FEATURE_DATA_ARCHITECTURE1
-{
- [annotation("_In_")] UINT NodeIndex;
- [annotation("_Out_")] BOOL TileBasedRenderer;
- [annotation("_Out_")] BOOL UMA; // Needed for applications to understand WRITE_COMBINE
- [annotation("_Out_")] BOOL CacheCoherentUMA; // Only TRUE when UMA is also TRUE
-} D3D12_FEATURE_DATA_ARCHITECTURE;
-
-// D3D12_FEATURE_ARCHITECTURE1
-typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1
-{
- [annotation("_In_")] UINT NodeIndex;
- [annotation("_Out_")] BOOL TileBasedRenderer;
- [annotation("_Out_")] BOOL UMA; // Needed for applications to understand WRITE_COMBINE
- [annotation("_Out_")] BOOL CacheCoherentUMA; // Only TRUE when UMA is also TRUE
- [annotation("_Out_")] BOOL IsolatedMMU; // GPU accesses don't honor the same MMU functionality as the CPU
-} D3D12_FEATURE_DATA_ARCHITECTURE1;
-
-// D3D12_FEATURE_FEATURE_LEVELS
-typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
-{
- [annotation("_In_")] UINT NumFeatureLevels;
- [annotation("_In_reads_(NumFeatureLevels)")] const D3D_FEATURE_LEVEL* pFeatureLevelsRequested;
- [annotation("_Out_")] D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
-} D3D12_FEATURE_DATA_FEATURE_LEVELS;
-
-// D3D_SHADER_MODEL
-typedef enum D3D_SHADER_MODEL
-{
- D3D_SHADER_MODEL_5_1 = 0x51,
- D3D_SHADER_MODEL_6_0 = 0x60,
- D3D_SHADER_MODEL_6_1 = 0x61,
- D3D_SHADER_MODEL_6_2 = 0x62,
- D3D_SHADER_MODEL_6_3 = 0x63,
- D3D_SHADER_MODEL_6_4 = 0x64,
- D3D_SHADER_MODEL_6_5 = 0x65,
- D3D_SHADER_MODEL_6_6 = 0x66,
- D3D_SHADER_MODEL_6_7 = 0x67,
-} D3D_SHADER_MODEL;
-
-typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
-{
- [annotation("_Inout_")] D3D_SHADER_MODEL HighestShaderModel;
-} D3D12_FEATURE_DATA_SHADER_MODEL;
-
-// D3D12_FEATURE_FORMAT_SUPPORT
-typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
-{
- [annotation("_In_")] DXGI_FORMAT Format;
- [annotation("_Out_")] D3D12_FORMAT_SUPPORT1 Support1;
- [annotation("_Out_")] D3D12_FORMAT_SUPPORT2 Support2;
-} D3D12_FEATURE_DATA_FORMAT_SUPPORT;
-
-// D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS
-typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS
-{
- [annotation("_In_")] DXGI_FORMAT Format;
- [annotation("_In_")] UINT SampleCount;
- [annotation("_In_")] D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
- [annotation("_Out_")] UINT NumQualityLevels;
-} D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
-
-// D3D12_FEATURE_FORMAT_INFO
-typedef struct D3D12_FEATURE_DATA_FORMAT_INFO
-{
- DXGI_FORMAT Format;
- UINT8 PlaneCount;
-} D3D12_FEATURE_DATA_FORMAT_INFO;
-
-// D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT
-typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
-{
- UINT MaxGPUVirtualAddressBitsPerResource;
- UINT MaxGPUVirtualAddressBitsPerProcess;
-} D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
-
-
-typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS
-{
- D3D12_SHADER_CACHE_SUPPORT_NONE = 0x0,
- D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1, // Always supported
- D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
- D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
- D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8,
- D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10,
-} D3D12_SHADER_CACHE_SUPPORT_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS );" )
-
-// D3D12_FEATURE_SHADER_CACHE
-typedef struct D3D12_FEATURE_DATA_SHADER_CACHE
-{
- [annotation("_Out_")] D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
-} D3D12_FEATURE_DATA_SHADER_CACHE;
-
-// D3D12_FEATURE_COMMAND_QUEUE_PRIORITY
-typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
-{
- [annotation("_In_")] D3D12_COMMAND_LIST_TYPE CommandListType;
- [annotation("_In_")] UINT Priority;
- [annotation("_Out_")] BOOL PriorityForTypeIsSupported;
-} D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
-
-typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS
-{
- D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x00000000,
- D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 1 << D3D12_COMMAND_LIST_TYPE_DIRECT,
- D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE,
- D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE,
- D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 1 << D3D12_COMMAND_LIST_TYPE_COPY,
- D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE,
- D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS,
- D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE,
-
-} D3D12_COMMAND_LIST_SUPPORT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS );")
-
-// D3D12_FEATURE_D3D12_OPTIONS3
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3
-{
- [annotation("_Out_")] BOOL CopyQueueTimestampQueriesSupported;
- [annotation("_Out_")] BOOL CastingFullyTypedFormatSupported;
- [annotation("_Out_")] D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
- [annotation("_Out_")] D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
- [annotation("_Out_")] BOOL BarycentricsSupported;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS3;
-
-// D3D12_FEATURE_EXISTING_HEAPS
-typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS
-{
- [annotation("_Out_")] BOOL Supported;
-} D3D12_FEATURE_DATA_EXISTING_HEAPS;
-
-typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER
-{
- D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0,
- D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1,
- D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2,
- D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_3,
-} D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
-
-typedef struct D3D12_FEATURE_DATA_DISPLAYABLE
-{
- [annotation("_Out_")] BOOL DisplayableTexture;
- [annotation("_Out_")] D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
-} D3D12_FEATURE_DATA_DISPLAYABLE;
-
-// D3D12_FEATURE_D3D12_OPTIONS4
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4
-{
- [annotation("_Out_")] BOOL MSAA64KBAlignedTextureSupported;
- [annotation("_Out_")] D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
- [annotation("_Out_")] BOOL Native16BitShaderOpsSupported;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS4;
-
-typedef enum D3D12_HEAP_SERIALIZATION_TIER
-{
- D3D12_HEAP_SERIALIZATION_TIER_0 = 0,
- D3D12_HEAP_SERIALIZATION_TIER_10 = 10,
-} D3D12_HEAP_SERIALIZATION_TIER;
-
-// D3D12_FEATURE_SERIALIZATION
-typedef struct D3D12_FEATURE_DATA_SERIALIZATION
-{
- [annotation("_In_")] UINT NodeIndex;
- [annotation("_Out_")] D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
-} D3D12_FEATURE_DATA_SERIALIZATION;
-
-// D3D12_FEATURE_CROSS_NODE
-typedef struct D3D12_FEATURE_DATA_CROSS_NODE
-{
- D3D12_CROSS_NODE_SHARING_TIER SharingTier;
- BOOL AtomicShaderInstructions;
-} D3D12_FEATURE_DATA_CROSS_NODE;
-
-
-typedef enum D3D12_RENDER_PASS_TIER
-{
- D3D12_RENDER_PASS_TIER_0 = 0,
- D3D12_RENDER_PASS_TIER_1 = 1,
- D3D12_RENDER_PASS_TIER_2 = 2,
-
-
-} D3D12_RENDER_PASS_TIER;
-
-typedef enum D3D12_RAYTRACING_TIER
-{
- D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0,
- D3D12_RAYTRACING_TIER_1_0 = 10,
- D3D12_RAYTRACING_TIER_1_1 = 11,
-} D3D12_RAYTRACING_TIER;
-
-// D3D12_FEATURE_D3D12_OPTIONS5
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
-{
- [annotation("_Out_")] BOOL SRVOnlyTiledResourceTier3;
- [annotation("_Out_")] D3D12_RENDER_PASS_TIER RenderPassesTier;
- [annotation("_Out_")] D3D12_RAYTRACING_TIER RaytracingTier;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS5;
-
-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;
-
-// D3D12_FEATURE_D3D12_OPTIONS6
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6
-{
- [annotation("_Out_")] BOOL AdditionalShadingRatesSupported;
- [annotation("_Out_")] BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing;
- [annotation("_Out_")] D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier;
- [annotation("_Out_")] UINT ShadingRateImageTileSize;
- [annotation("_Out_")] BOOL BackgroundProcessingSupported;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS6;
-
-typedef enum D3D12_MESH_SHADER_TIER
-{
- D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0,
- D3D12_MESH_SHADER_TIER_1 = 10,
-} D3D12_MESH_SHADER_TIER;
-
-typedef enum D3D12_SAMPLER_FEEDBACK_TIER
-{
- D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0,
- D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90,
- D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100
-} D3D12_SAMPLER_FEEDBACK_TIER;
-
-// D3D12_FEATURE_D3D12_OPTIONS7
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7
-{
- [annotation("_Out_")] D3D12_MESH_SHADER_TIER MeshShaderTier;
- [annotation("_Out_")] D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier;
-
-} D3D12_FEATURE_DATA_D3D12_OPTIONS7;
-
-typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND
-{
- [annotation("_In_")] GUID CommandId;
- [annotation("_In_")] UINT NodeMask;
- [annotation("_Field_size_bytes_full_opt_( QueryInputDataSizeInBytes )")] const void* pQueryInputData;
- [annotation("_In_")] SIZE_T QueryInputDataSizeInBytes;
- [annotation("_Field_size_bytes_full_( QueryOutputDataSizeInBytes )")] void* pQueryOutputData;
- [annotation("_In_")] SIZE_T QueryOutputDataSizeInBytes;
-} D3D12_FEATURE_DATA_QUERY_META_COMMAND;
-
-// D3D12_FEATURE_D3D12_OPTIONS8
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8
-{
- [annotation("_Out_")] BOOL UnalignedBlockTexturesSupported;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS8;
-
-typedef enum D3D12_WAVE_MMA_TIER {
- D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0,
- D3D12_WAVE_MMA_TIER_1_0 = 10,
-} D3D12_WAVE_MMA_TIER;
-
-// D3D12_FEATURE_D3D12_OPTIONS9
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9
-{
- [annotation("_Out_")] BOOL MeshShaderPipelineStatsSupported;
- [annotation("_Out_")] BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex;
- [annotation("_Out_")] BOOL AtomicInt64OnTypedResourceSupported;
- [annotation("_Out_")] BOOL AtomicInt64OnGroupSharedSupported;
- [annotation("_Out_")] BOOL DerivativesInMeshAndAmplificationShadersSupported;
- [annotation("_Out_")] D3D12_WAVE_MMA_TIER WaveMMATier;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS9;
-
-// D3D12_FEATURE_D3D12_OPTIONS10
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10
-{
- [annotation("_Out_")] BOOL VariableRateShadingSumCombinerSupported;
- [annotation("_Out_")] BOOL MeshShaderPerPrimitiveShadingRateSupported;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS10;
-
-
-typedef struct D3D12_RESOURCE_ALLOCATION_INFO
-{
- UINT64 SizeInBytes;
- UINT64 Alignment;
-} D3D12_RESOURCE_ALLOCATION_INFO;
-
-typedef struct D3D12_RESOURCE_ALLOCATION_INFO1
-{
- UINT64 Offset;
- UINT64 Alignment;
- UINT64 SizeInBytes;
-} D3D12_RESOURCE_ALLOCATION_INFO1;
-
-typedef enum D3D12_HEAP_TYPE
-{
- D3D12_HEAP_TYPE_DEFAULT = 1,
- D3D12_HEAP_TYPE_UPLOAD = 2,
- D3D12_HEAP_TYPE_READBACK = 3,
- D3D12_HEAP_TYPE_CUSTOM = 4,
-} D3D12_HEAP_TYPE;
-
-typedef enum D3D12_CPU_PAGE_PROPERTY
-{
- D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
- D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
- D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
- D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3,
-} D3D12_CPU_PAGE_PROPERTY;
-
-typedef enum D3D12_MEMORY_POOL
-{
- D3D12_MEMORY_POOL_UNKNOWN = 0,
- D3D12_MEMORY_POOL_L0 = 1, // Maximum bandwidth for CPU
- D3D12_MEMORY_POOL_L1 = 2, // More bandwidth for GPU, less for CPU
-} D3D12_MEMORY_POOL;
-
-typedef struct D3D12_HEAP_PROPERTIES
-{
- D3D12_HEAP_TYPE Type;
- D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
- D3D12_MEMORY_POOL MemoryPoolPreference;
- UINT CreationNodeMask;
- UINT VisibleNodeMask;
-} D3D12_HEAP_PROPERTIES;
-
-typedef enum D3D12_HEAP_FLAGS
-{
- D3D12_HEAP_FLAG_NONE = 0x0,
- D3D12_HEAP_FLAG_SHARED = 0x1,
- D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
- D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
- D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
- D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
- D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
- D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
- D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
- D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
- D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
- D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
-
- // These are convenience aliases to manage resource heap tier restrictions. They cannot be bitwise OR'ed together cleanly.
- D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0x0,
- D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xC0,
- D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
- D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84,
-
-
-} D3D12_HEAP_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS );" )
-
-typedef struct D3D12_HEAP_DESC
-{
- UINT64 SizeInBytes;
- D3D12_HEAP_PROPERTIES Properties;
- UINT64 Alignment;
- D3D12_HEAP_FLAGS Flags;
-} D3D12_HEAP_DESC;
-
-typedef enum D3D12_RESOURCE_DIMENSION
-{
- D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
- D3D12_RESOURCE_DIMENSION_BUFFER = 1,
- D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
- D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
- D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4,
-} D3D12_RESOURCE_DIMENSION;
-
-typedef enum D3D12_TEXTURE_LAYOUT
-{
- D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
- D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1, // Must be used with buffers. Can be used with cross-adapter shared textures.
- D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
- D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3,
-} D3D12_TEXTURE_LAYOUT;
-
-typedef enum D3D12_RESOURCE_FLAGS
-{
- D3D12_RESOURCE_FLAG_NONE = 0x0,
- D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
- D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
- D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
- D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
- D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
- D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
- D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
- D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
-
-} D3D12_RESOURCE_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS );" )
-
-typedef struct D3D12_MIP_REGION
-{
- UINT Width;
- UINT Height;
- UINT Depth;
-} D3D12_MIP_REGION;
-
-typedef struct D3D12_RESOURCE_DESC
-{
- D3D12_RESOURCE_DIMENSION Dimension;
- UINT64 Alignment;
- UINT64 Width;
- UINT Height;
- UINT16 DepthOrArraySize;
- UINT16 MipLevels;
- DXGI_FORMAT Format;
- DXGI_SAMPLE_DESC SampleDesc;
- D3D12_TEXTURE_LAYOUT Layout;
- D3D12_RESOURCE_FLAGS Flags;
-} D3D12_RESOURCE_DESC;
-
-typedef struct D3D12_RESOURCE_DESC1
-{
- D3D12_RESOURCE_DIMENSION Dimension;
- UINT64 Alignment;
- UINT64 Width;
- UINT Height;
- UINT16 DepthOrArraySize;
- UINT16 MipLevels;
- DXGI_FORMAT Format;
- DXGI_SAMPLE_DESC SampleDesc;
- D3D12_TEXTURE_LAYOUT Layout;
- D3D12_RESOURCE_FLAGS Flags;
- D3D12_MIP_REGION SamplerFeedbackMipRegion;
-} D3D12_RESOURCE_DESC1;
-
-
-typedef struct D3D12_DEPTH_STENCIL_VALUE
-{
- FLOAT Depth;
- UINT8 Stencil;
-} D3D12_DEPTH_STENCIL_VALUE;
-
-typedef struct D3D12_CLEAR_VALUE
-{
- DXGI_FORMAT Format;
- union
- {
- FLOAT Color[4];
- D3D12_DEPTH_STENCIL_VALUE DepthStencil;
- };
-} D3D12_CLEAR_VALUE;
-
-typedef struct D3D12_RANGE
-{
- SIZE_T Begin;
- SIZE_T End; // One past end, so (End - Begin) = Size
-} D3D12_RANGE;
-
-typedef struct D3D12_RANGE_UINT64
-{
- UINT64 Begin;
- UINT64 End; // One past end, so (End - Begin) = Size
-} D3D12_RANGE_UINT64;
-
-typedef struct D3D12_SUBRESOURCE_RANGE_UINT64
-{
- UINT Subresource;
- D3D12_RANGE_UINT64 Range;
-} D3D12_SUBRESOURCE_RANGE_UINT64;
-
-typedef struct D3D12_SUBRESOURCE_INFO
-{
- UINT64 Offset;
- UINT RowPitch;
- UINT DepthPitch;
-} D3D12_SUBRESOURCE_INFO;
-
-typedef struct D3D12_TILED_RESOURCE_COORDINATE
-{
- UINT X;
- UINT Y;
- UINT Z;
- UINT Subresource;
-} D3D12_TILED_RESOURCE_COORDINATE;
-
-typedef struct D3D12_TILE_REGION_SIZE
-{
- UINT NumTiles;
- BOOL UseBox;
- UINT Width;
- UINT16 Height;
- UINT16 Depth;
-} D3D12_TILE_REGION_SIZE;
-
-typedef enum D3D12_TILE_RANGE_FLAGS
-{
- D3D12_TILE_RANGE_FLAG_NONE = 0,
- D3D12_TILE_RANGE_FLAG_NULL = 1,
- D3D12_TILE_RANGE_FLAG_SKIP = 2,
- D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4,
-
-} D3D12_TILE_RANGE_FLAGS;
-
-typedef struct D3D12_SUBRESOURCE_TILING
-{
- UINT WidthInTiles;
- UINT16 HeightInTiles;
- UINT16 DepthInTiles;
- UINT StartTileIndexInOverallResource;
-} D3D12_SUBRESOURCE_TILING;
-
-typedef struct D3D12_TILE_SHAPE
-{
- UINT WidthInTexels;
- UINT HeightInTexels;
- UINT DepthInTexels;
-} D3D12_TILE_SHAPE;
-
-typedef struct D3D12_PACKED_MIP_INFO
-{
- UINT8 NumStandardMips;
- UINT8 NumPackedMips;
- UINT NumTilesForPackedMips;
- UINT StartTileIndexInOverallResource;
-} D3D12_PACKED_MIP_INFO;
-
-typedef enum D3D12_TILE_MAPPING_FLAGS
-{
- D3D12_TILE_MAPPING_FLAG_NONE = 0x0,
- D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1,
-} D3D12_TILE_MAPPING_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS );" )
-
-typedef enum D3D12_TILE_COPY_FLAGS
-{
- D3D12_TILE_COPY_FLAG_NONE = 0x0,
- D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
- D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
- D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4,
-} D3D12_TILE_COPY_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS );")
-
-// Resource Barrier
-typedef enum D3D12_RESOURCE_STATES
-{
- D3D12_RESOURCE_STATE_COMMON = 0,
-
- D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x00001,
- D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x00002,
- D3D12_RESOURCE_STATE_RENDER_TARGET = 0x00004,
- D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x00008,
- D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x00010,
- D3D12_RESOURCE_STATE_DEPTH_READ = 0x00020,
- D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x00040,
- D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x00080,
- D3D12_RESOURCE_STATE_STREAM_OUT = 0x00100,
- D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x00200,
- D3D12_RESOURCE_STATE_COPY_DEST = 0x00400,
- D3D12_RESOURCE_STATE_COPY_SOURCE = 0x00800,
- D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x01000,
- D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x02000,
- D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
- D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
-
- D3D12_RESOURCE_STATE_GENERIC_READ =
- /*D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER*/ 0x0001 |
- /*D3D12_RESOURCE_STATE_INDEX_BUFFER*/ 0x0002 |
- /*D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE*/ 0x0040 |
- /*D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE*/ 0x0080 |
- /*D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT*/ 0x0200 |
- /*D3D12_RESOURCE_STATE_COPY_SOURCE*/ 0x0800,
-
- D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE =
- /*D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE*/ 0x40 |
- /*D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE*/ 0x80,
-
- D3D12_RESOURCE_STATE_PRESENT = 0,
- D3D12_RESOURCE_STATE_PREDICATION = /*D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT*/ 0x0200,
-
- D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x00010000,
- D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x00020000,
- D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x00040000,
- D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x00080000,
- D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x00200000,
- D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x00800000,
-
-} D3D12_RESOURCE_STATES;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES );" )
-
-typedef enum D3D12_RESOURCE_BARRIER_TYPE
-{
- D3D12_RESOURCE_BARRIER_TYPE_TRANSITION,
- D3D12_RESOURCE_BARRIER_TYPE_ALIASING,
- D3D12_RESOURCE_BARRIER_TYPE_UAV,
-} D3D12_RESOURCE_BARRIER_TYPE;
-
-interface ID3D12Resource;
-
-typedef struct D3D12_RESOURCE_TRANSITION_BARRIER
-{
- ID3D12Resource* pResource;
- UINT Subresource;
- D3D12_RESOURCE_STATES StateBefore;
- D3D12_RESOURCE_STATES StateAfter;
-} D3D12_RESOURCE_TRANSITION_BARRIER;
-
-typedef struct D3D12_RESOURCE_ALIASING_BARRIER
-{
- ID3D12Resource* pResourceBefore;
- ID3D12Resource* pResourceAfter;
-} D3D12_RESOURCE_ALIASING_BARRIER;
-
-typedef struct D3D12_RESOURCE_UAV_BARRIER
-{
- ID3D12Resource* pResource;
-} D3D12_RESOURCE_UAV_BARRIER;
-
-typedef enum D3D12_RESOURCE_BARRIER_FLAGS
-{
- D3D12_RESOURCE_BARRIER_FLAG_NONE = 0x0,
- D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
- D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2,
-} D3D12_RESOURCE_BARRIER_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS );" )
-
-typedef struct D3D12_RESOURCE_BARRIER
-{
- D3D12_RESOURCE_BARRIER_TYPE Type;
- D3D12_RESOURCE_BARRIER_FLAGS Flags;
-
- union
- {
- D3D12_RESOURCE_TRANSITION_BARRIER Transition;
- D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
- D3D12_RESOURCE_UAV_BARRIER UAV;
- };
-} D3D12_RESOURCE_BARRIER;
-
-typedef struct D3D12_SUBRESOURCE_FOOTPRINT
-{
- DXGI_FORMAT Format;
- UINT Width;
- UINT Height;
- UINT Depth;
- UINT RowPitch; // Must be a multiple of D3D12_TEXTURE_DATA_PITCH_ALIGNMENT
-} D3D12_SUBRESOURCE_FOOTPRINT;
-
-typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT
-{
- UINT64 Offset; // Must be a multiple of D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT
- D3D12_SUBRESOURCE_FOOTPRINT Footprint;
-} D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
-
-typedef enum D3D12_TEXTURE_COPY_TYPE
-{
- D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
- D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1,
-} D3D12_TEXTURE_COPY_TYPE;
-
-typedef struct D3D12_TEXTURE_COPY_LOCATION
-{
- ID3D12Resource* pResource;
- D3D12_TEXTURE_COPY_TYPE Type;
- union
- {
- D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
- UINT SubresourceIndex;
- };
-} D3D12_TEXTURE_COPY_LOCATION;
-
-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_ENCODE_SAMPLER_FEEDBACK = 4,
- D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5
-} D3D12_RESOLVE_MODE;
-
-typedef struct D3D12_SAMPLE_POSITION
-{
- INT8 X;
- INT8 Y;
-} D3D12_SAMPLE_POSITION;
-
-typedef struct D3D12_VIEW_INSTANCE_LOCATION
-{
- UINT ViewportArrayIndex;
- UINT RenderTargetArrayIndex;
-} D3D12_VIEW_INSTANCE_LOCATION;
-
-typedef enum D3D12_VIEW_INSTANCING_FLAGS
-{
- D3D12_VIEW_INSTANCING_FLAG_NONE = 0x0,
- D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1,
-} D3D12_VIEW_INSTANCING_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS );")
-
-typedef struct D3D12_VIEW_INSTANCING_DESC
-{
- UINT ViewInstanceCount;
- [annotation("_Field_size_full_(ViewInstanceCount)")] const D3D12_VIEW_INSTANCE_LOCATION* pViewInstanceLocations;
- D3D12_VIEW_INSTANCING_FLAGS Flags;
-} D3D12_VIEW_INSTANCING_DESC;
-
-// D3D12 view descriptions
-typedef enum D3D12_SHADER_COMPONENT_MAPPING
-{
- D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
- D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
- D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
- D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
- D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
- D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5,
-} D3D12_SHADER_COMPONENT_MAPPING;
-
-cpp_quote( "#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7 ")
-cpp_quote( "#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3 ")
-cpp_quote( "#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4)) ")
-cpp_quote( "#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \\")
-cpp_quote( " (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK))")
-cpp_quote( "#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3) ")
-typedef enum D3D12_BUFFER_SRV_FLAGS
-{
- D3D12_BUFFER_SRV_FLAG_NONE = 0,
- D3D12_BUFFER_SRV_FLAG_RAW = 0x00000001, // allow device multi-component reads with DWORD addressing
-} D3D12_BUFFER_SRV_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS );" )
-
-typedef struct D3D12_BUFFER_SRV
-{
- UINT64 FirstElement;
- UINT NumElements;
- UINT StructureByteStride; // if nonzero, format must be DXGI_FORMAT_UNKNOWN
- D3D12_BUFFER_SRV_FLAGS Flags;
-} D3D12_BUFFER_SRV;
-
-typedef struct D3D12_TEX1D_SRV
-{
- UINT MostDetailedMip;
- UINT MipLevels;
- FLOAT ResourceMinLODClamp;
-} D3D12_TEX1D_SRV;
-
-typedef struct D3D12_TEX1D_ARRAY_SRV
-{
- UINT MostDetailedMip;
- UINT MipLevels;
- UINT FirstArraySlice;
- UINT ArraySize;
- FLOAT ResourceMinLODClamp;
-} D3D12_TEX1D_ARRAY_SRV;
-
-typedef struct D3D12_TEX2D_SRV
-{
- UINT MostDetailedMip;
- UINT MipLevels;
- UINT PlaneSlice;
- FLOAT ResourceMinLODClamp;
-} D3D12_TEX2D_SRV;
-
-typedef struct D3D12_TEX2D_ARRAY_SRV
-{
- UINT MostDetailedMip;
- UINT MipLevels;
- UINT FirstArraySlice;
- UINT ArraySize;
- UINT PlaneSlice;
- FLOAT ResourceMinLODClamp;
-} D3D12_TEX2D_ARRAY_SRV;
-
-typedef struct D3D12_TEX3D_SRV
-{
- UINT MostDetailedMip;
- UINT MipLevels;
- FLOAT ResourceMinLODClamp;
-} D3D12_TEX3D_SRV;
-
-typedef struct D3D12_TEXCUBE_SRV
-{
- UINT MostDetailedMip;
- UINT MipLevels;
- FLOAT ResourceMinLODClamp;
-} D3D12_TEXCUBE_SRV;
-
-typedef struct D3D12_TEXCUBE_ARRAY_SRV
-{
- UINT MostDetailedMip;
- UINT MipLevels;
- UINT First2DArrayFace;
- UINT NumCubes;
- FLOAT ResourceMinLODClamp;
-} D3D12_TEXCUBE_ARRAY_SRV;
-
-typedef struct D3D12_TEX2DMS_SRV
-{
- // don't need to define anything specific for this view dimension
- UINT UnusedField_NothingToDefine;
-} D3D12_TEX2DMS_SRV;
-
-typedef struct D3D12_TEX2DMS_ARRAY_SRV
-{
- UINT FirstArraySlice;
- UINT ArraySize;
-} D3D12_TEX2DMS_ARRAY_SRV;
-
-typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV
-{
- D3D12_GPU_VIRTUAL_ADDRESS Location;
-} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV;
-
-typedef enum D3D12_SRV_DIMENSION {
- D3D12_SRV_DIMENSION_UNKNOWN = 0,
- D3D12_SRV_DIMENSION_BUFFER = 1,
- D3D12_SRV_DIMENSION_TEXTURE1D = 2,
- D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
- D3D12_SRV_DIMENSION_TEXTURE2D = 4,
- D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
- D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
- D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
- D3D12_SRV_DIMENSION_TEXTURE3D = 8,
- D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
- D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
- D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11,
-} D3D12_SRV_DIMENSION;
-
-typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
-{
- DXGI_FORMAT Format;
- D3D12_SRV_DIMENSION ViewDimension;
- UINT Shader4ComponentMapping;
-
- union
- {
- D3D12_BUFFER_SRV Buffer;
- D3D12_TEX1D_SRV Texture1D;
- D3D12_TEX1D_ARRAY_SRV Texture1DArray;
- D3D12_TEX2D_SRV Texture2D;
- D3D12_TEX2D_ARRAY_SRV Texture2DArray;
- D3D12_TEX2DMS_SRV Texture2DMS;
- D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
- D3D12_TEX3D_SRV Texture3D;
- D3D12_TEXCUBE_SRV TextureCube;
- D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure;
- };
-} D3D12_SHADER_RESOURCE_VIEW_DESC;
-
-typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC
-{
- D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
- UINT SizeInBytes;
-} D3D12_CONSTANT_BUFFER_VIEW_DESC;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// Sampler
-//
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-typedef enum D3D12_FILTER
-{
- // Bits used in defining enumeration of valid filters:
- // bits [1:0] - mip: 0 == point, 1 == linear, 2,3 unused
- // bits [3:2] - mag: 0 == point, 1 == linear, 2,3 unused
- // bits [5:4] - min: 0 == point, 1 == linear, 2,3 unused
- // bit [6] - aniso
- // bits [8:7] - reduction type:
- // 0 == standard filtering
- // 1 == comparison
- // 2 == min
- // 3 == max
- // bit [31] - mono 1-bit (narrow-purpose filter) [no longer supported in D3D12]
-
- D3D12_FILTER_MIN_MAG_MIP_POINT = 0x00000000,
- D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x00000001,
- D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000004,
- D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x00000005,
- D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x00000010,
- D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000011,
- D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x00000014,
- D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x00000015,
- D3D12_FILTER_ANISOTROPIC = 0x00000055,
- D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x00000080,
- D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x00000081,
- D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000084,
- D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x00000085,
- D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x00000090,
- D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000091,
- D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x00000094,
- D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x00000095,
- D3D12_FILTER_COMPARISON_ANISOTROPIC = 0x000000d5,
- D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x00000100,
- D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x00000101,
- D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000104,
- D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x00000105,
- D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x00000110,
- D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000111,
- D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x00000114,
- D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x00000115,
- D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x00000155,
- D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x00000180,
- D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x00000181,
- D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000184,
- D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x00000185,
- D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x00000190,
- D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000191,
- D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x00000194,
- D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x00000195,
- D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x000001d5
-} D3D12_FILTER;
-
-typedef enum D3D12_FILTER_TYPE
-{
- D3D12_FILTER_TYPE_POINT = 0,
- D3D12_FILTER_TYPE_LINEAR = 1,
-} D3D12_FILTER_TYPE;
-
-typedef enum D3D12_FILTER_REDUCTION_TYPE
-{
- D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
- D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
- D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
- D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3,
-} D3D12_FILTER_REDUCTION_TYPE;
-
-const UINT D3D12_FILTER_REDUCTION_TYPE_MASK = 0x00000003;
-const UINT D3D12_FILTER_REDUCTION_TYPE_SHIFT = 7;
-
-const UINT D3D12_FILTER_TYPE_MASK = 0x00000003;
-const UINT D3D12_MIN_FILTER_SHIFT = 4;
-const UINT D3D12_MAG_FILTER_SHIFT = 2;
-const UINT D3D12_MIP_FILTER_SHIFT = 0;
-
-const UINT D3D12_ANISOTROPIC_FILTERING_BIT = 0x00000040;
-
-// encode enum entry for most filters except anisotropic filtering
-cpp_quote( "#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \\" )
-cpp_quote( " ( ( D3D12_FILTER ) ( \\" )
-cpp_quote( " ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \\" )
-cpp_quote( " ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \\" )
-cpp_quote( " ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \\" )
-cpp_quote( " ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) " )
-
-// encode enum entry for anisotropic filtering (with or without comparison filtering)
-cpp_quote( "#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \\" )
-cpp_quote( " ( ( D3D12_FILTER ) ( \\" )
-cpp_quote( " D3D12_ANISOTROPIC_FILTERING_BIT | \\" )
-cpp_quote( " D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \\" )
-cpp_quote( " D3D12_FILTER_TYPE_LINEAR, \\" )
-cpp_quote( " D3D12_FILTER_TYPE_LINEAR, \\" )
-cpp_quote( " reduction ) ) ) " )
-
-cpp_quote( "#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \\" )
-cpp_quote( " ( ( D3D12_FILTER_TYPE ) \\" )
-cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) " )
-
-cpp_quote( "#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \\" )
-cpp_quote( " ( ( D3D12_FILTER_TYPE ) \\" )
-cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) " )
-
-cpp_quote( "#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \\" )
-cpp_quote( " ( ( D3D12_FILTER_TYPE ) \\" )
-cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) " )
-
-cpp_quote( "#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \\" )
-cpp_quote( " ( ( D3D12_FILTER_REDUCTION_TYPE ) \\" )
-cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) " )
-
-cpp_quote( "#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \\" )
-cpp_quote( " ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) " )
-
-cpp_quote( "#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \\" )
-cpp_quote( " ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \\" )
-cpp_quote( " ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \\" )
-cpp_quote( " ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) && \\" )
-cpp_quote( " ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIP_FILTER( D3D12Filter ) ) ) " )
-
-typedef enum D3D12_TEXTURE_ADDRESS_MODE
-{
- D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
- D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
- D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
- D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
- D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5
-} D3D12_TEXTURE_ADDRESS_MODE;
-
-typedef struct D3D12_SAMPLER_DESC
-{
- D3D12_FILTER Filter;
- D3D12_TEXTURE_ADDRESS_MODE AddressU;
- D3D12_TEXTURE_ADDRESS_MODE AddressV;
- D3D12_TEXTURE_ADDRESS_MODE AddressW;
- FLOAT MipLODBias;
- UINT MaxAnisotropy;
- D3D12_COMPARISON_FUNC ComparisonFunc;
- FLOAT BorderColor[4]; // RGBA
- FLOAT MinLOD;
- FLOAT MaxLOD;
-} D3D12_SAMPLER_DESC;
-
-typedef enum D3D12_BUFFER_UAV_FLAGS
-{
- D3D12_BUFFER_UAV_FLAG_NONE = 0,
- D3D12_BUFFER_UAV_FLAG_RAW = 0x00000001,
-} D3D12_BUFFER_UAV_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS );" )
-
-typedef struct D3D12_BUFFER_UAV
-{
- UINT64 FirstElement;
- UINT NumElements;
- UINT StructureByteStride; // if nonzero, format must be DXGI_FORMAT_UNKNOWN
- UINT64 CounterOffsetInBytes;
- D3D12_BUFFER_UAV_FLAGS Flags;
-} D3D12_BUFFER_UAV;
-
-typedef struct D3D12_TEX1D_UAV
-{
- UINT MipSlice;
-} D3D12_TEX1D_UAV;
-
-typedef struct D3D12_TEX1D_ARRAY_UAV
-{
- UINT MipSlice;
- UINT FirstArraySlice;
- UINT ArraySize;
-} D3D12_TEX1D_ARRAY_UAV;
-
-typedef struct D3D12_TEX2D_UAV
-{
- UINT MipSlice;
- UINT PlaneSlice;
-} D3D12_TEX2D_UAV;
-
-typedef struct D3D12_TEX2D_ARRAY_UAV
-{
- UINT MipSlice;
- UINT FirstArraySlice;
- UINT ArraySize;
- UINT PlaneSlice;
-} D3D12_TEX2D_ARRAY_UAV;
-
-typedef struct D3D12_TEX3D_UAV
-{
- UINT MipSlice;
- UINT FirstWSlice;
- UINT WSize;
-} D3D12_TEX3D_UAV;
-
-typedef enum D3D12_UAV_DIMENSION
-{
- D3D12_UAV_DIMENSION_UNKNOWN = 0,
- D3D12_UAV_DIMENSION_BUFFER = 1,
- D3D12_UAV_DIMENSION_TEXTURE1D = 2,
- D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
- D3D12_UAV_DIMENSION_TEXTURE2D = 4,
- D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
- D3D12_UAV_DIMENSION_TEXTURE3D = 8,
-} D3D12_UAV_DIMENSION;
-
-typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC
-{
- DXGI_FORMAT Format;
- D3D12_UAV_DIMENSION ViewDimension;
-
- union
- {
- D3D12_BUFFER_UAV Buffer;
- D3D12_TEX1D_UAV Texture1D;
- D3D12_TEX1D_ARRAY_UAV Texture1DArray;
- D3D12_TEX2D_UAV Texture2D;
- D3D12_TEX2D_ARRAY_UAV Texture2DArray;
- D3D12_TEX3D_UAV Texture3D;
- };
-} D3D12_UNORDERED_ACCESS_VIEW_DESC;
-
-typedef struct D3D12_BUFFER_RTV
-{
- UINT64 FirstElement;
- UINT NumElements;
-} D3D12_BUFFER_RTV;
-
-typedef struct D3D12_TEX1D_RTV
-{
- UINT MipSlice;
-} D3D12_TEX1D_RTV;
-
-typedef struct D3D12_TEX1D_ARRAY_RTV
-{
- UINT MipSlice;
- UINT FirstArraySlice;
- UINT ArraySize;
-} D3D12_TEX1D_ARRAY_RTV;
-
-typedef struct D3D12_TEX2D_RTV
-{
- UINT MipSlice;
- UINT PlaneSlice;
-} D3D12_TEX2D_RTV;
-
-typedef struct D3D12_TEX2DMS_RTV
-{
- UINT UnusedField_NothingToDefine;
-} D3D12_TEX2DMS_RTV;
-
-typedef struct D3D12_TEX2D_ARRAY_RTV
-{
- UINT MipSlice;
- UINT FirstArraySlice;
- UINT ArraySize;
- UINT PlaneSlice;
-} D3D12_TEX2D_ARRAY_RTV;
-
-typedef struct D3D12_TEX2DMS_ARRAY_RTV
-{
- UINT FirstArraySlice;
- UINT ArraySize;
-} D3D12_TEX2DMS_ARRAY_RTV;
-
-typedef struct D3D12_TEX3D_RTV
-{
- UINT MipSlice;
- UINT FirstWSlice;
- UINT WSize;
-} D3D12_TEX3D_RTV;
-
-typedef enum D3D12_RTV_DIMENSION
-{
- D3D12_RTV_DIMENSION_UNKNOWN = 0,
- D3D12_RTV_DIMENSION_BUFFER = 1,
- D3D12_RTV_DIMENSION_TEXTURE1D = 2,
- D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
- D3D12_RTV_DIMENSION_TEXTURE2D = 4,
- D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
- D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
- D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
- D3D12_RTV_DIMENSION_TEXTURE3D = 8,
-} D3D12_RTV_DIMENSION;
-
-typedef struct D3D12_RENDER_TARGET_VIEW_DESC
-{
- DXGI_FORMAT Format;
- D3D12_RTV_DIMENSION ViewDimension;
-
- union
- {
- D3D12_BUFFER_RTV Buffer;
- D3D12_TEX1D_RTV Texture1D;
- D3D12_TEX1D_ARRAY_RTV Texture1DArray;
- D3D12_TEX2D_RTV Texture2D;
- D3D12_TEX2D_ARRAY_RTV Texture2DArray;
- D3D12_TEX2DMS_RTV Texture2DMS;
- D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
- D3D12_TEX3D_RTV Texture3D;
- };
-} D3D12_RENDER_TARGET_VIEW_DESC;
-
-typedef struct D3D12_TEX1D_DSV
-{
- UINT MipSlice;
-} D3D12_TEX1D_DSV;
-
-typedef struct D3D12_TEX1D_ARRAY_DSV
-{
- UINT MipSlice;
- UINT FirstArraySlice;
- UINT ArraySize;
-} D3D12_TEX1D_ARRAY_DSV;
-
-typedef struct D3D12_TEX2D_DSV
-{
- UINT MipSlice;
-} D3D12_TEX2D_DSV;
-
-typedef struct D3D12_TEX2D_ARRAY_DSV
-{
- UINT MipSlice;
- UINT FirstArraySlice;
- UINT ArraySize;
-} D3D12_TEX2D_ARRAY_DSV;
-
-typedef struct D3D12_TEX2DMS_DSV
-{
- UINT UnusedField_NothingToDefine;
-} D3D12_TEX2DMS_DSV;
-
-typedef struct D3D12_TEX2DMS_ARRAY_DSV
-{
- UINT FirstArraySlice;
- UINT ArraySize;
-} D3D12_TEX2DMS_ARRAY_DSV;
-
-typedef enum D3D12_DSV_FLAGS
-{
- D3D12_DSV_FLAG_NONE = 0x0,
- D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
- D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2,
-} D3D12_DSV_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS );" )
-
-typedef enum D3D12_DSV_DIMENSION
-{
- D3D12_DSV_DIMENSION_UNKNOWN = 0,
- D3D12_DSV_DIMENSION_TEXTURE1D = 1,
- D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
- D3D12_DSV_DIMENSION_TEXTURE2D = 3,
- D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
- D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
- D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6,
-} D3D12_DSV_DIMENSION;
-
-typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC
-{
- DXGI_FORMAT Format;
- D3D12_DSV_DIMENSION ViewDimension;
- D3D12_DSV_FLAGS Flags;
-
- union
- {
- D3D12_TEX1D_DSV Texture1D;
- D3D12_TEX1D_ARRAY_DSV Texture1DArray;
- D3D12_TEX2D_DSV Texture2D;
- D3D12_TEX2D_ARRAY_DSV Texture2DArray;
- D3D12_TEX2DMS_DSV Texture2DMS;
- D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
- };
-} D3D12_DEPTH_STENCIL_VIEW_DESC;
-
-typedef enum D3D12_CLEAR_FLAGS
-{
- // Intentionally no flag for NONE
- D3D12_CLEAR_FLAG_DEPTH = 0x01,
- D3D12_CLEAR_FLAG_STENCIL = 0x02,
-} D3D12_CLEAR_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS );" )
-
-typedef enum D3D12_FENCE_FLAGS
-{
- D3D12_FENCE_FLAG_NONE = 0x0,
- D3D12_FENCE_FLAG_SHARED = 0x1,
- D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
- D3D12_FENCE_FLAG_NON_MONITORED = 0x4,
-} D3D12_FENCE_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS );" )
-
-typedef enum D3D12_DESCRIPTOR_HEAP_TYPE
-{
- D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV,
- D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER,
- D3D12_DESCRIPTOR_HEAP_TYPE_RTV,
- D3D12_DESCRIPTOR_HEAP_TYPE_DSV,
- D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES
-} D3D12_DESCRIPTOR_HEAP_TYPE;
-
-typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS
-{
- D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0x0,
- D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1,
-} D3D12_DESCRIPTOR_HEAP_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS );" )
-
-typedef struct D3D12_DESCRIPTOR_HEAP_DESC
-{
- D3D12_DESCRIPTOR_HEAP_TYPE Type;
- UINT NumDescriptors;
- D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
- UINT NodeMask;
-} D3D12_DESCRIPTOR_HEAP_DESC;
-
-typedef enum D3D12_DESCRIPTOR_RANGE_TYPE
-{
- D3D12_DESCRIPTOR_RANGE_TYPE_SRV,
- D3D12_DESCRIPTOR_RANGE_TYPE_UAV,
- D3D12_DESCRIPTOR_RANGE_TYPE_CBV,
- D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER
-} D3D12_DESCRIPTOR_RANGE_TYPE;
-
-typedef struct D3D12_DESCRIPTOR_RANGE
-{
- D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
- UINT NumDescriptors;
- UINT BaseShaderRegister;
- UINT RegisterSpace;
- UINT OffsetInDescriptorsFromTableStart;
-} D3D12_DESCRIPTOR_RANGE;
-
-
-typedef struct D3D12_ROOT_DESCRIPTOR_TABLE
-{
- UINT NumDescriptorRanges;
- [annotation("_Field_size_full_(NumDescriptorRanges)")] const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges;
-} D3D12_ROOT_DESCRIPTOR_TABLE;
-
-
-typedef struct D3D12_ROOT_CONSTANTS
-{
- UINT ShaderRegister;
- UINT RegisterSpace;
- UINT Num32BitValues;
-} D3D12_ROOT_CONSTANTS;
-
-typedef struct D3D12_ROOT_DESCRIPTOR
-{
- UINT ShaderRegister;
- UINT RegisterSpace;
-} D3D12_ROOT_DESCRIPTOR;
-
-typedef enum D3D12_SHADER_VISIBILITY
-{
- D3D12_SHADER_VISIBILITY_ALL = 0,
- D3D12_SHADER_VISIBILITY_VERTEX = 1,
- D3D12_SHADER_VISIBILITY_HULL = 2,
- D3D12_SHADER_VISIBILITY_DOMAIN = 3,
- D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
- D3D12_SHADER_VISIBILITY_PIXEL = 5,
- D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6,
- D3D12_SHADER_VISIBILITY_MESH = 7,
-} D3D12_SHADER_VISIBILITY;
-
-typedef enum D3D12_ROOT_PARAMETER_TYPE
-{
- D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE,
- D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS,
- D3D12_ROOT_PARAMETER_TYPE_CBV,
- D3D12_ROOT_PARAMETER_TYPE_SRV,
- D3D12_ROOT_PARAMETER_TYPE_UAV
-} D3D12_ROOT_PARAMETER_TYPE;
-
-typedef struct D3D12_ROOT_PARAMETER
-{
- D3D12_ROOT_PARAMETER_TYPE ParameterType;
- union
- {
- D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
- D3D12_ROOT_CONSTANTS Constants;
- D3D12_ROOT_DESCRIPTOR Descriptor;
- };
- D3D12_SHADER_VISIBILITY ShaderVisibility;
-} D3D12_ROOT_PARAMETER;
-
-typedef enum D3D12_ROOT_SIGNATURE_FLAGS
-{
- D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x0,
- D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
- D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
- D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
- D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
- D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
- D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
- D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
- D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
- D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
- D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
- D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
- D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800,
-} D3D12_ROOT_SIGNATURE_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS );" )
-
-typedef enum D3D12_STATIC_BORDER_COLOR
-{
- D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK, // 0.0f,0.0f,0.0f,0.0f
- D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK, // 0.0f,0.0f,0.0f,1.0f
- D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, // 1.0f,1.0f,1.0f,1.0f
-} D3D12_STATIC_BORDER_COLOR;
-
-typedef struct D3D12_STATIC_SAMPLER_DESC
-{
- D3D12_FILTER Filter;
- D3D12_TEXTURE_ADDRESS_MODE AddressU;
- D3D12_TEXTURE_ADDRESS_MODE AddressV;
- D3D12_TEXTURE_ADDRESS_MODE AddressW;
- FLOAT MipLODBias;
- UINT MaxAnisotropy;
- D3D12_COMPARISON_FUNC ComparisonFunc;
- D3D12_STATIC_BORDER_COLOR BorderColor;
- FLOAT MinLOD;
- FLOAT MaxLOD;
- UINT ShaderRegister;
- UINT RegisterSpace;
- D3D12_SHADER_VISIBILITY ShaderVisibility;
-} D3D12_STATIC_SAMPLER_DESC;
-
-
-typedef struct D3D12_ROOT_SIGNATURE_DESC
-{
- UINT NumParameters;
- [annotation("_Field_size_full_(NumParameters)")] const D3D12_ROOT_PARAMETER* pParameters;
- UINT NumStaticSamplers;
- [annotation("_Field_size_full_(NumStaticSamplers)")] const D3D12_STATIC_SAMPLER_DESC* pStaticSamplers;
- D3D12_ROOT_SIGNATURE_FLAGS Flags;
-} D3D12_ROOT_SIGNATURE_DESC;
-
-typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS
-{
- D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0x0,
- D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
- D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
- D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
- D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
- D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000,
-} D3D12_DESCRIPTOR_RANGE_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS );")
-
-typedef struct D3D12_DESCRIPTOR_RANGE1
-{
- D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
- UINT NumDescriptors;
- UINT BaseShaderRegister;
- UINT RegisterSpace;
- D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
- UINT OffsetInDescriptorsFromTableStart;
-} D3D12_DESCRIPTOR_RANGE1;
-
-typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1
-{
- UINT NumDescriptorRanges;
- [annotation("_Field_size_full_(NumDescriptorRanges)")] const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges;
-} D3D12_ROOT_DESCRIPTOR_TABLE1;
-
-typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS
-{
- D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0x0,
- D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
- D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
- D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8,
-} D3D12_ROOT_DESCRIPTOR_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS );")
-
-typedef struct D3D12_ROOT_DESCRIPTOR1
-{
- UINT ShaderRegister;
- UINT RegisterSpace;
- D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
-} D3D12_ROOT_DESCRIPTOR1;
-
-typedef struct D3D12_ROOT_PARAMETER1
-{
- D3D12_ROOT_PARAMETER_TYPE ParameterType;
- union
- {
- D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
- D3D12_ROOT_CONSTANTS Constants;
- D3D12_ROOT_DESCRIPTOR1 Descriptor;
- };
- D3D12_SHADER_VISIBILITY ShaderVisibility;
-} D3D12_ROOT_PARAMETER1;
-
-typedef struct D3D12_ROOT_SIGNATURE_DESC1
-{
- UINT NumParameters;
- [annotation("_Field_size_full_(NumParameters)")] const D3D12_ROOT_PARAMETER1* pParameters;
- UINT NumStaticSamplers;
- [annotation("_Field_size_full_(NumStaticSamplers)")] const D3D12_STATIC_SAMPLER_DESC* pStaticSamplers;
- D3D12_ROOT_SIGNATURE_FLAGS Flags;
-} D3D12_ROOT_SIGNATURE_DESC1;
-
-
-typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
-{
- D3D_ROOT_SIGNATURE_VERSION Version;
- union
- {
- D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
- D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
- };
-} D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
-
-[ uuid( 34AB647B-3CC8-46AC-841B-C0965645C046 ), object, local, pointer_default( unique ) ]
-interface ID3D12RootSignatureDeserializer
- : IUnknown
-{
- const D3D12_ROOT_SIGNATURE_DESC * GetRootSignatureDesc();
-};
-
-[ uuid( 7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0 ), object, local, pointer_default( unique ) ]
-interface ID3D12VersionedRootSignatureDeserializer
- : IUnknown
-{
- HRESULT GetRootSignatureDescAtVersion(D3D_ROOT_SIGNATURE_VERSION convertToVersion, [annotation("_Out_")] const D3D12_VERSIONED_ROOT_SIGNATURE_DESC** ppDesc);
- const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* GetUnconvertedRootSignatureDesc();
-};
-
-cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(")
-cpp_quote( " _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature," )
-cpp_quote( " _In_ D3D_ROOT_SIGNATURE_VERSION Version," )
-cpp_quote( " _Out_ ID3DBlob** ppBlob," )
-cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" )
-cpp_quote( "" )
-cpp_quote( "HRESULT WINAPI D3D12SerializeRootSignature(")
-cpp_quote( " _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature," )
-cpp_quote( " _In_ D3D_ROOT_SIGNATURE_VERSION Version," )
-cpp_quote( " _Out_ ID3DBlob** ppBlob," )
-cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" )
-cpp_quote( "" )
-cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(")
-cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," )
-cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," )
-cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," )
-cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" )
-cpp_quote( "" )
-cpp_quote( "HRESULT WINAPI D3D12CreateRootSignatureDeserializer(")
-cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," )
-cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," )
-cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," )
-cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" )
-cpp_quote( "" )
-cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(" )
-cpp_quote( " _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature," )
-cpp_quote( " _Out_ ID3DBlob** ppBlob," )
-cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" )
-cpp_quote( "" )
-cpp_quote( "HRESULT WINAPI D3D12SerializeVersionedRootSignature(" )
-cpp_quote( " _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature," )
-cpp_quote( " _Out_ ID3DBlob** ppBlob," )
-cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" )
-cpp_quote( "" )
-cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(" )
-cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," )
-cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," )
-cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," )
-cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" )
-cpp_quote( "" )
-cpp_quote( "HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(")
-cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," )
-cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," )
-cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," )
-cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" )
-cpp_quote( "" )
-
-
-
-typedef struct D3D12_CPU_DESCRIPTOR_HANDLE
-{
- SIZE_T ptr;
-} D3D12_CPU_DESCRIPTOR_HANDLE;
-
-
-typedef struct D3D12_GPU_DESCRIPTOR_HANDLE
-{
- UINT64 ptr;
-} D3D12_GPU_DESCRIPTOR_HANDLE;
-
-cpp_quote( "// If rects are supplied in D3D12_DISCARD_REGION, below, the resource " )
-cpp_quote( "// must have 2D subresources with all specified subresources the same dimension." )
-typedef struct D3D12_DISCARD_REGION
-{
- UINT NumRects;
- [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects;
- UINT FirstSubresource;
- UINT NumSubresources;
-} D3D12_DISCARD_REGION;
-
-typedef enum D3D12_QUERY_HEAP_TYPE
-{
- D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
- D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
- D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
- D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3,
- D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4,
- D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5,
- D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7,
-
-} D3D12_QUERY_HEAP_TYPE;
-
-typedef struct D3D12_QUERY_HEAP_DESC
-{
- D3D12_QUERY_HEAP_TYPE Type;
- UINT Count;
- UINT NodeMask;
-} D3D12_QUERY_HEAP_DESC;
-
-typedef enum D3D12_QUERY_TYPE
-{
- D3D12_QUERY_TYPE_OCCLUSION = 0,
- D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
- D3D12_QUERY_TYPE_TIMESTAMP = 2,
- D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
- D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
- D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
- D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
- D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7,
- D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8,
- D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10,
-
-} D3D12_QUERY_TYPE;
-
-typedef enum D3D12_PREDICATION_OP
-{
- D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
- D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1,
-} D3D12_PREDICATION_OP;
-
-typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
-{
- UINT64 IAVertices;
- UINT64 IAPrimitives;
- UINT64 VSInvocations;
- UINT64 GSInvocations;
- UINT64 GSPrimitives;
- UINT64 CInvocations;
- UINT64 CPrimitives;
- UINT64 PSInvocations;
- UINT64 HSInvocations;
- UINT64 DSInvocations;
- UINT64 CSInvocations;
-} D3D12_QUERY_DATA_PIPELINE_STATISTICS;
-
-typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1
-{
- UINT64 IAVertices;
- UINT64 IAPrimitives;
- UINT64 VSInvocations;
- UINT64 GSInvocations;
- UINT64 GSPrimitives;
- UINT64 CInvocations;
- UINT64 CPrimitives;
- UINT64 PSInvocations;
- UINT64 HSInvocations;
- UINT64 DSInvocations;
- UINT64 CSInvocations;
- UINT64 ASInvocations;
- UINT64 MSInvocations;
- UINT64 MSPrimitives;
-} D3D12_QUERY_DATA_PIPELINE_STATISTICS1;
-
-typedef struct D3D12_QUERY_DATA_SO_STATISTICS
-{
- UINT64 NumPrimitivesWritten;
- UINT64 PrimitivesStorageNeeded;
-} D3D12_QUERY_DATA_SO_STATISTICS;
-
-typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW
-{
- D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
- UINT64 SizeInBytes;
- D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
-} D3D12_STREAM_OUTPUT_BUFFER_VIEW;
-
-typedef struct D3D12_DRAW_ARGUMENTS
-{
- UINT VertexCountPerInstance;
- UINT InstanceCount;
- UINT StartVertexLocation;
- UINT StartInstanceLocation;
-} D3D12_DRAW_ARGUMENTS;
-
-typedef struct D3D12_DRAW_INDEXED_ARGUMENTS
-{
- UINT IndexCountPerInstance;
- UINT InstanceCount;
- UINT StartIndexLocation;
- INT BaseVertexLocation;
- UINT StartInstanceLocation;
-} D3D12_DRAW_INDEXED_ARGUMENTS;
-
-typedef struct D3D12_DISPATCH_ARGUMENTS
-{
- UINT ThreadGroupCountX;
- UINT ThreadGroupCountY;
- UINT ThreadGroupCountZ;
-} D3D12_DISPATCH_ARGUMENTS;
-
-typedef struct D3D12_VERTEX_BUFFER_VIEW
-{
- D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
- UINT SizeInBytes;
- UINT StrideInBytes;
-} D3D12_VERTEX_BUFFER_VIEW;
-
-typedef struct D3D12_INDEX_BUFFER_VIEW
-{
- D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
- UINT SizeInBytes;
- DXGI_FORMAT Format;
-} D3D12_INDEX_BUFFER_VIEW;
-
-typedef enum D3D12_INDIRECT_ARGUMENT_TYPE
-{
- D3D12_INDIRECT_ARGUMENT_TYPE_DRAW,
- D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED,
- D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH,
- D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW,
- D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW,
- D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT,
- D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW,
- D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW,
- D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW,
- D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS,
- D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH,
-} D3D12_INDIRECT_ARGUMENT_TYPE;
-
-typedef struct D3D12_INDIRECT_ARGUMENT_DESC
-{
- D3D12_INDIRECT_ARGUMENT_TYPE Type;
-
- union
- {
- struct
- {
- UINT Slot;
- } VertexBuffer;
-
- struct
- {
- UINT RootParameterIndex;
- UINT DestOffsetIn32BitValues;
- UINT Num32BitValuesToSet;
- } Constant;
-
- struct
- {
- UINT RootParameterIndex;
- } ConstantBufferView;
-
- struct
- {
- UINT RootParameterIndex;
- } ShaderResourceView;
-
- struct
- {
- UINT RootParameterIndex;
- } UnorderedAccessView;
- };
-} D3D12_INDIRECT_ARGUMENT_DESC;
-
-typedef struct D3D12_COMMAND_SIGNATURE_DESC
-{
- // The number of bytes between each drawing structure
- UINT ByteStride;
- UINT NumArgumentDescs;
- [annotation("_Field_size_full_(NumArgumentDescs)")] const D3D12_INDIRECT_ARGUMENT_DESC* pArgumentDescs;
- UINT NodeMask;
-} D3D12_COMMAND_SIGNATURE_DESC;
-
-interface ID3D12Device;
-
-[ uuid( c4fec28f-7966-4e95-9f94-f431cb56c3b8 ), object, local, pointer_default( unique ) ]
-interface ID3D12Object
- : IUnknown
-{
- HRESULT GetPrivateData(
- [annotation("_In_")] REFGUID guid,
- [annotation("_Inout_")] UINT* pDataSize,
- [annotation("_Out_writes_bytes_opt_( *pDataSize )")] void* pData );
- HRESULT SetPrivateData(
- [annotation("_In_")] REFGUID guid,
- [annotation("_In_")] UINT DataSize,
- [annotation("_In_reads_bytes_opt_( DataSize )")] const void* pData );
- HRESULT SetPrivateDataInterface(
- [annotation("_In_")] REFGUID guid,
- [annotation("_In_opt_")] const IUnknown* pData );
- HRESULT SetName(
- [annotation("_In_z_")] LPCWSTR Name );
-}
-
-[ uuid( 905db94b-a00c-4140-9df5-2b64ca9ea357 ), object, local, pointer_default( unique ) ]
-interface ID3D12DeviceChild
- : ID3D12Object
-{
- HRESULT GetDevice(
- [in] REFIID riid,
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvDevice
- );
-}
-
-[ uuid( 63ee58fb-1268-4835-86da-f008ce62f0d6 ), object, local, pointer_default( unique ) ]
-interface ID3D12Pageable
- : ID3D12DeviceChild
-{
-}
-
-[ uuid( 6b3b2502-6e51-45b3-90ee-9884265e8df3 ), object, local, pointer_default( unique ) ]
-interface ID3D12Heap
- : ID3D12Pageable
-{
- D3D12_HEAP_DESC GetDesc();
-}
-
-[ uuid( 696442be-a72e-4059-bc79-5b5c98040fad ), object, local, pointer_default( unique ) ]
-interface ID3D12Resource
- : ID3D12Pageable
-{
- HRESULT Map(
- UINT Subresource,
- [annotation("_In_opt_")] const D3D12_RANGE* pReadRange,
- [annotation("_Outptr_opt_result_bytebuffer_(_Inexpressible_(\"Dependent on resource\"))")] void** ppData);
-
- void Unmap(UINT Subresource, [annotation("_In_opt_")] const D3D12_RANGE* pWrittenRange );
-
- D3D12_RESOURCE_DESC GetDesc();
-
- D3D12_GPU_VIRTUAL_ADDRESS GetGPUVirtualAddress();
-
- HRESULT WriteToSubresource(
- UINT DstSubresource,
- [annotation("_In_opt_")] const D3D12_BOX* pDstBox,
- [annotation("_In_")] const void* pSrcData,
- UINT SrcRowPitch,
- UINT SrcDepthPitch );
-
- HRESULT ReadFromSubresource(
- [annotation("_Out_")] void* pDstData,
- UINT DstRowPitch,
- UINT DstDepthPitch,
- UINT SrcSubresource,
- [annotation("_In_opt_")] const D3D12_BOX* pSrcBox );
-
- HRESULT GetHeapProperties(
- [annotation("_Out_opt_")] D3D12_HEAP_PROPERTIES* pHeapProperties,
- [annotation("_Out_opt_")] D3D12_HEAP_FLAGS* pHeapFlags
- );
-}
-
-[ uuid( 6102dee4-af59-4b09-b999-b44d73f09b24 ), object, local, pointer_default( unique ) ]
-interface ID3D12CommandAllocator
- : ID3D12Pageable
-{
- HRESULT Reset();
-}
-
-[ uuid( 0a753dcf-c4d8-4b91-adf6-be5a60d95a76 ), object, local, pointer_default( unique ) ]
-interface ID3D12Fence
- : ID3D12Pageable
-{
- UINT64 GetCompletedValue();
- HRESULT SetEventOnCompletion(UINT64 Value, HANDLE hEvent);
- HRESULT Signal(UINT64 Value);
-};
-
-[ uuid( 433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a ), object, local, pointer_default( unique ) ]
-interface ID3D12Fence1
- : ID3D12Fence
-{
- D3D12_FENCE_FLAGS GetCreationFlags();
-};
-
-[ uuid( 765a30f3-f624-4c6f-a828-ace948622445 ), object, local, pointer_default( unique ) ]
-interface ID3D12PipelineState
- : ID3D12Pageable
-{
- HRESULT GetCachedBlob([annotation("_COM_Outptr_")] ID3DBlob** ppBlob);
-}
-
-[ uuid( 8efb471d-616c-4f49-90f7-127bb763fa51 ), object, local, pointer_default( unique ) ]
-interface ID3D12DescriptorHeap
- : ID3D12Pageable
-{
- D3D12_DESCRIPTOR_HEAP_DESC GetDesc();
-
- D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandleForHeapStart();
- D3D12_GPU_DESCRIPTOR_HANDLE GetGPUDescriptorHandleForHeapStart();
-}
-
-[ uuid( 0d9658ae-ed45-469e-a61d-970ec583cab4 ), object, local, pointer_default( unique ) ]
-interface ID3D12QueryHeap
- : ID3D12Pageable
-{
-};
-
-[ uuid( c36a797c-ec80-4f0a-8985-a7b2475082d1 ), object, local, pointer_default( unique ) ]
-interface ID3D12CommandSignature
- : ID3D12Pageable
-{
-};
-
-[ uuid( 7116d91c-e7e4-47ce-b8c6-ec8168f437e5 ), object, local, pointer_default( unique ) ]
-interface ID3D12CommandList
- : ID3D12DeviceChild
-{
- D3D12_COMMAND_LIST_TYPE GetType();
-}
-
-// Superseded by ID3D12GraphicsCommandList1
-[ uuid( 5b160d0f-ac1b-4185-8ba8-b3ae42a5a455 ), object, local, pointer_default( unique ) ]
-interface ID3D12GraphicsCommandList
- : ID3D12CommandList
-{
- HRESULT Close();
-
- HRESULT Reset(
- [annotation("_In_")] ID3D12CommandAllocator* pAllocator,
- [annotation("_In_opt_")] ID3D12PipelineState* pInitialState
- );
-
- void ClearState(
- [annotation("_In_opt_")] ID3D12PipelineState* pPipelineState
- );
-
- void DrawInstanced(
- [annotation("_In_")] UINT VertexCountPerInstance,
- [annotation("_In_")] UINT InstanceCount,
- [annotation("_In_")] UINT StartVertexLocation,
- [annotation("_In_")] UINT StartInstanceLocation
- );
-
- void DrawIndexedInstanced(
- [annotation("_In_")] UINT IndexCountPerInstance,
- [annotation("_In_")] UINT InstanceCount,
- [annotation("_In_")] UINT StartIndexLocation,
- [annotation("_In_")] INT BaseVertexLocation,
- [annotation("_In_")] UINT StartInstanceLocation
- );
-
- void Dispatch(
- [annotation("_In_")] UINT ThreadGroupCountX,
- [annotation("_In_")] UINT ThreadGroupCountY,
- [annotation("_In_")] UINT ThreadGroupCountZ
- );
-
- void CopyBufferRegion(
- [annotation("_In_")] ID3D12Resource* pDstBuffer,
- UINT64 DstOffset,
- [annotation("_In_")] ID3D12Resource* pSrcBuffer,
- UINT64 SrcOffset,
- UINT64 NumBytes
- );
-
- void CopyTextureRegion(
- [annotation("_In_")] const D3D12_TEXTURE_COPY_LOCATION* pDst,
- UINT DstX, UINT DstY, UINT DstZ,
- [annotation("_In_")] const D3D12_TEXTURE_COPY_LOCATION* pSrc,
- [annotation("_In_opt_")] const D3D12_BOX* pSrcBox
- );
-
- void CopyResource(
- [annotation("_In_")] ID3D12Resource* pDstResource,
- [annotation("_In_")] ID3D12Resource* pSrcResource
- );
-
- void CopyTiles(
- [annotation("_In_")] ID3D12Resource* pTiledResource,
- [annotation("_In_")] const D3D12_TILED_RESOURCE_COORDINATE* pTileRegionStartCoordinate,
- [annotation("_In_")] const D3D12_TILE_REGION_SIZE* pTileRegionSize,
- [annotation("_In_")] ID3D12Resource* pBuffer,
- UINT64 BufferStartOffsetInBytes,
- D3D12_TILE_COPY_FLAGS Flags
- );
-
- void ResolveSubresource(
- [annotation("_In_")] ID3D12Resource* pDstResource,
- [annotation("_In_")] UINT DstSubresource,
- [annotation("_In_")] ID3D12Resource* pSrcResource,
- [annotation("_In_")] UINT SrcSubresource,
- [annotation("_In_")] DXGI_FORMAT Format
- );
-
- void IASetPrimitiveTopology(
- [annotation("_In_")] D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology
- );
-
- void RSSetViewports(
- [annotation("_In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)")] UINT NumViewports,
- [annotation("_In_reads_( NumViewports)")] const D3D12_VIEWPORT* pViewports
- );
-
- void RSSetScissorRects(
- [annotation("_In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)")] UINT NumRects,
- [annotation("_In_reads_( NumRects)")] const D3D12_RECT* pRects
- );
-
- void OMSetBlendFactor(
- [annotation("_In_reads_opt_(4)")] const FLOAT BlendFactor[ 4 ]
- );
-
- void OMSetStencilRef(
- [annotation("_In_")] UINT StencilRef
- );
-
- void SetPipelineState(
- [annotation("_In_")] ID3D12PipelineState* pPipelineState
- );
-
- void ResourceBarrier(
- [annotation("_In_")] UINT NumBarriers,
- [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers
- );
-
- void ExecuteBundle(
- [annotation("_In_")] ID3D12GraphicsCommandList* pCommandList
- );
-
- void SetDescriptorHeaps(
- [annotation("_In_")] UINT NumDescriptorHeaps,
- [annotation("_In_reads_(NumDescriptorHeaps)")] ID3D12DescriptorHeap* const* ppDescriptorHeaps
- );
-
- void SetComputeRootSignature(
- [annotation("_In_opt_")] ID3D12RootSignature* pRootSignature
- );
-
- void SetGraphicsRootSignature(
- [annotation("_In_opt_")] ID3D12RootSignature* pRootSignature
- );
-
- void SetComputeRootDescriptorTable(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor
- );
-
- void SetGraphicsRootDescriptorTable(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor
- );
-
- // Single constant
- void SetComputeRoot32BitConstant(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] UINT SrcData,
- [annotation("_In_")] UINT DestOffsetIn32BitValues
- );
-
- void SetGraphicsRoot32BitConstant(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] UINT SrcData,
- [annotation("_In_")] UINT DestOffsetIn32BitValues
- );
-
- // Group of constants
- void SetComputeRoot32BitConstants(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] UINT Num32BitValuesToSet,
- [annotation("_In_reads_(Num32BitValuesToSet*sizeof(UINT))")] const void* pSrcData,
- [annotation("_In_")] UINT DestOffsetIn32BitValues
- );
-
- void SetGraphicsRoot32BitConstants(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] UINT Num32BitValuesToSet,
- [annotation("_In_reads_(Num32BitValuesToSet*sizeof(UINT))")] const void* pSrcData,
- [annotation("_In_")] UINT DestOffsetIn32BitValues
- );
-
- // CBV
- void SetComputeRootConstantBufferView(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
- );
-
- void SetGraphicsRootConstantBufferView(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
- );
-
- // SRV
- void SetComputeRootShaderResourceView(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
- );
-
- void SetGraphicsRootShaderResourceView(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
- );
-
- // UAV
- void SetComputeRootUnorderedAccessView(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
- );
-
- void SetGraphicsRootUnorderedAccessView(
- [annotation("_In_")] UINT RootParameterIndex,
- [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation
- );
-
- void IASetIndexBuffer(
- [annotation("_In_opt_")] const D3D12_INDEX_BUFFER_VIEW* pView
- );
-
- void IASetVertexBuffers(
- [annotation("_In_")] UINT StartSlot,
- [annotation("_In_")] UINT NumViews,
- [annotation("_In_reads_opt_(NumViews)")] const D3D12_VERTEX_BUFFER_VIEW* pViews
- );
-
- void SOSetTargets(
- [annotation("_In_")] UINT StartSlot,
- [annotation("_In_")] UINT NumViews,
- [annotation("_In_reads_opt_(NumViews)")] const D3D12_STREAM_OUTPUT_BUFFER_VIEW* pViews
- );
-
- void OMSetRenderTargets(
- [annotation("_In_")] UINT NumRenderTargetDescriptors,
- [annotation("_In_opt_")] const D3D12_CPU_DESCRIPTOR_HANDLE* pRenderTargetDescriptors,
- [annotation("_In_")] BOOL RTsSingleHandleToDescriptorRange,
- [annotation("_In_opt_")] const D3D12_CPU_DESCRIPTOR_HANDLE* pDepthStencilDescriptor
- );
-
- void ClearDepthStencilView(
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView,
- [annotation("_In_")] D3D12_CLEAR_FLAGS ClearFlags,
- [annotation("_In_")] FLOAT Depth,
- [annotation("_In_")] UINT8 Stencil,
- [annotation("_In_")] UINT NumRects,
- [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects
- );
-
- void ClearRenderTargetView(
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView,
- [annotation("_In_")] const FLOAT ColorRGBA[4],
- [annotation("_In_")] UINT NumRects,
- [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects
- );
-
- void ClearUnorderedAccessViewUint(
- [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
- [annotation("_In_")] ID3D12Resource* pResource,
- [annotation("_In_")] const UINT Values[4],
- [annotation("_In_")] UINT NumRects,
- [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects
- );
-
- void ClearUnorderedAccessViewFloat(
- [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
- [annotation("_In_")] ID3D12Resource* pResource,
- [annotation("_In_")] const FLOAT Values[4],
- [annotation("_In_")] UINT NumRects,
- [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects
- );
-
- void DiscardResource(
- [annotation("_In_")] ID3D12Resource* pResource,
- [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion
- );
-
- void BeginQuery(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT Index
- );
-
- void EndQuery(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT Index
- );
-
- void ResolveQueryData(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT StartIndex,
- [annotation("_In_")] UINT NumQueries,
- [annotation("_In_")] ID3D12Resource* pDestinationBuffer,
- [annotation("_In_")] UINT64 AlignedDestinationBufferOffset
- );
-
- void SetPredication(
- [annotation("_In_opt_")] ID3D12Resource* pBuffer,
- [annotation("_In_")] UINT64 AlignedBufferOffset,
- [annotation("_In_")] D3D12_PREDICATION_OP Operation
- );
-
- void SetMarker(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size);
- void BeginEvent(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size);
- void EndEvent();
-
- void ExecuteIndirect(
- [annotation("_In_")] ID3D12CommandSignature* pCommandSignature,
- [annotation("_In_")] UINT MaxCommandCount,
- [annotation("_In_")] ID3D12Resource* pArgumentBuffer,
- [annotation("_In_")] UINT64 ArgumentBufferOffset,
- [annotation("_In_opt_")] ID3D12Resource* pCountBuffer,
- [annotation("_In_")] UINT64 CountBufferOffset
- );
-}
-
-[ uuid( 553103fb-1fe7-4557-bb38-946d7d0e7ca7 ), object, local, pointer_default( unique ) ]
-interface ID3D12GraphicsCommandList1
- : ID3D12GraphicsCommandList
-{
- void AtomicCopyBufferUINT(
- [annotation("_In_")] ID3D12Resource* pDstBuffer,
- UINT64 DstOffset,
- [annotation("_In_")] ID3D12Resource* pSrcBuffer,
- UINT64 SrcOffset,
- UINT Dependencies, // 0 Dependencies means only the dst buffer offset is synchronized
- [annotation("_In_reads_(Dependencies)")] ID3D12Resource*const* ppDependentResources,
- [annotation("_In_reads_(Dependencies)")] const D3D12_SUBRESOURCE_RANGE_UINT64* pDependentSubresourceRanges
- );
-
- // UINT64 is only valid on UMA architectures
- void AtomicCopyBufferUINT64(
- [annotation("_In_")] ID3D12Resource* pDstBuffer,
- UINT64 DstOffset,
- [annotation("_In_")] ID3D12Resource* pSrcBuffer,
- UINT64 SrcOffset,
- UINT Dependencies, // 0 Dependencies means only the dst buffer offset is synchronized
- [annotation("_In_reads_(Dependencies)")] ID3D12Resource*const* ppDependentResources,
- [annotation("_In_reads_(Dependencies)")] const D3D12_SUBRESOURCE_RANGE_UINT64* pDependentSubresourceRanges
- );
-
- void OMSetDepthBounds(
- [annotation("_In_")] FLOAT Min,
- [annotation("_In_")] FLOAT Max
- );
-
- void SetSamplePositions(
- [annotation("_In_")] UINT NumSamplesPerPixel,
- [annotation("_In_")] UINT NumPixels,
- [annotation("_In_reads_(NumSamplesPerPixel*NumPixels)")] D3D12_SAMPLE_POSITION* pSamplePositions
- );
-
- void ResolveSubresourceRegion(
- [annotation("_In_")] ID3D12Resource* pDstResource,
- [annotation("_In_")] UINT DstSubresource,
- [annotation("_In_")] UINT DstX,
- [annotation("_In_")] UINT DstY,
- [annotation("_In_")] ID3D12Resource* pSrcResource,
- [annotation("_In_")] UINT SrcSubresource,
- [annotation("_In_opt_")] D3D12_RECT* pSrcRect,
- [annotation("_In_")] DXGI_FORMAT Format,
- [annotation("_In_")] D3D12_RESOLVE_MODE ResolveMode
- );
-
- void SetViewInstanceMask(
- [annotation("_In_")] UINT Mask
- );
-
-}
-
-typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER
-{
- D3D12_GPU_VIRTUAL_ADDRESS Dest;
- UINT32 Value;
-} D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
-
-typedef enum D3D12_WRITEBUFFERIMMEDIATE_MODE
-{
- D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0x0,
- D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
- D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2,
-
-} D3D12_WRITEBUFFERIMMEDIATE_MODE;
-
-[uuid(38C3E585-FF17-412C-9150-4FC6F9D72A28), object, local, pointer_default(unique)]
-interface ID3D12GraphicsCommandList2 : ID3D12GraphicsCommandList1
-{
- void WriteBufferImmediate(
- UINT Count,
- [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
- [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes
- );
-}
-
-[ uuid( 0ec870a6-5d7e-4c22-8cfc-5baae07616ed ), object, local, pointer_default( unique ) ]
-interface ID3D12CommandQueue
- : ID3D12Pageable
-{
- void UpdateTileMappings(
- [annotation("_In_")] ID3D12Resource* pResource,
- UINT NumResourceRegions,
- [annotation("_In_reads_opt_(NumResourceRegions)")] const D3D12_TILED_RESOURCE_COORDINATE* pResourceRegionStartCoordinates,
- [annotation("_In_reads_opt_(NumResourceRegions)")] const D3D12_TILE_REGION_SIZE* pResourceRegionSizes,
- [annotation("_In_opt_")] ID3D12Heap* pHeap,
- UINT NumRanges,
- [annotation("_In_reads_opt_(NumRanges)")] const D3D12_TILE_RANGE_FLAGS* pRangeFlags,
- [annotation("_In_reads_opt_(NumRanges)")] const UINT* pHeapRangeStartOffsets,
- [annotation("_In_reads_opt_(NumRanges)")] const UINT* pRangeTileCounts,
- D3D12_TILE_MAPPING_FLAGS Flags );
-
- void CopyTileMappings(
- [annotation("_In_")] ID3D12Resource* pDstResource,
- [annotation("_In_")] const D3D12_TILED_RESOURCE_COORDINATE* pDstRegionStartCoordinate,
- [annotation("_In_")] ID3D12Resource* pSrcResource,
- [annotation("_In_")] const D3D12_TILED_RESOURCE_COORDINATE* pSrcRegionStartCoordinate,
- [annotation("_In_")] const D3D12_TILE_REGION_SIZE* pRegionSize,
- D3D12_TILE_MAPPING_FLAGS Flags );
-
- void ExecuteCommandLists(
- [annotation("_In_")] UINT NumCommandLists,
- [annotation("_In_reads_(NumCommandLists)")] ID3D12CommandList * const * ppCommandLists
- );
-
- void SetMarker(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size);
- void BeginEvent(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size);
- void EndEvent();
-
- HRESULT Signal(ID3D12Fence* pFence, UINT64 Value);
- HRESULT Wait(ID3D12Fence* pFence, UINT64 Value);
-
- HRESULT GetTimestampFrequency(
- [annotation("_Out_")] UINT64* pFrequency
- );
-
- HRESULT GetClockCalibration(
- [annotation("_Out_")] UINT64* pGpuTimestamp,
- [annotation("_Out_")] UINT64* pCpuTimestamp
- );
-
- D3D12_COMMAND_QUEUE_DESC GetDesc();
-}
-
-//--------------------------------------------------------------------------------------------------------
-// The system LUID struct isn't defined in wtypes, so we repeat it here just
-// for the MIDL compiler.
-cpp_quote("#ifdef __midl")
-cpp_quote("#ifndef LUID_DEFINED")
-cpp_quote("#define LUID_DEFINED 1")
-typedef struct __LUID {
- DWORD LowPart;
- LONG HighPart;
-} LUID, *PLUID;
-cpp_quote("#endif")
-cpp_quote("#endif")
-
-[ uuid( 189819f1-1db6-4b57-be54-1821339b85f7 ), object, local, pointer_default( unique ) ]
-interface ID3D12Device
- : ID3D12Object
-{
- UINT GetNodeCount();
-
- HRESULT CreateCommandQueue(
- [annotation("_In_")] const D3D12_COMMAND_QUEUE_DESC* pDesc,
- [in] REFIID riid, // Expected: ID3D12CommandQueue
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandQueue
- );
-
- HRESULT CreateCommandAllocator(
- [annotation("_In_")] D3D12_COMMAND_LIST_TYPE type,
- [in] REFIID riid, // Expected: ID3D12CommandAllocator
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandAllocator
- );
-
- HRESULT CreateGraphicsPipelineState(
- [annotation("_In_")] const D3D12_GRAPHICS_PIPELINE_STATE_DESC* pDesc,
- [in] REFIID riid, // Expected: ID3D12PipelineState
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState
- );
-
- HRESULT CreateComputePipelineState(
- [annotation("_In_")] const D3D12_COMPUTE_PIPELINE_STATE_DESC* pDesc,
- [in] REFIID riid, // Expected: ID3D12PipelineState
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState
- );
-
- HRESULT CreateCommandList(
- [annotation("_In_")] UINT nodeMask,
- [annotation("_In_")] D3D12_COMMAND_LIST_TYPE type,
- [annotation("_In_")] ID3D12CommandAllocator* pCommandAllocator,
- [annotation("_In_opt_")] ID3D12PipelineState* pInitialState,
- [in] REFIID riid, // Expected: ID3D12CommandList
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandList
- );
-
- HRESULT CheckFeatureSupport(
- D3D12_FEATURE Feature,
- [annotation("_Inout_updates_bytes_(FeatureSupportDataSize)")] void* pFeatureSupportData,
- UINT FeatureSupportDataSize
- );
-
- HRESULT CreateDescriptorHeap(
- [annotation("_In_")] const D3D12_DESCRIPTOR_HEAP_DESC* pDescriptorHeapDesc,
- [in] REFIID riid, // Expected ID3D12DescriptorHeap
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap);
-
- UINT GetDescriptorHandleIncrementSize(
- [annotation("_In_")] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
-
- HRESULT CreateRootSignature(
- [annotation("_In_")] UINT nodeMask,
- [annotation("_In_reads_(blobLengthInBytes)")] const void* pBlobWithRootSignature,
- [annotation("_In_")] SIZE_T blobLengthInBytes,
- [in] REFIID riid, // Expected ID3D12RootSignature
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvRootSignature);
-
- void CreateConstantBufferView(
- [annotation("_In_opt_")] const D3D12_CONSTANT_BUFFER_VIEW_DESC* pDesc,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
-
- void CreateShaderResourceView(
- [annotation("_In_opt_")] ID3D12Resource* pResource,
- [annotation("_In_opt_")] const D3D12_SHADER_RESOURCE_VIEW_DESC* pDesc,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
-
- void CreateUnorderedAccessView(
- [annotation("_In_opt_")] ID3D12Resource* pResource,
- [annotation("_In_opt_")] ID3D12Resource* pCounterResource,
- [annotation("_In_opt_")] const D3D12_UNORDERED_ACCESS_VIEW_DESC* pDesc,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
-
- void CreateRenderTargetView(
- [annotation("_In_opt_")] ID3D12Resource* pResource,
- [annotation("_In_opt_")] const D3D12_RENDER_TARGET_VIEW_DESC* pDesc,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
-
- void CreateDepthStencilView(
- [annotation("_In_opt_")] ID3D12Resource* pResource,
- [annotation("_In_opt_")] const D3D12_DEPTH_STENCIL_VIEW_DESC* pDesc,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
-
- void CreateSampler(
- [annotation("_In_")] const D3D12_SAMPLER_DESC* pDesc,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
-
- void CopyDescriptors(
- [annotation("_In_")] UINT NumDestDescriptorRanges,
- [annotation("_In_reads_(NumDestDescriptorRanges)")] const D3D12_CPU_DESCRIPTOR_HANDLE* pDestDescriptorRangeStarts,
- [annotation("_In_reads_opt_(NumDestDescriptorRanges)")] const UINT* pDestDescriptorRangeSizes, // NULL means all ranges 1
- [annotation("_In_")] UINT NumSrcDescriptorRanges,
- [annotation("_In_reads_(NumSrcDescriptorRanges)")] const D3D12_CPU_DESCRIPTOR_HANDLE* pSrcDescriptorRangeStarts,
- [annotation("_In_reads_opt_(NumSrcDescriptorRanges)")] const UINT* pSrcDescriptorRangeSizes, // NULL means all ranges 1
- [annotation("_In_")] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
-
- void CopyDescriptorsSimple(
- [annotation("_In_")] UINT NumDescriptors,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
- [annotation("_In_")] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
-
- D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo(
- [annotation("_In_")] UINT visibleMask,
- [annotation("_In_")] UINT numResourceDescs,
- [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC* pResourceDescs );
-
- D3D12_HEAP_PROPERTIES GetCustomHeapProperties(
- [annotation("_In_")] UINT nodeMask,
- D3D12_HEAP_TYPE heapType
- );
-
- HRESULT CreateCommittedResource(
- [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties,
- D3D12_HEAP_FLAGS HeapFlags,
- [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc,
- D3D12_RESOURCE_STATES InitialResourceState,
- [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue,
- [in] REFIID riidResource, // Expected: ID3D12Resource*
- [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource );
-
- HRESULT CreateHeap(
- [annotation("_In_")] const D3D12_HEAP_DESC* pDesc,
- [in] REFIID riid, // Expected: ID3D12Heap*
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvHeap );
-
- HRESULT CreatePlacedResource(
- [annotation("_In_")] ID3D12Heap* pHeap,
- UINT64 HeapOffset,
- [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc,
- D3D12_RESOURCE_STATES InitialState,
- [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue,
- [in] REFIID riid, // Expected: ID3D12Resource*
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource );
-
- HRESULT CreateReservedResource(
- [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc,
- D3D12_RESOURCE_STATES InitialState,
- [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue,
- [in] REFIID riid, // Expected: ID3D12Resource*
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource );
-
- HRESULT CreateSharedHandle(
- [annotation("_In_")] ID3D12DeviceChild* pObject,
- [annotation("_In_opt_")] const SECURITY_ATTRIBUTES* pAttributes,
- DWORD Access,
- [annotation("_In_opt_")] LPCWSTR Name,
- [annotation("_Out_")] HANDLE* pHandle );
-
- HRESULT OpenSharedHandle(
- [annotation("_In_")] HANDLE NTHandle,
- [in] REFIID riid, // Expected: ID3D12Resource*, ID3D12Heap*, or ID3D12Fence
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvObj );
-
- HRESULT OpenSharedHandleByName(
- [annotation("_In_")] LPCWSTR Name,
- DWORD Access,
- [out, annotation("_Out_")] HANDLE* pNTHandle );
-
- HRESULT MakeResident(
- UINT NumObjects,
- [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects );
-
- HRESULT Evict(
- UINT NumObjects,
- [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects );
-
- HRESULT CreateFence(
- UINT64 InitialValue,
- D3D12_FENCE_FLAGS Flags,
- [in] REFIID riid, // Expected: ID3D12Fence
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppFence);
-
- HRESULT GetDeviceRemovedReason();
-
- void GetCopyableFootprints(
- [annotation("_In_")] const D3D12_RESOURCE_DESC* pResourceDesc,
- [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES)")] UINT FirstSubresource,
- [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource)")] UINT NumSubresources,
- UINT64 BaseOffset,
- [annotation("_Out_writes_opt_(NumSubresources)")] D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts,
- [annotation("_Out_writes_opt_(NumSubresources)")] UINT* pNumRows,
- [annotation("_Out_writes_opt_(NumSubresources)")] UINT64* pRowSizeInBytes,
- [annotation("_Out_opt_")] UINT64* pTotalBytes );
-
- HRESULT CreateQueryHeap(
- [annotation("_In_")] const D3D12_QUERY_HEAP_DESC* pDesc,
- [in] REFIID riid, // Expected: ID3D12QueryHeap
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvHeap
- );
-
- HRESULT SetStablePowerState(BOOL Enable);
-
- HRESULT CreateCommandSignature(
- [annotation("_In_")] const D3D12_COMMAND_SIGNATURE_DESC* pDesc,
- [annotation("_In_opt_")] ID3D12RootSignature* pRootSignature,
- [in] REFIID riid, // Expected: ID3D12CommandSignature
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvCommandSignature
- );
-
- void GetResourceTiling(
- [annotation("_In_")] ID3D12Resource* pTiledResource,
- [annotation("_Out_opt_")] UINT* pNumTilesForEntireResource,
- [annotation("_Out_opt_")] D3D12_PACKED_MIP_INFO* pPackedMipDesc,
- [annotation("_Out_opt_")] D3D12_TILE_SHAPE* pStandardTileShapeForNonPackedMips,
- [annotation("_Inout_opt_")] UINT* pNumSubresourceTilings,
- [annotation("_In_")] UINT FirstSubresourceTilingToGet,
- [annotation("_Out_writes_(*pNumSubresourceTilings)")] D3D12_SUBRESOURCE_TILING* pSubresourceTilingsForNonPackedMips
- );
-
- LUID GetAdapterLuid();
-}
-
-// D3D12 Revision 1
-[ uuid( c64226a8-9201-46af-b4cc-53fb9ff7414f ), object, local, pointer_default( unique ) ]
-interface ID3D12PipelineLibrary
- : ID3D12DeviceChild
-{
- HRESULT StorePipeline(
- [annotation("_In_opt_")] LPCWSTR pName,
- [annotation("_In_")] ID3D12PipelineState *pPipeline
- );
-
- HRESULT LoadGraphicsPipeline(
- [annotation("_In_")] LPCWSTR pName,
- [annotation("_In_")] const D3D12_GRAPHICS_PIPELINE_STATE_DESC* pDesc,
- [in] REFIID riid, // Expected: ID3D12PipelineState
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState
- );
-
- HRESULT LoadComputePipeline(
- [annotation("_In_")] LPCWSTR pName,
- [annotation("_In_")] const D3D12_COMPUTE_PIPELINE_STATE_DESC* pDesc,
- [in] REFIID riid, // Expected: ID3D12PipelineState
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState
- );
-
- SIZE_T GetSerializedSize();
-
- HRESULT Serialize(
- [annotation("_Out_writes_(DataSizeInBytes)")] void* pData,
- SIZE_T DataSizeInBytes
- );
-}
-
-// Pipeline State v2
-[ uuid( 80eabf42-2568-4e5e-bd82-c37f86961dc3 ), object, local, pointer_default( unique ) ]
-interface ID3D12PipelineLibrary1
- : ID3D12PipelineLibrary
-{
- HRESULT LoadPipeline(
- [annotation("_In_")] LPCWSTR pName,
- [annotation("_In_")] const D3D12_PIPELINE_STATE_STREAM_DESC* pDesc,
- [in] REFIID riid, // Expected: ID3D12PipelineState
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState
- );
-}
-
-typedef enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS
-{
- D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0x0,
- D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
-
- D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0x0, // Alias, default behavior is ALL
-} D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS );" )
-
-// Applications may use the whole value range of UINT for a priority.
-// These names are merely semantic suggestions.
-typedef enum D3D12_RESIDENCY_PRIORITY
-{
- D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
- D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
- D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
- D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
- D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000,
-} D3D12_RESIDENCY_PRIORITY;
-
-[uuid(77acce80-638e-4e65-8895-c1f23386863e), object, local, pointer_default(unique)]
-interface ID3D12Device1
- : ID3D12Device
-{
- HRESULT CreatePipelineLibrary(
- [annotation("_In_reads_(BlobLength)")] const void *pLibraryBlob,
- SIZE_T BlobLength,
- [in] REFIID riid, // Expected: ID3D12PipelineLibrary
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineLibrary
- );
-
- HRESULT SetEventOnMultipleFenceCompletion(
- [annotation("_In_reads_(NumFences)")] ID3D12Fence* const* ppFences,
- [annotation("_In_reads_(NumFences)")] const UINT64* pFenceValues,
- UINT NumFences,
- D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
- HANDLE hEvent
- );
-
- HRESULT SetResidencyPriority(
- UINT NumObjects,
- [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects,
- [annotation("_In_reads_(NumObjects)")] const D3D12_RESIDENCY_PRIORITY* pPriorities );
-}
-
-[uuid(30baa41e-b15b-475c-a0bb-1af5c5b64328), object, local, pointer_default(unique)]
-interface ID3D12Device2
- : ID3D12Device1
-{
- HRESULT CreatePipelineState(
- [in] const D3D12_PIPELINE_STATE_STREAM_DESC* pDesc,
- [in] REFIID riid, // Can be any pipeline state interface, provided the pipeline subobjects match
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState
- );
-}
-
-typedef enum D3D12_RESIDENCY_FLAGS
-{
- D3D12_RESIDENCY_FLAG_NONE = 0x0,
- D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1,
-} D3D12_RESIDENCY_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS );" )
-
-[uuid(81dadc15-2bad-4392-93c5-101345c4aa98), object, local, pointer_default(unique)]
-interface ID3D12Device3
- : ID3D12Device2
-{
- HRESULT OpenExistingHeapFromAddress(
- [annotation("_In_")] const void* pAddress,
- [in] REFIID riid, // Expected: ID3D12Heap
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap
- );
- HRESULT OpenExistingHeapFromFileMapping(
- [annotation("_In_")] HANDLE hFileMapping,
- [in] REFIID riid, // Expected: ID3D12Heap
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap
- );
- HRESULT EnqueueMakeResident(
- D3D12_RESIDENCY_FLAGS Flags,
- UINT NumObjects,
- [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects,
- [annotation("_In_")] ID3D12Fence* pFenceToSignal,
- UINT64 FenceValueToSignal
- );
-}
-
-typedef enum D3D12_COMMAND_LIST_FLAGS
-{
- D3D12_COMMAND_LIST_FLAG_NONE = 0x0,
-} D3D12_COMMAND_LIST_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS );")
-
-
-typedef enum D3D12_COMMAND_POOL_FLAGS
-{
- D3D12_COMMAND_POOL_FLAG_NONE = 0x0,
-
-} D3D12_COMMAND_POOL_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS );")
-
-typedef enum D3D12_COMMAND_RECORDER_FLAGS
-{
- D3D12_COMMAND_RECORDER_FLAG_NONE = 0x0,
-
-} D3D12_COMMAND_RECORDER_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS );")
-
-typedef enum D3D12_PROTECTED_SESSION_STATUS
-{
- D3D12_PROTECTED_SESSION_STATUS_OK = 0,
- D3D12_PROTECTED_SESSION_STATUS_INVALID = 1,
-} D3D12_PROTECTED_SESSION_STATUS;
-
-[uuid(A1533D18-0AC1-4084-85B9-89A96116806B), object, local, pointer_default(unique)]
-interface ID3D12ProtectedSession
- : ID3D12DeviceChild
-{
- HRESULT GetStatusFence(
- [in] REFIID riid,
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppFence);
-
- D3D12_PROTECTED_SESSION_STATUS GetSessionStatus();
-}
-
-typedef enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS
-{
- D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0x0,
- D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1,
-
-} D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS );")
-
-typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT
-{
- UINT NodeIndex; // input
- D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support; // output
-} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT;
-
-typedef enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS
-{
- D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0x0,
-
-} D3D12_PROTECTED_RESOURCE_SESSION_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS );")
-
-typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC
-{
- UINT NodeMask;
- D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
-} D3D12_PROTECTED_RESOURCE_SESSION_DESC;
-
-[uuid(6CD696F4-F289-40CC-8091-5A6C0A099C3D), object, local, pointer_default(unique)]
-interface ID3D12ProtectedResourceSession
- : ID3D12ProtectedSession
-{
- D3D12_PROTECTED_RESOURCE_SESSION_DESC GetDesc();
-}
-
-[uuid(e865df17-a9ee-46f9-a463-3098315aa2e5), object, local, pointer_default(unique)]
-interface ID3D12Device4
- : ID3D12Device3
-{
- HRESULT CreateCommandList1(
- [annotation("_In_")] UINT nodeMask,
- [annotation("_In_")] D3D12_COMMAND_LIST_TYPE type,
- [annotation("_In_")] D3D12_COMMAND_LIST_FLAGS flags,
- [in] REFIID riid, // Expected: ID3D12CommandList
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandList
- );
-
- HRESULT CreateProtectedResourceSession(
- [annotation("_In_")] const D3D12_PROTECTED_RESOURCE_SESSION_DESC* pDesc,
- [annotation("_In_")] REFIID riid, // Expected: ID3D12ProtectedResourceSession,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppSession
- );
-
- HRESULT CreateCommittedResource1(
- [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties,
- D3D12_HEAP_FLAGS HeapFlags,
- [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc,
- D3D12_RESOURCE_STATES InitialResourceState,
- [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue,
- [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession,
- [in] REFIID riidResource, // Expected: ID3D12Resource1*
- [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource
- );
-
- HRESULT CreateHeap1(
- [annotation("_In_")] const D3D12_HEAP_DESC* pDesc,
- [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession,
- [in] REFIID riid, // Expected: ID3D12Heap1*
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvHeap
- );
-
- HRESULT CreateReservedResource1(
- [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc,
- D3D12_RESOURCE_STATES InitialState,
- [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue,
- [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession,
- [in] REFIID riid, // Expected: ID3D12Resource1*
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource
- );
-
- D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo1(
- UINT visibleMask,
- UINT numResourceDescs,
- [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC* pResourceDescs,
- [annotation("_Out_writes_opt_(numResourceDescs)")] D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1
- );
-}
-
-typedef enum D3D12_LIFETIME_STATE
-{
- D3D12_LIFETIME_STATE_IN_USE,
- D3D12_LIFETIME_STATE_NOT_IN_USE,
-} D3D12_LIFETIME_STATE;
-
-interface ID3D12LifetimeTracker;
-
-[uuid(e667af9f-cd56-4f46-83ce-032e595d70a8), object, local, pointer_default(unique)]
-interface ID3D12LifetimeOwner : IUnknown
-{
- void LifetimeStateUpdated(D3D12_LIFETIME_STATE NewState);
-}
-
-[uuid(f1df64b6-57fd-49cd-8807-c0eb88b45c8f), object, local, pointer_default(unique)]
-interface ID3D12SwapChainAssistant
- : IUnknown
-{
- LUID GetLUID();
- HRESULT GetSwapChainObject(REFIID riid, [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppv);
- HRESULT GetCurrentResourceAndCommandQueue(REFIID riidResource, [out, iid_is(riidResource), annotation("_COM_Outptr_")] void** ppvResource,
- REFIID riidQueue, [out, iid_is(riidQueue), annotation("_COM_Outptr_")] void** ppvQueue);
- HRESULT InsertImplicitSync();
-}
-
-[uuid(3fd03d36-4eb1-424a-a582-494ecb8ba813), object, local, pointer_default(unique)]
-interface ID3D12LifetimeTracker
- : ID3D12DeviceChild
-{
- HRESULT DestroyOwnedObject([annotation("_In_")] ID3D12DeviceChild* pObject);
-}
-
-typedef enum D3D12_META_COMMAND_PARAMETER_TYPE
-{
- D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0,
- D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1,
- D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2,
- D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3,
- D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4,
-} D3D12_META_COMMAND_PARAMETER_TYPE;
-
-typedef enum D3D12_META_COMMAND_PARAMETER_FLAGS
-{
- D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x00000001,
- D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x00000002
-} D3D12_META_COMMAND_PARAMETER_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS );")
-
-typedef enum D3D12_META_COMMAND_PARAMETER_STAGE
-{
- D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0,
- D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,
- D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2,
-} D3D12_META_COMMAND_PARAMETER_STAGE;
-
-typedef struct D3D12_META_COMMAND_PARAMETER_DESC
-{
- LPCWSTR Name;
- D3D12_META_COMMAND_PARAMETER_TYPE Type;
- D3D12_META_COMMAND_PARAMETER_FLAGS Flags;
- D3D12_RESOURCE_STATES RequiredResourceState;
- UINT StructureOffset;
-} D3D12_META_COMMAND_PARAMETER_DESC;
-
-typedef enum D3D12_GRAPHICS_STATES
-{
- D3D12_GRAPHICS_STATE_NONE = 0,
- D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = (1 << 0),
- D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = (1 << 1),
- D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = (1 << 2),
- D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = (1 << 3),
- D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = (1 << 4),
- D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = (1 << 5),
- D3D12_GRAPHICS_STATE_RS_VIEWPORTS = (1 << 6),
- D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = (1 << 7),
- D3D12_GRAPHICS_STATE_PREDICATION = (1 << 8),
- D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = (1 << 9),
- D3D12_GRAPHICS_STATE_OM_STENCIL_REF = (1 << 10),
- D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = (1 << 11),
- D3D12_GRAPHICS_STATE_PIPELINE_STATE = (1 << 12),
- D3D12_GRAPHICS_STATE_SO_TARGETS = (1 << 13),
- D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = (1 << 14),
- D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = (1 << 15),
- D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = (1 << 16),
-
-} D3D12_GRAPHICS_STATES;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES );")
-
-typedef struct D3D12_META_COMMAND_DESC
-{
- GUID Id;
- LPCWSTR Name;
- D3D12_GRAPHICS_STATES InitializationDirtyState;
- D3D12_GRAPHICS_STATES ExecutionDirtyState;
-} D3D12_META_COMMAND_DESC;
-
-[uuid(47016943-fca8-4594-93ea-af258b55346d), object, local, pointer_default(unique)]
-interface ID3D12StateObject
- : ID3D12Pageable
-{
-}
-
-[uuid(de5fa827-9bf9-4f26-89ff-d7f56fde3860), object, local, pointer_default(unique)]
-interface ID3D12StateObjectProperties
- : IUnknown
-{
- void* GetShaderIdentifier([annotation("_In_")] LPCWSTR pExportName);
- UINT64 GetShaderStackSize([annotation("_In_")] LPCWSTR pExportName);
- UINT64 GetPipelineStackSize();
- void SetPipelineStackSize(UINT64 PipelineStackSizeInBytes);
-}
-
-typedef enum D3D12_STATE_SUBOBJECT_TYPE
-{
- D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0, // D3D12_STATE_OBJECT_CONFIG
- D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1, // D3D12_GLOBAL_ROOT_SIGNATURE
- D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2, // D3D12_LOCAL_ROOT_SIGNATURE
- D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3, // D3D12_NODE_MASK
- // 4 unused
- D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5, // D3D12_DXIL_LIBRARY_DESC
- D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6, // D3D12_EXISTING_COLLECTION_DESC
- D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7, // D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION
- D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8, // D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION
- D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9, // D3D12_RAYTRACING_SHADER_CONFIG
- D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10, // D3D12_RAYTRACING_PIPELINE_CONFIG
- D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11, // D3D12_HIT_GROUP_DESC
- D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12, // D3D12_RAYTRACING_PIPELINE_CONFIG1
- D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID,
-} D3D12_STATE_SUBOBJECT_TYPE;
-
-typedef struct D3D12_STATE_SUBOBJECT
-{
- D3D12_STATE_SUBOBJECT_TYPE Type;
- const void* pDesc;
-} D3D12_STATE_SUBOBJECT;
-
-typedef enum D3D12_STATE_OBJECT_FLAGS
-{
- D3D12_STATE_OBJECT_FLAG_NONE = 0x0,
- D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1,
- D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2,
- D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4,
-} D3D12_STATE_OBJECT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS );")
-
-typedef struct D3D12_STATE_OBJECT_CONFIG
-{
- D3D12_STATE_OBJECT_FLAGS Flags;
-} D3D12_STATE_OBJECT_CONFIG;
-
-typedef struct D3D12_GLOBAL_ROOT_SIGNATURE
-{
- ID3D12RootSignature* pGlobalRootSignature;
-} D3D12_GLOBAL_ROOT_SIGNATURE;
-
-typedef struct D3D12_LOCAL_ROOT_SIGNATURE
-{
- ID3D12RootSignature* pLocalRootSignature;
-} D3D12_LOCAL_ROOT_SIGNATURE;
-
-typedef struct D3D12_NODE_MASK
-{
- UINT NodeMask;
-} D3D12_NODE_MASK;
-
-typedef enum D3D12_EXPORT_FLAGS
-{
- D3D12_EXPORT_FLAG_NONE = 0x0,
-} D3D12_EXPORT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS );")
-
-typedef struct D3D12_EXPORT_DESC
-{
- LPCWSTR Name;
- [annotation("_In_opt_")] LPCWSTR ExportToRename;
- D3D12_EXPORT_FLAGS Flags;
-} D3D12_EXPORT_DESC;
-
-typedef struct D3D12_DXIL_LIBRARY_DESC
-{
- D3D12_SHADER_BYTECODE DXILLibrary;
- UINT NumExports; // Optional, if 0 all exports in the library/collection will be surfaced
- [annotation("_In_reads_(NumExports)")] D3D12_EXPORT_DESC* pExports;
-} D3D12_DXIL_LIBRARY_DESC;
-
-typedef struct D3D12_EXISTING_COLLECTION_DESC
-{
- ID3D12StateObject* pExistingCollection;
- UINT NumExports; // Optional, if 0 all exports in the library/collection will be surfaced
- [annotation("_In_reads_(NumExports)")] D3D12_EXPORT_DESC* pExports;
-} D3D12_EXISTING_COLLECTION_DESC;
-
-typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION
-{
- const D3D12_STATE_SUBOBJECT* pSubobjectToAssociate;
- UINT NumExports;
- [annotation("_In_reads_(NumExports)")] LPCWSTR* pExports;
-} D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
-
-typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION
-{
- LPCWSTR SubobjectToAssociate;
- UINT NumExports;
- [annotation("_In_reads_(NumExports)")] LPCWSTR* pExports;
-} D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION;
-
-typedef enum D3D12_HIT_GROUP_TYPE
-{
- D3D12_HIT_GROUP_TYPE_TRIANGLES = 0x0,
- D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1,
-} D3D12_HIT_GROUP_TYPE;
-
-typedef struct D3D12_HIT_GROUP_DESC
-{
- LPCWSTR HitGroupExport;
- D3D12_HIT_GROUP_TYPE Type;
- [annotation("_In_opt_")] LPCWSTR AnyHitShaderImport;
- [annotation("_In_opt_")] LPCWSTR ClosestHitShaderImport;
- [annotation("_In_opt_")] LPCWSTR IntersectionShaderImport;
-} D3D12_HIT_GROUP_DESC;
-
-typedef struct D3D12_RAYTRACING_SHADER_CONFIG
-{
- UINT MaxPayloadSizeInBytes;
- UINT MaxAttributeSizeInBytes;
-} D3D12_RAYTRACING_SHADER_CONFIG;
-
-typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG
-{
- UINT MaxTraceRecursionDepth;
-} D3D12_RAYTRACING_PIPELINE_CONFIG;
-
-typedef enum D3D12_RAYTRACING_PIPELINE_FLAGS
-{
- D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0x0,
- D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100,
- D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200,
-} D3D12_RAYTRACING_PIPELINE_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS );")
-
-typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1
-{
- UINT MaxTraceRecursionDepth;
- D3D12_RAYTRACING_PIPELINE_FLAGS Flags;
-} D3D12_RAYTRACING_PIPELINE_CONFIG1;
-
-typedef enum D3D12_STATE_OBJECT_TYPE
-{
- D3D12_STATE_OBJECT_TYPE_COLLECTION = 0,
- // D3D12_STATE_OBJECT_TYPE_COMPUTE_PIPELINE = 1,
- // D3D12_STATE_OBJECT_TYPE_GRAPHICS_PIPELINE = 2,
- D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3,
-} D3D12_STATE_OBJECT_TYPE;
-
-typedef struct D3D12_STATE_OBJECT_DESC
-{
- D3D12_STATE_OBJECT_TYPE Type;
- UINT NumSubobjects;
- [annotation("_In_reads_(NumSubobjects)")] const D3D12_STATE_SUBOBJECT* pSubobjects;
-} D3D12_STATE_OBJECT_DESC;
-
-typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS
-{
- D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0x0,
- D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1,
- D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2,
-} D3D12_RAYTRACING_GEOMETRY_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS );")
-
-typedef enum D3D12_RAYTRACING_GEOMETRY_TYPE
-{
- D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES,
- D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS,
-} D3D12_RAYTRACING_GEOMETRY_TYPE;
-
-typedef enum D3D12_RAYTRACING_INSTANCE_FLAGS
-{
- D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0x0,
- D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1,
- D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2,
- D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4,
- D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8
-} D3D12_RAYTRACING_INSTANCE_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS );")
-
-typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE
-{
- D3D12_GPU_VIRTUAL_ADDRESS StartAddress;
- 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;
- DXGI_FORMAT IndexFormat;
- DXGI_FORMAT VertexFormat;
- UINT IndexCount;
- UINT VertexCount;
- D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer;
- D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer;
-} D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC;
-
-typedef struct D3D12_RAYTRACING_AABB
-{
- FLOAT MinX;
- FLOAT MinY;
- FLOAT MinZ;
- FLOAT MaxX;
- FLOAT MaxY;
- FLOAT MaxZ;
-} D3D12_RAYTRACING_AABB;
-
-typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC
-{
- UINT64 AABBCount;
- D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs;
-} D3D12_RAYTRACING_GEOMETRY_AABBS_DESC;
-
-typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
-{
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0x00,
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x01,
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x02,
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x04,
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x08,
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20,
-} 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,
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1
-} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE;
-
-typedef enum D3D12_ELEMENTS_LAYOUT
-{
- D3D12_ELEMENTS_LAYOUT_ARRAY = 0x0,
- 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_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC
-{
- UINT64 CompactedSizeInBytes;
-} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC;
-
-typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC
-{
- UINT64 DecodedSizeInBytes;
-} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC;
-
-typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER
-{
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
- UINT NumDescs;
-} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER;
-cpp_quote("// Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above,")
-cpp_quote("// depending on Type field, NumDescs above is followed by either:")
-cpp_quote("// D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs]")
-cpp_quote("// or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs].")
-cpp_quote("// There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU.")
-cpp_quote("")
-
-typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC
-{
- UINT64 SerializedSizeInBytes;
- UINT64 NumBottomLevelAccelerationStructurePointers;
-} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC;
-
-typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER
-{
- GUID DriverOpaqueGUID;
- BYTE DriverOpaqueVersioningData[16];
-} D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER;
-
-typedef enum D3D12_SERIALIZED_DATA_TYPE
-{
- D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0x0,
-} D3D12_SERIALIZED_DATA_TYPE;
-
-typedef enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS
-{
- D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0x0,
- D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1,
- D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2,
- D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3,
- D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4,
-} D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS;
-
-typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER
-{
- D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier;
- UINT64 SerializedSizeInBytesIncludingHeader;
- UINT64 DeserializedSizeInBytes;
- UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader;
-} D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER;
-
-typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC
-{
- UINT64 CurrentSizeInBytes;
-} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC;
-
-typedef struct D3D12_RAYTRACING_INSTANCE_DESC
-{
- FLOAT Transform[3][4];
- UINT InstanceID : 24;
- UINT InstanceMask : 8;
- UINT InstanceContributionToHitGroupIndex : 24;
- UINT Flags : 8;
- D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure;
-} D3D12_RAYTRACING_INSTANCE_DESC;
-
-typedef struct D3D12_RAYTRACING_GEOMETRY_DESC
-{
- D3D12_RAYTRACING_GEOMETRY_TYPE Type;
- D3D12_RAYTRACING_GEOMETRY_FLAGS Flags;
- union
- {
- D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles;
- D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs;
- };
-} D3D12_RAYTRACING_GEOMETRY_DESC;
-
-typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
-{
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
- D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
- UINT NumDescs;
- D3D12_ELEMENTS_LAYOUT DescsLayout;
- union
- {
- D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
- const D3D12_RAYTRACING_GEOMETRY_DESC* pGeometryDescs;
- const D3D12_RAYTRACING_GEOMETRY_DESC*const* ppGeometryDescs;
- };
-} 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;
- [annotation("_In_opt_")] 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;
- UINT64 ScratchDataSizeInBytes;
- UINT64 UpdateScratchDataSizeInBytes;
-} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO;
-
-typedef enum D3D12_RAY_FLAGS
-{
- D3D12_RAY_FLAG_NONE = 0x00,
- D3D12_RAY_FLAG_FORCE_OPAQUE = 0x01,
- D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x02,
- D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x04,
- D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x08,
- D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
- D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
- D3D12_RAY_FLAG_CULL_OPAQUE = 0x40,
- D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80,
- D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100,
- D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200,
-} D3D12_RAY_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS );" )
-
-typedef enum D3D12_HIT_KIND
-{
- D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe,
- D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff,
-} D3D12_HIT_KIND;
-
-[uuid(8b4f173b-2fea-4b80-8f58-4307191ab95d), object, local, pointer_default(unique)]
-interface ID3D12Device5
- : ID3D12Device4
-{
- HRESULT CreateLifetimeTracker(
- [annotation("_In_")] ID3D12LifetimeOwner* pOwner,
- [in] REFIID riid, // Expected: ID3D12LifetimeTracker*
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvTracker
- );
-
- void RemoveDevice();
-
- HRESULT EnumerateMetaCommands(
- [annotation("_Inout_")] UINT* pNumMetaCommands,
- [annotation("_Out_writes_opt_(*pNumMetaCommands)")] D3D12_META_COMMAND_DESC* pDescs
- );
-
- HRESULT EnumerateMetaCommandParameters(
- [annotation("_In_")] REFGUID CommandId,
- [annotation("_In_")] D3D12_META_COMMAND_PARAMETER_STAGE Stage,
- [annotation("_Out_opt_")] UINT* pTotalStructureSizeInBytes,
- [annotation("_Inout_")] UINT* pParameterCount,
- [annotation("_Out_writes_opt_(*pParameterCount)")] D3D12_META_COMMAND_PARAMETER_DESC* pParameterDescs
- );
-
- HRESULT CreateMetaCommand(
- [annotation("_In_")] REFGUID CommandId,
- [annotation("_In_")] UINT NodeMask,
- [annotation("_In_reads_bytes_opt_(CreationParametersDataSizeInBytes)")] const void * pCreationParametersData,
- [annotation("_In_")] SIZE_T CreationParametersDataSizeInBytes,
- [in] REFIID riid,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppMetaCommand
- );
-
- HRESULT CreateStateObject(
- [in] const D3D12_STATE_OBJECT_DESC* pDesc,
- [in] REFIID riid, // ID3D12StateObject
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppStateObject
- );
-
- void GetRaytracingAccelerationStructurePrebuildInfo(
- [annotation("_In_")] const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS* pDesc,
- [annotation("_Out_")] D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo
- );
-
- D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS CheckDriverMatchingIdentifier(
- [annotation("_In_")] D3D12_SERIALIZED_DATA_TYPE SerializedDataType,
- [annotation("_In_")] const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER* pIdentifierToCheck);
-}
-
-
-typedef enum D3D12_AUTO_BREADCRUMB_OP
-{
- D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0,
- D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 1,
- D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 2,
- D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 3,
- D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 4,
- D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 5,
- D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 6,
- D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 7,
- D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 8,
- D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 9,
- D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 10,
- D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 11,
- D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 12,
- D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 13,
- D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 14,
- D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 15,
- D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 16,
- D3D12_AUTO_BREADCRUMB_OP_PRESENT = 17,
- D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 18,
- D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 19,
- D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 20,
- D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 21,
- D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 22,
- D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 23,
- D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 24,
- D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 25,
- D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 26,
- D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 27,
- D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 28,
- D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 29,
- D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 30,
- D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31,
- D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32,
- D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33,
- D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 34,
- D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 35,
- D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 36,
- D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 37,
- D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 38,
- D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 39,
- D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 40,
- D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 41,
- D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 42,
- D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 43,
- D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 44,
-} D3D12_AUTO_BREADCRUMB_OP;
-
-typedef struct D3D12_AUTO_BREADCRUMB_NODE
-{
- const char *pCommandListDebugNameA;
- const wchar_t *pCommandListDebugNameW;
- const char *pCommandQueueDebugNameA;
- const wchar_t *pCommandQueueDebugNameW;
- ID3D12GraphicsCommandList *pCommandList;
- ID3D12CommandQueue *pCommandQueue;
- UINT32 BreadcrumbCount;
- const UINT32 *pLastBreadcrumbValue;
- const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
- const struct D3D12_AUTO_BREADCRUMB_NODE *pNext; // pointer to next node
-} D3D12_AUTO_BREADCRUMB_NODE;
-
-typedef struct D3D12_DRED_BREADCRUMB_CONTEXT
-{
- UINT BreadcrumbIndex;
- const wchar_t *pContextString;
-} D3D12_DRED_BREADCRUMB_CONTEXT;
-
-// !!! Must be castable to D3D12_AUTO_BREADCRUMB_NODE
-typedef struct D3D12_AUTO_BREADCRUMB_NODE1
-{
- const char *pCommandListDebugNameA;
- const wchar_t *pCommandListDebugNameW;
- const char *pCommandQueueDebugNameA;
- const wchar_t *pCommandQueueDebugNameW;
- ID3D12GraphicsCommandList *pCommandList;
- ID3D12CommandQueue *pCommandQueue;
- UINT BreadcrumbCount;
- const UINT *pLastBreadcrumbValue;
- const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
- const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext; // pointer to next node
- UINT BreadcrumbContextsCount;
- D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts;
-} D3D12_AUTO_BREADCRUMB_NODE1;
-
-// D3D12_DRED_VERSION
-typedef enum D3D12_DRED_VERSION
-{
- D3D12_DRED_VERSION_1_0 = 0x1,
- D3D12_DRED_VERSION_1_1 = 0x2,
- D3D12_DRED_VERSION_1_2 = 0x3,
- D3D12_DRED_VERSION_1_3 = 0x4,
-} D3D12_DRED_VERSION;
-
-typedef enum D3D12_DRED_FLAGS
-{
- D3D12_DRED_FLAG_NONE = 0,
- D3D12_DRED_FLAG_FORCE_ENABLE = 1,
- D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2,
-} D3D12_DRED_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS );")
-
-typedef enum D3D12_DRED_ENABLEMENT
-{
- D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0,
- D3D12_DRED_ENABLEMENT_FORCED_OFF = 1,
- D3D12_DRED_ENABLEMENT_FORCED_ON = 2,
-} D3D12_DRED_ENABLEMENT;
-
-typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA
-{
- [annotation("_In_")] D3D12_DRED_FLAGS Flags; // Dred flags
- [annotation("_Out_")] D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; // Pointer to head of a linked list of auto-breadcrumb data
-} D3D12_DEVICE_REMOVED_EXTENDED_DATA;
-
-typedef enum D3D12_DRED_ALLOCATION_TYPE
-{
- // Enum starts at 19 and skips 26 to maintain compatibility with older D3D12 drivers
- D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19,
- D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20,
- D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21,
- D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22,
- D3D12_DRED_ALLOCATION_TYPE_FENCE = 23,
- D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24,
- D3D12_DRED_ALLOCATION_TYPE_HEAP = 25,
- D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27,
- D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28,
- D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29,
- D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30,
- D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32,
- D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34,
- D3D12_DRED_ALLOCATION_TYPE_PASS = 35,
- D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36,
- D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37,
- D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38,
- D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39,
- D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40,
- D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41,
- D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42,
- D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43,
- D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44,
- D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45,
- D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46,
- D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47,
- D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48,
- D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49,
-
-
- D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xFFFFFFFF
-} D3D12_DRED_ALLOCATION_TYPE;
-
-typedef struct D3D12_DRED_ALLOCATION_NODE
-{
- const char *ObjectNameA;
- const wchar_t *ObjectNameW;
- D3D12_DRED_ALLOCATION_TYPE AllocationType;
- const struct D3D12_DRED_ALLOCATION_NODE *pNext;
-} D3D12_DRED_ALLOCATION_NODE;
-
-typedef struct D3D12_DRED_ALLOCATION_NODE1
-{
- const char *ObjectNameA;
- const wchar_t *ObjectNameW;
- D3D12_DRED_ALLOCATION_TYPE AllocationType;
- const struct D3D12_DRED_ALLOCATION_NODE1 *pNext;
- const IUnknown *pObject;
-} D3D12_DRED_ALLOCATION_NODE1;
-
-typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT
-{
- [annotation("_Out_")] const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; // Pointer to head of a null-terminated linked list of auto-breadcrumb data
-} D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT;
-
-typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1
-{
- [annotation("_Out_")] const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode; // Pointer to head of a null-terminated linked list of auto-breadcrumb data
-} D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1;
-
-typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT
-{
- D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; //If the device removal was due to GPU Fault, this contains the VA of the faulting op
- [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode;
- [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode;
-} D3D12_DRED_PAGE_FAULT_OUTPUT;
-
-typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1
-{
- D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; //If the device removal was due to GPU Fault, this contains the VA of the faulting op
- [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
- [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
-} D3D12_DRED_PAGE_FAULT_OUTPUT1;
-
-typedef enum D3D12_DRED_PAGE_FAULT_FLAGS
-{
- D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0,
-} D3D12_DRED_PAGE_FAULT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS );")
-
-typedef enum D3D12_DRED_DEVICE_STATE
-{
- D3D12_DRED_DEVICE_STATE_UNKNOWN = 0, // Only known if DRED event occurred
- D3D12_DRED_DEVICE_STATE_HUNG = 3,
- D3D12_DRED_DEVICE_STATE_FAULT = 6,
- D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7,
-} D3D12_DRED_DEVICE_STATE;
-
-typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2
-{
- D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; //If the device removal was due to GPU Fault, this contains the VA of the faulting op
- [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
- [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
- D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags;
-
-} D3D12_DRED_PAGE_FAULT_OUTPUT2;
-
-typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1
-{
- HRESULT DeviceRemovedReason;
- D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput;
- D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput;
-} D3D12_DEVICE_REMOVED_EXTENDED_DATA1;
-
-typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2
-{
- HRESULT DeviceRemovedReason;
- D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
- D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput;
-} D3D12_DEVICE_REMOVED_EXTENDED_DATA2;
-
-typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3
-{
- HRESULT DeviceRemovedReason;
- D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
- D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput;
- D3D12_DRED_DEVICE_STATE DeviceState;
-} D3D12_DEVICE_REMOVED_EXTENDED_DATA3;
-
-typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA
-{
- D3D12_DRED_VERSION Version; // Version of the DRED data
- union
- {
- D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
- D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1;
- D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2;
- D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3;
- };
-} D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA;
-
-[uuid(82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63), object, local, pointer_default(unique)]
-interface ID3D12DeviceRemovedExtendedDataSettings
- : IUnknown
-{
- void SetAutoBreadcrumbsEnablement(D3D12_DRED_ENABLEMENT Enablement);
- void SetPageFaultEnablement(D3D12_DRED_ENABLEMENT Enablement);
- void SetWatsonDumpEnablement(D3D12_DRED_ENABLEMENT Enablement);
-};
-
-[uuid(DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B), object, local, pointer_default(unique)]
-interface ID3D12DeviceRemovedExtendedDataSettings1
- : ID3D12DeviceRemovedExtendedDataSettings
-{
- void SetBreadcrumbContextEnablement(D3D12_DRED_ENABLEMENT Enablement);
-};
-
-
-[uuid(98931D33-5AE8-4791-AA3C-1A73A2934E71), object, local, pointer_default(unique)]
-interface ID3D12DeviceRemovedExtendedData
- : IUnknown
-{
- HRESULT GetAutoBreadcrumbsOutput([annotation("_Out_")] D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput);
- HRESULT GetPageFaultAllocationOutput([annotation("_Out_")] D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput);
-};
-
-[uuid(9727A022-CF1D-4DDA-9EBA-EFFA653FC506), object, local, pointer_default(unique)]
-interface ID3D12DeviceRemovedExtendedData1
- : ID3D12DeviceRemovedExtendedData
-{
- HRESULT GetAutoBreadcrumbsOutput1([annotation("_Out_")] D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput);
- HRESULT GetPageFaultAllocationOutput1([annotation("_Out_")] D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput);
-};
-
-[uuid(67FC5816-E4CA-4915-BF18-42541272DA54), object, local, pointer_default(unique)]
-interface ID3D12DeviceRemovedExtendedData2
- : ID3D12DeviceRemovedExtendedData1
-{
- HRESULT GetPageFaultAllocationOutput2([annotation("_Out_")] D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput);
- D3D12_DRED_DEVICE_STATE GetDeviceState();
-};
-
-typedef enum D3D12_BACKGROUND_PROCESSING_MODE
-{
- D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED,
- D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS,
- D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK,
- D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM,
-} D3D12_BACKGROUND_PROCESSING_MODE;
-
-typedef enum D3D12_MEASUREMENTS_ACTION
-{
- D3D12_MEASUREMENTS_ACTION_KEEP_ALL,
- D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS,
- D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY,
- D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS,
-} D3D12_MEASUREMENTS_ACTION;
-
-[uuid(c70b221b-40e4-4a17-89af-025a0727a6dc), object, local, pointer_default(unique)]
-interface ID3D12Device6 : ID3D12Device5
-{
- HRESULT SetBackgroundProcessingMode(
- D3D12_BACKGROUND_PROCESSING_MODE Mode,
- D3D12_MEASUREMENTS_ACTION MeasurementsAction,
- [annotation("_In_opt_")] HANDLE hEventToSignalUponCompletion,
- [annotation("_Out_opt_")] BOOL* pbFurtherMeasurementsDesired);
-};
-
-cpp_quote("DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82); ")
-
-// D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT
-typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT
-{
- UINT NodeIndex; // input
- UINT Count; // output
-} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT;
-
-// D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES
-typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES
-{
- UINT NodeIndex; // input
- UINT Count; // input
- GUID* pTypes; // output
-} D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES;
-
-typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1
-{
- UINT NodeMask;
- D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags;
- GUID ProtectionType;
-} D3D12_PROTECTED_RESOURCE_SESSION_DESC1;
-
-[uuid(D6F12DD6-76FB-406E-8961-4296EEFC0409), object, local, pointer_default(unique)]
-interface ID3D12ProtectedResourceSession1
- : ID3D12ProtectedResourceSession
-{
- D3D12_PROTECTED_RESOURCE_SESSION_DESC1 GetDesc1();
-};
-
-[uuid(5c014b53-68a1-4b9b-8bd1-dd6046b9358b), object, local, pointer_default(unique)]
-interface ID3D12Device7 : ID3D12Device6
-{
- HRESULT AddToStateObject(
- [in] const D3D12_STATE_OBJECT_DESC* pAddition,
- [in] ID3D12StateObject* pStateObjectToGrowFrom,
- [in] REFIID riid, // ID3D12StateObject
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppNewStateObject
- );
-
- HRESULT CreateProtectedResourceSession1(
- [annotation("_In_")] const D3D12_PROTECTED_RESOURCE_SESSION_DESC1* pDesc,
- [annotation("_In_")] REFIID riid, // Expected: ID3D12ProtectedResourceSession1,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppSession
- );
-};
-
-[uuid(9218E6BB-F944-4F7E-A75C-B1B2C7B701F3), object, local, pointer_default(unique)]
-interface ID3D12Device8 : ID3D12Device7
-{
- D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo2(
- UINT visibleMask,
- UINT numResourceDescs,
- [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC1* pResourceDescs,
- [annotation("_Out_writes_opt_(numResourceDescs)")] D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1);
-
- HRESULT CreateCommittedResource2(
- [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties,
- D3D12_HEAP_FLAGS HeapFlags,
- [annotation("_In_")] const D3D12_RESOURCE_DESC1* pDesc,
- D3D12_RESOURCE_STATES InitialResourceState,
- [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue,
- [annotation("_In_opt_")] ID3D12ProtectedResourceSession* pProtectedSession,
- [in] REFIID riidResource, // Expected: ID3D12Resource1*
- [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource);
-
- HRESULT CreatePlacedResource1(
- [annotation("_In_")] ID3D12Heap* pHeap,
- UINT64 HeapOffset,
- [annotation("_In_")] const D3D12_RESOURCE_DESC1* pDesc,
- D3D12_RESOURCE_STATES InitialState,
- [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue,
- [in] REFIID riid, // Expected: ID3D12Resource*
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource);
-
- void CreateSamplerFeedbackUnorderedAccessView(
- [annotation("_In_opt_")] ID3D12Resource* pTargetedResource,
- [annotation("_In_opt_")] ID3D12Resource* pFeedbackResource,
- [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
-
- void GetCopyableFootprints1(
- [annotation("_In_")] const D3D12_RESOURCE_DESC1* pResourceDesc,
- [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES)")] UINT FirstSubresource,
- [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource)")] UINT NumSubresources,
- UINT64 BaseOffset,
- [annotation("_Out_writes_opt_(NumSubresources)")] D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts,
- [annotation("_Out_writes_opt_(NumSubresources)")] UINT* pNumRows,
- [annotation("_Out_writes_opt_(NumSubresources)")] UINT64* pRowSizeInBytes,
- [annotation("_Out_opt_")] UINT64* pTotalBytes);
-};
-
-
-
-[uuid(9D5E227A-4430-4161-88B3-3ECA6BB16E19), object, local, pointer_default(unique)]
-interface ID3D12Resource1
- : ID3D12Resource
-{
- HRESULT GetProtectedResourceSession(
- [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession);
-}
-
-[uuid(BE36EC3B-EA85-4AEB-A45A-E9D76404A495), object, local, pointer_default(unique)]
-interface ID3D12Resource2
- : ID3D12Resource1
-{
- D3D12_RESOURCE_DESC1 GetDesc1();
-}
-
-
-[uuid(572F7389-2168-49E3-9693-D6DF5871BF6D), object, local, pointer_default(unique)]
-interface ID3D12Heap1
- : ID3D12Heap
-{
- HRESULT GetProtectedResourceSession(
- [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession);
-}
-
-
-[uuid(6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D), object, local, pointer_default(unique)]
-interface ID3D12GraphicsCommandList3 : ID3D12GraphicsCommandList2
-{
- void SetProtectedResourceSession(
- [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession
- );
-}
-
-// Beginning Access
-typedef enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE
-{
- D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD,
- D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE,
- D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR,
- D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS
-} 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;
-
-// Ending Access
-typedef enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE
-{
- D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD,
- D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE,
- D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE,
- D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS
-} 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; // (0, 0, 0, 0) == resolve entire resource.
-
-} D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS;
-
-typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS
-{
- ID3D12Resource* pSrcResource;
- ID3D12Resource* pDstResource;
-
- // Can be a subset of RT's array slices, but can't target subresources that were't part of RTV/DSV.
- UINT SubresourceCount;
- [annotation("_Field_size_full_(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;
-
-// Render Target Desc
-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;
-
-// Depth-Stencil 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;
-
-// UAV Access Mode
-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, local, pointer_default(unique)]
-interface ID3D12MetaCommand : ID3D12Pageable
-{
- UINT64 GetRequiredParameterResourceSize([annotation("_In_")] D3D12_META_COMMAND_PARAMETER_STAGE Stage, [annotation("_In_")] UINT ParameterIndex);
-}
-
-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(
- [annotation("_In_")] UINT NumRenderTargets,
- [annotation("_In_reads_opt_(NumRenderTargets)")] const D3D12_RENDER_PASS_RENDER_TARGET_DESC* pRenderTargets,
- [annotation("_In_opt_")] const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC* pDepthStencil,
- D3D12_RENDER_PASS_FLAGS Flags
- );
-
- void EndRenderPass();
-
- void InitializeMetaCommand(
- [annotation("_In_")] ID3D12MetaCommand * pMetaCommand,
- [annotation("_In_reads_bytes_opt_(InitializationParametersDataSizeInBytes)")] const void * pInitializationParametersData,
- [annotation("_In_")] SIZE_T InitializationParametersDataSizeInBytes
- );
-
- void ExecuteMetaCommand(
- [annotation("_In_")] ID3D12MetaCommand * pMetaCommand,
- [annotation("_In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes)")] const void * pExecutionParametersData,
- [annotation("_In_")] SIZE_T ExecutionParametersDataSizeInBytes
- );
-
- void BuildRaytracingAccelerationStructure(
- [annotation("_In_")] const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC* pDesc,
- [annotation("_In_")] UINT NumPostbuildInfoDescs,
- [annotation("_In_reads_opt_(NumPostbuildInfoDescs)")] const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* pPostbuildInfoDescs
- );
-
- void EmitRaytracingAccelerationStructurePostbuildInfo(
- [annotation("_In_")] const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* pDesc,
- [annotation("_In_")] UINT NumSourceAccelerationStructures,
- [annotation("_In_reads_( NumSourceAccelerationStructures )")] const D3D12_GPU_VIRTUAL_ADDRESS* pSourceAccelerationStructureData);
-
- void CopyRaytracingAccelerationStructure(
- [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData,
- [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData,
- [annotation("_In_")] D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode);
-
- void SetPipelineState1(
- [annotation("_In_")] ID3D12StateObject* pStateObject);
-
- void DispatchRays(
- [annotation("_In_")] const D3D12_DISPATCH_RAYS_DESC* pDesc);
-}
-
-typedef enum D3D12_SHADER_CACHE_MODE
-{
- D3D12_SHADER_CACHE_MODE_MEMORY,
- D3D12_SHADER_CACHE_MODE_DISK,
-} D3D12_SHADER_CACHE_MODE;
-
-typedef enum D3D12_SHADER_CACHE_FLAGS
-{
- D3D12_SHADER_CACHE_FLAG_NONE = 0x0,
- D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1,
- D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2,
-} D3D12_SHADER_CACHE_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS );")
-
-typedef struct D3D12_SHADER_CACHE_SESSION_DESC
-{
- GUID Identifier;
- D3D12_SHADER_CACHE_MODE Mode;
- D3D12_SHADER_CACHE_FLAGS Flags;
-
- UINT MaximumInMemoryCacheSizeBytes;
- UINT MaximumInMemoryCacheEntries;
-
- UINT MaximumValueFileSizeBytes;
-
- UINT64 Version;
-} D3D12_SHADER_CACHE_SESSION_DESC;
-
-[uuid(28e2495d-0f64-4ae4-a6ec-129255dc49a8), object, local, pointer_default(unique)]
-interface ID3D12ShaderCacheSession
- : ID3D12DeviceChild
-{
- HRESULT FindValue(
- [in, annotation("_In_reads_bytes_(KeySize)")] const void* pKey,
- UINT KeySize,
- [out, annotation("_Out_writes_bytes_(*pValueSize)")] void* pValue,
- [annotation("_Inout_")] UINT* pValueSize);
- HRESULT StoreValue(
- [in, annotation("_In_reads_bytes_(KeySize)")] const void* pKey,
- UINT KeySize,
- [in, annotation("_In_reads_bytes_(ValueSize)")] const void* pValue,
- UINT ValueSize);
-
- void SetDeleteOnDestroy();
- D3D12_SHADER_CACHE_SESSION_DESC GetDesc();
-};
-
-typedef enum D3D12_SHADER_CACHE_KIND_FLAGS
-{
- D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1,
- D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2,
- D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4,
- D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8,
-} D3D12_SHADER_CACHE_KIND_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS );")
-
-typedef enum D3D12_SHADER_CACHE_CONTROL_FLAGS
-{
- D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1,
- D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2,
- D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4,
-} D3D12_SHADER_CACHE_CONTROL_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS );")
-
-[uuid(4c80e962-f032-4f60-bc9e-ebc2cfa1d83c), object, local, pointer_default(unique)]
-interface ID3D12Device9
- : ID3D12Device8
-{
- HRESULT CreateShaderCacheSession(
- [annotation("_In_")] const D3D12_SHADER_CACHE_SESSION_DESC* pDesc,
- REFIID riid,
- [annotation("_COM_Outptr_opt_")] void** ppvSession);
-
- HRESULT ShaderCacheControl(
- D3D12_SHADER_CACHE_KIND_FLAGS Kinds,
- D3D12_SHADER_CACHE_CONTROL_FLAGS Control);
-
- HRESULT CreateCommandQueue1(
- [annotation("_In_")] const D3D12_COMMAND_QUEUE_DESC* pDesc,
- REFIID CreatorID,
- [in] REFIID riid, // Expected: ID3D12CommandQueue
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandQueue
- );
-};
-
-
-[uuid(7071e1f0-e84b-4b33-974f-12fa49de65c5), object, local, pointer_default(unique)]
-interface ID3D12Tools
- : IUnknown
-{
- void EnableShaderInstrumentation(BOOL bEnable);
- BOOL ShaderInstrumentationEnabled();
-}
-
-typedef struct D3D12_SUBRESOURCE_DATA
-{
- const void* pData;
- LONG_PTR RowPitch;
- LONG_PTR SlicePitch;
-} D3D12_SUBRESOURCE_DATA;
-
-typedef struct D3D12_MEMCPY_DEST
-{
- void* pData;
- SIZE_T RowPitch;
- SIZE_T SlicePitch;
-} D3D12_MEMCPY_DEST;
-
-
-
-cpp_quote( "#if !defined( D3D12_IGNORE_SDK_LAYERS ) ")
-cpp_quote( "#include \"d3d12sdklayers.h\" ")
-cpp_quote( "#endif ")
-
-
-cpp_quote("")
-cpp_quote("///////////////////////////////////////////////////////////////////////////")
-cpp_quote("// D3D12CreateDevice")
-cpp_quote("// ------------------")
-cpp_quote("//")
-cpp_quote("// pAdapter")
-cpp_quote("// If NULL, D3D12CreateDevice will choose the primary adapter.")
-cpp_quote("// If non-NULL, D3D12CreateDevice will use the provided adapter.")
-cpp_quote("// MinimumFeatureLevel")
-cpp_quote("// The minimum feature level required for successful device creation.")
-cpp_quote("// riid")
-cpp_quote("// The interface IID of the device to be returned. Expected: ID3D12Device.")
-cpp_quote("// ppDevice")
-cpp_quote("// Pointer to returned interface. May be NULL.")
-cpp_quote("//")
-cpp_quote("// Return Values")
-cpp_quote("// Any of those documented for ")
-cpp_quote("// CreateDXGIFactory1")
-cpp_quote("// IDXGIFactory::EnumAdapters")
-cpp_quote("// D3D12CreateDevice")
-cpp_quote("//")
-cpp_quote("///////////////////////////////////////////////////////////////////////////")
-cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*, ")
-cpp_quote(" D3D_FEATURE_LEVEL, ")
-cpp_quote(" _In_ REFIID, _COM_Outptr_opt_ void** );")
-cpp_quote("")
-cpp_quote("HRESULT WINAPI D3D12CreateDevice(")
-cpp_quote(" _In_opt_ IUnknown* pAdapter,")
-cpp_quote(" D3D_FEATURE_LEVEL MinimumFeatureLevel,")
-cpp_quote(" _In_ REFIID riid, // Expected: ID3D12Device")
-cpp_quote(" _COM_Outptr_opt_ void** ppDevice );")
-cpp_quote("")
-
-cpp_quote("")
-cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** );")
-cpp_quote("")
-cpp_quote("HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );")
-cpp_quote("")
-
-cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------")
-cpp_quote("// D3D12EnableExperimentalFeatures")
-cpp_quote("//")
-cpp_quote("// Pass in a list of feature GUIDs to be enabled together.")
-cpp_quote("// ")
-cpp_quote("// If a particular feature requires some configuration information on enablement, it will have")
-cpp_quote("// a configuration struct that can be passed alongside the GUID.")
-cpp_quote("// ")
-cpp_quote("// Some features might use an interface IID as the GUID. For these, once the feature is enabled via")
-cpp_quote("// D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface")
-cpp_quote("// for manipulating the feature. This allows for control that might not cleanly be expressed by just ")
-cpp_quote("// the configuration struct that D3D12EnableExperimentalFeatures provides.")
-cpp_quote("//")
-cpp_quote("// If this method is called and a change to existing feature enablement is made, ")
-cpp_quote("// all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one")
-cpp_quote("// singleton device for a process. Removing the devices when configuration changes prevents")
-cpp_quote("// mismatched expectations of how a device is supposed to work after it has been created from the app's point of view.")
-cpp_quote("//")
-cpp_quote("// The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on.")
-cpp_quote("// The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed")
-cpp_quote("// in are known to be incompatible with each other, or other errors.")
-cpp_quote("// Returns S_OK otherwise.")
-cpp_quote("//")
-cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------")
-cpp_quote("HRESULT WINAPI D3D12EnableExperimentalFeatures(")
-cpp_quote(" UINT NumFeatures,")
-cpp_quote(" _In_count_(NumFeatures) const IID* pIIDs,")
-cpp_quote(" _In_opt_count_(NumFeatures) void* pConfigurationStructs,")
-cpp_quote(" _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes);")
-cpp_quote("")
-cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------")
-cpp_quote("// Experimental Feature: D3D12ExperimentalShaderModels")
-cpp_quote("//")
-cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,")
-cpp_quote("// meaning shader models that haven't been finalized for use in retail.")
-cpp_quote("//")
-cpp_quote("// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.")
-cpp_quote("//")
-cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------")
-cpp_quote("static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */")
-cpp_quote(" 0x76f5573e,")
-cpp_quote(" 0xf13a,")
-cpp_quote(" 0x40f5,")
-cpp_quote(" { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }")
-cpp_quote("};")
-cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------")
-cpp_quote("// Experimental Feature: D3D12TiledResourceTier4")
-cpp_quote("//")
-cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support,")
-cpp_quote("// meaning texture tile data-inheritance is allowed.")
-cpp_quote("//")
-cpp_quote("// Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array.")
-cpp_quote("//")
-cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------")
-cpp_quote("static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */")
-cpp_quote(" 0xc9c4725f,")
-cpp_quote(" 0xa81a,")
-cpp_quote(" 0x4f56,")
-cpp_quote(" { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }")
-cpp_quote("};")
-cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------")
-cpp_quote("// Experimental Feature: D3D12MetaCommand")
-cpp_quote("//")
-cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable the D3D12 Meta Command.")
-cpp_quote("//")
-cpp_quote("// Enabling D3D12MetaCommand needs no configuration struct, pass NULL in the pConfigurationStructs array.")
-cpp_quote("//")
-cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------")
-cpp_quote("static const UUID D3D12MetaCommand = { /* C734C97E-8077-48C8-9FDC-D9D1DD31DD77 */")
-cpp_quote(" 0xc734c97e,")
-cpp_quote(" 0x8077,")
-cpp_quote(" 0x48c8,")
-cpp_quote(" { 0x9f, 0xdc, 0xd9, 0xd1, 0xdd, 0x31, 0xdd, 0x77 }")
-cpp_quote("};")
-
-cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------")
-cpp_quote("// D3D12GetInterface")
-cpp_quote("//")
-cpp_quote("// Retrieve Global D3D12 Interface.")
-cpp_quote("//")
-cpp_quote("")
-cpp_quote("DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);")
-cpp_quote("DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);")
-cpp_quote("DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);")
-cpp_quote("DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);")
-cpp_quote("")
-cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** );")
-cpp_quote("")
-cpp_quote("HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );")
-cpp_quote("")
-
-//==================================================================================================================================
-//
-// SDK Configuration
-//
-//==================================================================================================================================
-
-[uuid(e9eb5314-33aa-42b2-a718-d77f58b1f1c7), object, local, pointer_default(unique)]
-interface ID3D12SDKConfiguration
- : IUnknown
-{
- HRESULT SetSDKVersion(
- UINT SDKVersion,
- [annotation("_In_z_")] LPCSTR SDKPath
- );
-}
-
-
-typedef enum D3D12_AXIS_SHADING_RATE
-{
- D3D12_AXIS_SHADING_RATE_1X = 0x0,
- D3D12_AXIS_SHADING_RATE_2X = 0x1,
- D3D12_AXIS_SHADING_RATE_4X = 0x2
-} D3D12_AXIS_SHADING_RATE;
-
-
-cpp_quote("#define D3D12_SHADING_RATE_X_AXIS_SHIFT 2")
-cpp_quote("#define D3D12_SHADING_RATE_VALID_MASK 3")
-
-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(y) ((y) & 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;
-
-[uuid(55050859-4024-474c-87f5-6472eaee44ea), object, local, pointer_default(unique)]
-interface ID3D12GraphicsCommandList5 : ID3D12GraphicsCommandList4
-{
- void RSSetShadingRate(
- [annotation("_In_")] D3D12_SHADING_RATE baseShadingRate,
- [annotation("_In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT)")] const D3D12_SHADING_RATE_COMBINER* combiners);
-
- void RSSetShadingRateImage(
- [annotation("_In_opt_")] ID3D12Resource* shadingRateImage);
-}
-
-typedef struct D3D12_DISPATCH_MESH_ARGUMENTS
-{
- UINT ThreadGroupCountX;
- UINT ThreadGroupCountY;
- UINT ThreadGroupCountZ;
-} D3D12_DISPATCH_MESH_ARGUMENTS;
-
-[uuid(c3827890-e548-4cfa-96cf-5689a9370f80), object, local, pointer_default(unique)]
-interface ID3D12GraphicsCommandList6 : ID3D12GraphicsCommandList5
-{
- void DispatchMesh(
- [annotation("_In_")] UINT ThreadGroupCountX,
- [annotation("_In_")] UINT ThreadGroupCountY,
- [annotation("_In_")] UINT ThreadGroupCountZ
- );
-}
-
-
-//----------------------------------------------------------------------------------------------------------
-// Old types which are still supported by the runtime for app-compat
-
-cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */")
-#pragma endregion
-
-cpp_quote( "DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80);" )
diff --git a/WickedEngine/Utility/dx12/d3d12compatibility.h b/WickedEngine/Utility/dx12/d3d12compatibility.h
index ad1b01cd8..5f99b6cc9 100644
--- a/WickedEngine/Utility/dx12/d3d12compatibility.h
+++ b/WickedEngine/Utility/dx12/d3d12compatibility.h
@@ -1,6 +1,7 @@
/*-------------------------------------------------------------------------------------
*
* Copyright (c) Microsoft Corporation
+ * Licensed under the MIT license
*
*-------------------------------------------------------------------------------------*/
@@ -94,8 +95,8 @@ typedef interface DirectMLTensorFlowCreatorID DirectMLTensorFlowCreatorID;
/* header files for imported files */
-#include "oaidl.h"
-#include "ocidl.h"
+#include "OAIdl.h"
+#include "OCIdl.h"
#include "d3d11on12.h"
#ifdef __cplusplus
@@ -108,7 +109,7 @@ extern "C"{
#include
#pragma region Desktop Family
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)
typedef
enum D3D12_COMPATIBILITY_SHARED_FLAGS
{
@@ -632,7 +633,7 @@ EXTERN_C const IID IID_DirectMLTensorFlowCreatorID;
/* interface __MIDL_itf_d3d12compatibility_0000_0006 */
/* [local] */
-#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */
#pragma endregion
DEFINE_GUID(IID_ID3D12CompatibilityDevice,0x8f1c0e3c,0xfae3,0x4a82,0xb0,0x98,0xbf,0xe1,0x70,0x82,0x07,0xff);
DEFINE_GUID(IID_D3D11On12CreatorID,0xedbf5678,0x2960,0x4e81,0x84,0x29,0x99,0xd4,0xb2,0x63,0x0c,0x4e);
diff --git a/WickedEngine/Utility/dx12/d3d12compatibility.idl b/WickedEngine/Utility/dx12/d3d12compatibility.idl
deleted file mode 100644
index 3f6ab457f..000000000
--- a/WickedEngine/Utility/dx12/d3d12compatibility.idl
+++ /dev/null
@@ -1,87 +0,0 @@
-/*-------------------------------------------------------------------------------------
- *
- * Copyright (c) Microsoft Corporation
- *
- *-------------------------------------------------------------------------------------*/
-import "oaidl.idl";
-import "ocidl.idl";
-
-import "d3d11on12.idl";
-
-cpp_quote("#include ")
-
-#pragma region Desktop Family
-cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
-
-typedef enum D3D12_COMPATIBILITY_SHARED_FLAGS
-{
- D3D12_COMPATIBILITY_SHARED_FLAG_NONE = 0,
- D3D12_COMPATIBILITY_SHARED_FLAG_NON_NT_HANDLE = 0x1,
- D3D12_COMPATIBILITY_SHARED_FLAG_KEYED_MUTEX = 0x2,
- D3D12_COMPATIBILITY_SHARED_FLAG_9_ON_12 = 0x4,
-
-} D3D12_COMPATIBILITY_SHARED_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMPATIBILITY_SHARED_FLAGS );" )
-
-typedef enum D3D12_REFLECT_SHARED_PROPERTY
-{
- D3D12_REFLECT_SHARED_PROPERTY_D3D11_RESOURCE_FLAGS, // D3D11_RESOURCE_FLAGS
- D3D12_REFELCT_SHARED_PROPERTY_COMPATIBILITY_SHARED_FLAGS, // D3D12_COMPATIBILITY_SHARED_FLAGS
- D3D12_REFLECT_SHARED_PROPERTY_NON_NT_SHARED_HANDLE, // HANDLE
-} D3D12_REFLECT_SHARED_PROPERTY;
-
-[ uuid( 8f1c0e3c-fae3-4a82-b098-bfe1708207ff ), object, local, pointer_default( unique ) ]
-interface ID3D12CompatibilityDevice
- : IUnknown
-{
- HRESULT CreateSharedResource(
- [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties,
- D3D12_HEAP_FLAGS HeapFlags,
- [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc,
- D3D12_RESOURCE_STATES InitialResourceState,
- [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue,
- [annotation("_In_opt_")] const D3D11_RESOURCE_FLAGS* pFlags11,
- D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags,
- [annotation("_In_opt_")] ID3D12LifetimeTracker* pLifetimeTracker,
- [annotation("_In_opt_")] ID3D12SwapChainAssistant* pOwningSwapchain,
- REFIID riid,
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppResource);
-
- HRESULT CreateSharedHeap(
- [annotation("_In_")] const D3D12_HEAP_DESC* pHeapDesc,
- D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags,
- REFIID riid,
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppHeap);
-
- HRESULT ReflectSharedProperties(
- [annotation("_In_")] ID3D12Object* pHeapOrResource,
- D3D12_REFLECT_SHARED_PROPERTY ReflectType,
- [annotation("_Out_writes_bytes_(DataSize)")] void* pData,
- UINT DataSize);
-}
-
-[uuid(edbf5678-2960-4e81-8429-99d4b2630c4e), object, local, pointer_default(unique)]
-interface D3D11On12CreatorID : IUnknown { };
-
-[uuid(fffcbb7f-15d3-42a2-841e-9d8d32f37ddd), object, local, pointer_default(unique)]
-interface D3D9On12CreatorID : IUnknown { };
-
-[uuid(6bb3cd34-0d19-45ab-97ed-d720ba3dfc80), object, local, pointer_default(unique)]
-interface OpenGLOn12CreatorID : IUnknown { };
-
-[uuid(3f76bb74-91b5-4a88-b126-20ca0331cd60), object, local, pointer_default(unique)]
-interface OpenCLOn12CreatorID : IUnknown { };
-
-[uuid(cb7490ac-8a0f-44ec-9b7b-6f4cafe8e9ab), object, local, pointer_default(unique)]
-interface DirectMLTensorFlowCreatorID : IUnknown { };
-
-
-cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")
-#pragma endregion
-
-cpp_quote( "DEFINE_GUID(IID_ID3D12CompatibilityDevice,0x8f1c0e3c,0xfae3,0x4a82,0xb0,0x98,0xbf,0xe1,0x70,0x82,0x07,0xff);" )
-cpp_quote( "DEFINE_GUID(IID_D3D11On12CreatorID,0xedbf5678,0x2960,0x4e81,0x84,0x29,0x99,0xd4,0xb2,0x63,0x0c,0x4e);" )
-cpp_quote( "DEFINE_GUID(IID_D3D9On12CreatorID,0xfffcbb7f,0x15d3,0x42a2,0x84,0x1e,0x9d,0x8d,0x32,0xf3,0x7d,0xdd);" )
-cpp_quote( "DEFINE_GUID(IID_OpenGLOn12CreatorID,0x6bb3cd34,0x0d19,0x45ab,0x97,0xed,0xd7,0x20,0xba,0x3d,0xfc,0x80);" )
-cpp_quote( "DEFINE_GUID(IID_OpenCLOn12CreatorID,0x3f76bb74,0x91b5,0x4a88,0xb1,0x26,0x20,0xca,0x03,0x31,0xcd,0x60);" )
-cpp_quote( "DEFINE_GUID(IID_DirectMLTensorFlowCreatorID,0xcb7490ac,0x8a0f,0x44ec,0x9b,0x7b,0x6f,0x4c,0xaf,0xe8,0xe9,0xab);" )
diff --git a/WickedEngine/Utility/dx12/d3d12sdklayers.h b/WickedEngine/Utility/dx12/d3d12sdklayers.h
index eabc7366b..54b75e421 100644
--- a/WickedEngine/Utility/dx12/d3d12sdklayers.h
+++ b/WickedEngine/Utility/dx12/d3d12sdklayers.h
@@ -1,6 +1,7 @@
/*-------------------------------------------------------------------------------------
*
* Copyright (c) Microsoft Corporation
+ * Licensed under the MIT license
*
*-------------------------------------------------------------------------------------*/
@@ -8,7 +9,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.01.0624 */
+ /* File created by MIDL compiler version 8.01.0625 */
@@ -164,8 +165,8 @@ typedef interface ID3D12InfoQueue1 ID3D12InfoQueue1;
/* header files for imported files */
-#include "oaidl.h"
-#include "ocidl.h"
+#include "OAIdl.h"
+#include "OCIdl.h"
#include "d3d12.h"
#ifdef __cplusplus
@@ -2741,7 +2742,9 @@ enum D3D12_MESSAGE_ID
D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH = 1323,
D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY = 1324,
D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY = 1325,
- D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY + 1 )
+ D3D12_MESSAGE_ID_SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED = 1326,
+ D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED = 1327,
+ D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED + 1 )
} D3D12_MESSAGE_ID;
typedef struct D3D12_MESSAGE
diff --git a/WickedEngine/Utility/dx12/d3d12sdklayers.idl b/WickedEngine/Utility/dx12/d3d12sdklayers.idl
deleted file mode 100644
index 0f0d5312e..000000000
--- a/WickedEngine/Utility/dx12/d3d12sdklayers.idl
+++ /dev/null
@@ -1,1676 +0,0 @@
-/*-------------------------------------------------------------------------------------
- *
- * Copyright (c) Microsoft Corporation
- *
- *-------------------------------------------------------------------------------------*/
-import "oaidl.idl";
-import "ocidl.idl";
-
-import "d3d12.idl";
-
-cpp_quote("#include ")
-
-#pragma region App Family
-cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)")
-
-//==================================================================================================================================
-//
-// Debugging Layer
-//
-//==================================================================================================================================
-
-[uuid(344488b7-6846-474b-b989-f027448245e0), object, local, pointer_default(unique)]
-interface ID3D12Debug
- : IUnknown
-{
- void EnableDebugLayer();
-}
-
-typedef enum D3D12_GPU_BASED_VALIDATION_FLAGS
-{
- D3D12_GPU_BASED_VALIDATION_FLAGS_NONE = 0x00,
- D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING = 0x01,
-
-} D3D12_GPU_BASED_VALIDATION_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_FLAGS)")
-
-
-[uuid(affaa4ca-63fe-4d8e-b8ad-159000af4304), object, local, pointer_default(unique)]
-interface ID3D12Debug1
- : IUnknown
-{
- void EnableDebugLayer();
- void SetEnableGPUBasedValidation(BOOL Enable);
- void SetEnableSynchronizedCommandQueueValidation(BOOL Enable);
-}
-
-[uuid(93a665c4-a3b2-4e5d-b692-a26ae14e3374), object, local, pointer_default(unique)]
-interface ID3D12Debug2
- : IUnknown
-{
- void SetGPUBasedValidationFlags(D3D12_GPU_BASED_VALIDATION_FLAGS Flags);
-}
-
-[uuid(5cf4e58f-f671-4ff1-a542-3686e3d153d1), object, local, pointer_default(unique)]
-interface ID3D12Debug3
- : ID3D12Debug
-{
- void SetEnableGPUBasedValidation(BOOL Enable);
- void SetEnableSynchronizedCommandQueueValidation(BOOL Enable);
- void SetGPUBasedValidationFlags(D3D12_GPU_BASED_VALIDATION_FLAGS Flags);
-}
-
-[uuid(014b816e-9ec5-4a2f-a845-ffbe441ce13a), object, local, pointer_default(unique)]
-interface ID3D12Debug4
- : ID3D12Debug3
-{
- void DisableDebugLayer();
-}
-
-[uuid(548d6b12-09fa-40e0-9069-5dcd589a52c9), object, local, pointer_default(unique)]
-interface ID3D12Debug5
- : ID3D12Debug4
-{
- void SetEnableAutoName(BOOL Enable);
-}
-
-cpp_quote("DEFINE_GUID(WKPDID_D3DAutoDebugObjectNameW, 0xd4902e36, 0x757a, 0x4942, 0x95, 0x94, 0xb6, 0x76, 0x9a, 0xfa, 0x43, 0xcd);")
-
-typedef enum D3D12_RLDO_FLAGS
-{
- D3D12_RLDO_NONE = 0x0,
- D3D12_RLDO_SUMMARY = 0x1,
- D3D12_RLDO_DETAIL = 0x2,
- D3D12_RLDO_IGNORE_INTERNAL = 0x4,
-
-} D3D12_RLDO_FLAGS;
-
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS(D3D12_RLDO_FLAGS)")
-
-typedef enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE
-{
- D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS,
- D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS,
- D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR,
-} D3D12_DEBUG_DEVICE_PARAMETER_TYPE;
-
-typedef enum D3D12_DEBUG_FEATURE
-{
- D3D12_DEBUG_FEATURE_NONE = 0x00,
- D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x01,
- D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING = 0x02,
- D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 0x04,
- D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7 = 0x08,
-} D3D12_DEBUG_FEATURE;
-
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEBUG_FEATURE)")
-
-typedef enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE
-{
- D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE,
- D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY,
- D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION,
- D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION,
- NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES
-} D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE;
-
-typedef enum D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS
-{
- D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE = 0x00,
- D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 0x01,
- D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 0x02,
- D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 0x04,
- D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK = 0x07
-} D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS;
-
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS)")
-
-typedef struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS
-{
- UINT MaxMessagesPerCommandList;
- D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE DefaultShaderPatchMode;
- D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS PipelineStateCreateFlags;
-} D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS;
-
-typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR
-{
- FLOAT SlowdownFactor;
-} D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR;
-
-[uuid(a9b71770-d099-4a65-a698-3dee10020f88), object, local, pointer_default(unique)]
-interface ID3D12DebugDevice1
- : IUnknown
-{
- HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize);
- HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize);
- HRESULT ReportLiveDeviceObjects( D3D12_RLDO_FLAGS Flags );
-}
-
-[uuid(3febd6dd-4973-4787-8194-e45f9e28923e), object, local, pointer_default(unique)]
-interface ID3D12DebugDevice
- : IUnknown
-{
- HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE Mask);
- D3D12_DEBUG_FEATURE GetFeatureMask();
- HRESULT ReportLiveDeviceObjects(D3D12_RLDO_FLAGS Flags);
-}
-
-[uuid(60eccbc1-378d-4df1-894c-f8ac5ce4d7dd), object, local, pointer_default(unique)]
-interface ID3D12DebugDevice2
- : ID3D12DebugDevice
-{
- HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize);
- HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize);
-}
-
-cpp_quote("DEFINE_GUID(DXGI_DEBUG_D3D12, 0xcf59a98c, 0xa950, 0x4326, 0x91, 0xef, 0x9b, 0xba, 0xa1, 0x7b, 0xfd, 0x95);")
-
-
-[ uuid( 09e0bf36-54ac-484f-8847-4baeeab6053a ), object, local, pointer_default( unique ) ]
-interface ID3D12DebugCommandQueue
- : IUnknown
-{
- BOOL AssertResourceState( [annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State );
-// TODO: Stale BOOL AssertResourceStateThroughView( [annotation("_In_")] ID3D12View* pView, UINT State );
-};
-
-typedef enum D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE
-{
- D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS,
-} D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE;
-
-typedef struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS
-{
- D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE ShaderPatchMode;
-} D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS;
-
-[ uuid( 102ca951-311b-4b01-b11f-ecb83e061b37 ), object, local, pointer_default( unique ) ]
-interface ID3D12DebugCommandList1
- : IUnknown
-{
- BOOL AssertResourceState( [annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State );
- HRESULT SetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize);
- HRESULT GetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize);
-};
-
-[uuid(09e0bf36-54ac-484f-8847-4baeeab6053f), object, local, pointer_default(unique)]
-interface ID3D12DebugCommandList
- : IUnknown
-{
- BOOL AssertResourceState([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State);
- HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE Mask);
- D3D12_DEBUG_FEATURE GetFeatureMask();
-};
-
-[ uuid(aeb575cf-4e06-48be-ba3b-c450fc96652e), object, local, pointer_default( unique ) ]
-interface ID3D12DebugCommandList2
- : ID3D12DebugCommandList
-{
- HRESULT SetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize);
- HRESULT GetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize);
-};
-
-[uuid(0adf7d52-929c-4e61-addb-ffed30de66ef), object, local, pointer_default(unique)]
-interface ID3D12SharingContract
- : IUnknown
-{
- void Present([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, [annotation("_In_")] HWND window);
- void SharedFenceSignal([annotation("_In_")] ID3D12Fence* pFence, UINT64 FenceValue);
- void BeginCapturableWork([annotation("_In_")] REFGUID guid);
- void EndCapturableWork([annotation("_In_")] REFGUID guid);
-};
-
-
-//==================================================================================================================================
-//
-// Info Queue
-//
-//==================================================================================================================================
-typedef enum D3D12_MESSAGE_CATEGORY {
- D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED,
- D3D12_MESSAGE_CATEGORY_MISCELLANEOUS,
- D3D12_MESSAGE_CATEGORY_INITIALIZATION,
- D3D12_MESSAGE_CATEGORY_CLEANUP,
- D3D12_MESSAGE_CATEGORY_COMPILATION,
- D3D12_MESSAGE_CATEGORY_STATE_CREATION,
- D3D12_MESSAGE_CATEGORY_STATE_SETTING,
- D3D12_MESSAGE_CATEGORY_STATE_GETTING,
- D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION,
- D3D12_MESSAGE_CATEGORY_EXECUTION,
- D3D12_MESSAGE_CATEGORY_SHADER,
-} D3D12_MESSAGE_CATEGORY;
-
-typedef enum D3D12_MESSAGE_SEVERITY {
- D3D12_MESSAGE_SEVERITY_CORRUPTION,
- D3D12_MESSAGE_SEVERITY_ERROR,
- D3D12_MESSAGE_SEVERITY_WARNING,
- D3D12_MESSAGE_SEVERITY_INFO,
- D3D12_MESSAGE_SEVERITY_MESSAGE
-} D3D12_MESSAGE_SEVERITY;
-
-// Unique ID for every error
-// CAUTION: New enum values should be appended to the list only. Inserting
-// new enum values into the middle of the list results in changing the numeric
-// values of some ID's from one SDK release to the next. This in-turn breaks
-// PIX and customer tools/filters.
-typedef enum D3D12_MESSAGE_ID {
- D3D12_MESSAGE_ID_UNKNOWN = 0,
-
- //--------------------------------------------------------------------------
- // Messages Used by Core
- // Message IDs generated from core are at the beginning
- // since the core changes less frequently than the debug layer.
-
- // End of Messages used by Core
- // ------------------------------------------------------------------------
- D3D12_MESSAGE_ID_STRING_FROM_APPLICATION = 1,
- D3D12_MESSAGE_ID_CORRUPTED_THIS = 2,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 = 3,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 = 4,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 = 5,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 = 6,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 = 7,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 = 8,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 = 9,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 = 10,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 = 11,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 = 12,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 = 13,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 = 14,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 = 15,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 = 16,
- D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 = 17,
- D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING = 18,
- D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = 19,
-
- D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = 20,
- D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = 21,
- D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = 24,
- D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = 25,
-
- D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 26,
- D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = 27,
- D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 28,
- D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE = 29,
- D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE = 30,
- D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 31,
- D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 32,
-
- D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 35,
- D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 36,
- D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = 37,
- D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = 38,
- D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE = 39,
- D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE = 40,
- D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 41,
- D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = 42,
-
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 45,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = 46,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 47,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 48,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 49,
-
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = 52,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = 53,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = 54,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 55,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = 56,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 57,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 58,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 59,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 60,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = 61,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 62,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 63,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = 64,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = 65,
-
- D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = 66,
- D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 67,
- D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = 68,
-
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = 69,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 70,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 71,
-
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 72,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 73,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 74,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 75,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 76,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 79,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 80,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 81,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 82,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 83,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 84,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 85,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 86,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 87,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 88,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 89,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 90,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 91,
-
- D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = 92,
- D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 93,
- D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = 94,
-
- D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = 95,
- D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = 96,
- D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 97,
- D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 98,
-
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 100,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 101,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 102,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 103,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 104,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 105,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 106,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 107,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 108,
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 109,
-
- D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = 111,
- D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = 112,
- D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = 113,
- D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 114,
- D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 115,
- D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 116,
- D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 117,
-
- D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = 135,
-
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET = 200,
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH = 201,
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET = 202,
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 209,
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL = 210,
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET = 211,
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID = 212,
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL = 213,
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY = 219,
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED = 221,
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED = 222,
- D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = 232,
- D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 233,
- D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 234,
-
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 239,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 240,
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = 245,
-
- D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = 253,
-
- D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY = 255,
- D3D12_MESSAGE_ID_LIVE_DEVICE = 274,
- D3D12_MESSAGE_ID_LIVE_SWAPCHAIN = 275,
-
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = 276,
- D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = 277,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = 278,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = 280,
- D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = 283,
-
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = 284,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = 285,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = 286,
- D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = 287,
-
- D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = 289,
- D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = 290,
- D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = 291,
- D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = 292,
-
- D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = 294,
- D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = 295,
- D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = 296,
- D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = 297,
-
- D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = 310,
-
- D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = 318,
-
- D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = 321,
- D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = 322,
- D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = 323,
-
- D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 331,
- D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 332,
- D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 333,
- D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 334,
- D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = 335,
- D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 336,
- D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = 337,
-
- D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = 340,
- D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = 341,
- D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = 342,
- D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE = 343,
- D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE = 344,
- D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = 345,
- D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = 346,
- D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = 354,
-
- D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = 401,
-
- D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = 403,
-
- D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 410,
- D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 412,
- D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 414,
- D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 416,
- D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = 418,
- D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 420,
- D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 422,
-
- D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = 425,
- D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = 426,
- D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = 427,
- D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = 428,
- D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = 429,
- D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = 430,
- D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = 431,
-
- D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = 447,
- D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = 448,
-
- D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER = 493,
- D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER = 494,
-
- D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS = 506,
- D3D12_MESSAGE_ID_CREATEDEVICE_WARNING = 507,
-
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE = 519,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER = 520,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE = 521,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS = 522,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS = 523,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS = 524,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES = 525,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION = 526,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH = 527,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE = 528,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT = 529,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS = 530,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS = 531,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT = 532,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER = 533,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END = 534,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN = 535,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG = 536,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE = 537,
- D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE = 538,
- D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION = 540,
- D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET = 541,
- D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE = 542,
- D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET = 543,
- D3D12_MESSAGE_ID_COMMAND_LIST_OPEN = 544,
- D3D12_MESSAGE_ID_INVALID_BUNDLE_API = 546,
- D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED = 547,
- D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE = 549,
- D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC = 552,
- D3D12_MESSAGE_ID_COMMAND_LIST_SYNC = 553,
- D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID = 554,
-
- D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE = 557,
- D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR = 558,
- D3D12_MESSAGE_ID_CREATE_PIPELINESTATE = 559,
- D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 = 560,
- D3D12_MESSAGE_ID_CREATE_RESOURCE = 562,
- D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP = 563,
- D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE = 564,
- D3D12_MESSAGE_ID_CREATE_LIBRARY = 565,
- D3D12_MESSAGE_ID_CREATE_HEAP = 566,
- D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE = 567,
- D3D12_MESSAGE_ID_CREATE_QUERYHEAP = 568,
- D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE = 569,
-
- D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE = 570,
- D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR = 571,
- D3D12_MESSAGE_ID_LIVE_PIPELINESTATE = 572,
- D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 = 573,
- D3D12_MESSAGE_ID_LIVE_RESOURCE = 575,
- D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP = 576,
- D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE = 577,
- D3D12_MESSAGE_ID_LIVE_LIBRARY = 578,
- D3D12_MESSAGE_ID_LIVE_HEAP = 579,
- D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE = 580,
- D3D12_MESSAGE_ID_LIVE_QUERYHEAP = 581,
- D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE = 582,
-
- D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE = 583,
- D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR = 584,
- D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE = 585,
- D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 = 586,
- D3D12_MESSAGE_ID_DESTROY_RESOURCE = 588,
- D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP = 589,
- D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE = 590,
- D3D12_MESSAGE_ID_DESTROY_LIBRARY = 591,
- D3D12_MESSAGE_ID_DESTROY_HEAP = 592,
- D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE = 593,
- D3D12_MESSAGE_ID_DESTROY_QUERYHEAP = 594,
- D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE = 595,
-
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS = 597,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS = 599,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN = 602,
- D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN = 603,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC = 604,
- // This was shipped, but is no longer used. Do not reuse.
- //D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDINITIALSTATE = 605,
- D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE = 607,
- D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 608,
- D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 609,
- D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH = 610,
- D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE = 611,
- D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE = 613,
- D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 614,
- D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE = 615,
- D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 616,
- D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE = 622,
- D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC = 623,
- D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE = 624,
- D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE = 625,
- D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 626,
- D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL = 627,
- D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES = 628,
- D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT = 629,
- D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS = 630,
- D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS = 631,
- D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN = 632,
- D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN = 633,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES = 634,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE = 635,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 636,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL = 637,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES = 638,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS = 639,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS = 640,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN = 641,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN = 642,
- D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE = 643,
- D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE = 644,
- D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC = 645,
- D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE = 646,
- D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = 647,
- D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE = 649,
- D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC = 650,
- D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE = 652,
- D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES = 653,
- D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR = 654,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN = 655,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT = 656,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET = 657,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET = 658,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH = 659,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX = 660,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE = 661,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK = 662,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE = 663,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 664,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION = 665,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 666,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH = 667,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = 668,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH = 669,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = 670,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 671,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT = 672,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY = 673,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE = 674,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 675,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 676,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH = 677,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = 678,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET = 679,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET = 680,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH = 681,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT = 682,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS = 683,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES = 684,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC = 685,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH = 686,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH = 687,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH = 688,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH = 689,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH = 690,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE = 691,
- D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE = 692,
- D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH = 693,
- D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE = 694,
- D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE = 695,
- D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND = 696,
- D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED = 697,
- D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION = 698,
- D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE = 699,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES = 700,
- D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP = 701,
- D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS = 702,
- D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY = 703,
- D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY = 705,
- D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID = 708,
- D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID = 709,
- D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID = 710,
- D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID = 711,
- D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID = 712,
- D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC = 713,
- D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC = 715,
- D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC = 717,
- D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY = 718,
- D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT = 719,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY = 720,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT = 721,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS = 722,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC = 723,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT = 724,
- D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID = 725,
- D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID = 726,
- D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID = 727,
- D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID = 728,
- D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS = 729,
- D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS = 731,
- D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY = 732,
- D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS = 733,
- D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS = 734,
- D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED = 735,
- // This was shipped, but is no longer used. Do not reuse.
- //D3D12_MESSAGE_ID_UNSTABLE_POWER_STATE = 736,
- D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT = 737,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT = 738,
- D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE = 739,
- D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET = 740,
- // Note: These are the same as the above two, with the original (incorrect) name
- D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE = 739,
- D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET = 740,
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP = 741,
- D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID = 742,
- D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID = 743,
- D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS = 744,
- D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION = 745,
-
- // These values shipped, but are no longer used. Do not reuse.
- //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDCONTEXTTYPE = 746,
- //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_DECODENOTSUPPORTED = 747,
- //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_ENCODENOTSUPPORTED = 748,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE = 815,
- D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT = 816,
- D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT = 817,
- D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH = 818,
- D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE = 820,
- D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE = 821,
- D3D12_MESSAGE_ID_MAP_INVALIDHEAP = 822,
- D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP = 823,
- D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE = 824,
- D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE = 825,
- D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE = 826,
- D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE = 827,
- D3D12_MESSAGE_ID_MAP_INVALIDRANGE = 828,
- D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE = 829,
- D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER = 832,
- D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN = 833,
- D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN = 834,
- D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED = 835,
- D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH = 836,
- D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST = 837,
- D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST = 838,
- D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST = 839,
- D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION = 840,
- D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS = 841,
- D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC = 842,
- D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION = 843,
- D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS = 844,
- D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS = 845,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST = 846,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE = 847,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION = 848,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE = 849,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE = 850,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET = 851,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT = 852,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT = 853,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS = 854,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH = 855,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT = 856,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT = 857,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS = 858,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC = 859,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE = 860,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION = 861,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE = 862,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE = 863,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET = 864,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT = 865,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT = 866,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS = 867,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH = 868,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT = 869,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT = 870,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS = 871,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES = 872,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX = 873,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH = 874,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX = 875,
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS = 876,
-
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX = 877,
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT = 878,
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH = 879,
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT = 880,
-
- D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER = 881,
- D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH = 882,
- D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE = 883,
-
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB = 884,
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH = 885,
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH = 886,
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH = 887,
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED = 888,
- D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP = 889,
- D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE = 890,
- D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX = 891,
- D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE = 892,
- D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX = 893,
- D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP = 894,
- D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE = 895,
- D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX = 896,
- D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE = 897,
- D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX = 898,
-
- D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED = 899,
- D3D12_MESSAGE_ID_INVALID_NODE_INDEX = 900,
-
- D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE = 901,
- D3D12_MESSAGE_ID_NODE_MASK_MISMATCH = 902,
- D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY = 903,
- D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES = 904,
- D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES = 905,
- D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES = 906,
- D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE = 907,
- D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS = 908,
- D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE = 909,
- D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS = 910,
-
- D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS = 911,
- D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT = 912,
- D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS = 913,
- D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES = 914,
- D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE = 915,
- D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT = 916,
- D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT = 917,
- D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY = 918,
- D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE = 919,
- D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY = 920,
-
- D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE = 921,
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS = 922,
-
- D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE = 923,
-
- D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED = 924,
-
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT = 925,
-
- D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS = 926,
-
- D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED = 927,
-
- D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY = 929,
- D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE = 930,
- D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE = 931,
-
- D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT = 932,
- D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT = 933,
-
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED = 934,
-
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED = 935,
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS = 936,
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS = 937,
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED = 938,
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH = 939,
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH = 940,
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH = 941,
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE = 942,
-
- D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST = 943,
- D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE = 944,
- D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC = 945,
- D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE = 946,
-
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST = 947,
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE = 948,
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC = 949,
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE = 950,
-
- D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH = 951,
- D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET = 952,
- D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH = 953,
-
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS = 954,
-
- D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH = 955,
-
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH = 956,
-
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END = 957,
-
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE = 958,
-
- D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT = 959,
-
- D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE = 960,
-
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS = 961,
-
- D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB = 962,
- D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH = 963,
- D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH = 964,
- D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED = 965,
- D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY = 966,
- D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY = 967,
- D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY = 968,
-
- D3D12_MESSAGE_ID_STOREPIPELINE_NONAME = 969,
- D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME = 970,
- D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND = 971,
- D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC = 972,
- D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY = 973,
-
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH = 974,
-
- D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS = 975,
-
- D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED = 976,
- D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED = 977,
- D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED = 978,
- D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST = 979,
- D3D12_MESSAGE_ID_CREATE_VIDEODECODER = 980,
- D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM = 981,
- D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST = 982,
- D3D12_MESSAGE_ID_LIVE_VIDEODECODER = 983,
- D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM = 984,
- D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST = 985,
- D3D12_MESSAGE_ID_DESTROY_VIDEODECODER = 986,
- D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM = 987,
- D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS = 988,
-
- D3D12_MESSAGE_ID_DEPRECATED_API = 989,
-
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE = 990,
-
- D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET = 991,
- D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET = 992,
- D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET = 993,
- D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET = 994,
-
- D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE = 995,
- D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS = 996,
- D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D = 997,
-
- D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE = 998,
-
- D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE = 999,
-
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED = 1000,
-
- D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE = 1001,
- D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE = 1002,
- D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE = 1003,
- D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET = 1004,
-
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS = 1005,
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH = 1006,
-
- D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS = 1007,
-
- D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS = 1008,
- D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY = 1009,
- D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS = 1013,
-
- D3D12_MESSAGE_ID_BEGIN_EVENT = 1014,
- D3D12_MESSAGE_ID_END_EVENT = 1015,
-
- D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS = 1016,
-
- D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED = 1017,
-
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT = 1018,
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT = 1019,
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM = 1020,
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM = 1021,
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE = 1022,
-
- D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH = 1023,
-
- D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME = 1024,
- D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME = 1025,
-
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE = 1026,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST = 1027,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION = 1028,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS = 1029,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC = 1030,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION = 1031,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS = 1032,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT = 1033,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES = 1034,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES = 1035,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE = 1036,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE = 1037,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS = 1038,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS = 1039,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES = 1040,
-
- D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG = 1041,
-
- D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE = 1042,
-
- D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS = 1043,
-
- D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE = 1044,
-
- D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET = 1045,
-
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH = 1046,
-
- D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE = 1047,
-
- D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED = 1048,
-
- D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS = 1049,
-
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT = 1050,
-
- D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE = 1051,
- D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST = 1052,
- D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE = 1053,
- D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE = 1054,
- D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST = 1055,
- D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE = 1056,
- D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE = 1057,
- D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST = 1058,
- D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE = 1059,
- D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR = 1060,
- D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM = 1061,
- D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR = 1062,
- D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM = 1063,
- D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = 1064,
- D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM = 1065,
-
- D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS = 1066,
-
- D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT = 1067,
-
- D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION = 1068,
- D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY = 1069,
- D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION = 1070,
- D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION = 1071,
- D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY = 1072,
- D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION = 1073,
- D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION = 1074,
- D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY = 1075,
- D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION = 1076,
- D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED = 1077,
-
- D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION = 1078,
-
- D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED = 1079,
-
- D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED = 1080,
- D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE = 1081,
- D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR = 1082,
-
- D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP = 1083,
- D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP = 1084,
- D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP = 1085,
-
- D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN = 1086,
- D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN = 1087,
- D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS = 1088,
- D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE = 1089,
-
- D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST = 1090,
- D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE = 1091,
- D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT = 1092,
- D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED = 1093,
-
- D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS = 1094,
- D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED = 1095,
- D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS = 1096,
-
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1097,
- D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1098,
-
- D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE = 1099,
- D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED = 1100,
- D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT = 1101,
- D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED = 1102,
-
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR = 1103,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED = 1104,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR = 1105,
-
- D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT = 1106,
-
- D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT = 1107,
- D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE = 1108,
- D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT = 1109,
-
- D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT = 1110,
-
- D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS = 1111,
- D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED = 1112,
-
- D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT = 1113,
-
- D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED = 1114,
-
- D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER = 1115,
- D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER = 1116,
- D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER = 1117,
- D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED = 1118,
- D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS = 1119,
- D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS = 1120,
- D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS = 1121,
-
- D3D12_MESSAGE_ID_CREATE_COMMANDPOOL = 1122,
- D3D12_MESSAGE_ID_LIVE_COMMANDPOOL = 1123,
- D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL = 1124,
- D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS = 1125,
-
- D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED = 1126,
-
- D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH = 1127,
- D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION = 1128,
-
- D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST = 1129,
- D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST = 1130,
- D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST = 1131,
-
- D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS = 1132,
- D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET = 1133,
- D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING = 1134,
- D3D12_MESSAGE_ID_COMMAND_POOL_SYNC = 1135,
-
- D3D12_MESSAGE_ID_EVICT_UNDERFLOW = 1136,
-
- D3D12_MESSAGE_ID_CREATE_META_COMMAND = 1137,
- D3D12_MESSAGE_ID_LIVE_META_COMMAND = 1138,
- D3D12_MESSAGE_ID_DESTROY_META_COMMAND = 1139,
- D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE = 1140,
- D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE = 1141,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE = 1142,
- D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE = 1143,
- D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER = 1144,
- D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC = 1145,
- D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED = 1146,
- D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION = 1147,
- D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS = 1148,
- D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET = 1149,
- D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION = 1150,
- D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS = 1151,
- D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN = 1152,
-
- D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER = 1153,
- D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES = 1154,
-
- D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE = 1155,
-
- D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS = 1156,
-
- D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED = 1157,
-
- D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1158,
- D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID = 1159,
- D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1160,
- D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID = 1161,
- D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID = 1162,
-
- D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER = 1163,
- D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER = 1164,
- D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER = 1165,
- D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED = 1166,
-
- D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD = 1167,
- D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD = 1168,
- D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD = 1169,
-
- D3D12_MESSAGE_ID_RENDER_PASS_ERROR = 1170,
-
- D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID = 1171,
- D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS = 1172,
- D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION = 1173,
- D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH = 1174,
- D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND = 1175,
- D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS = 1176,
-
- D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST = 1177,
- D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST = 1178,
- D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST = 1179,
-
- D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE = 1180,
- D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE = 1181,
- D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE = 1182,
-
- D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR = 1183,
- D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR = 1184,
- D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR = 1185,
-
- D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP = 1186,
- D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP = 1187,
- D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP = 1188,
-
- D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS = 1189,
- D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS = 1190,
- D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR = 1191,
- D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD = 1192,
- D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR = 1193,
- D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR = 1194,
- D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR = 1195,
- D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR = 1196,
- D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR = 1197,
- D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR = 1198,
- D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID = 1199,
- D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID = 1200,
- D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE = 1201,
-
- D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER = 1202,
- D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED = 1203,
- D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES = 1204,
- D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN = 1205,
- D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST = 1206,
- D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED = 1207,
- D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME = 1208,
- D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS = 1209,
- D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS = 1210,
-
- D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH = 1211,
- D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED = 1212,
-
- D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS = 1213,
- D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE = 1214,
-
- D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR = 1215,
-
- D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL = 1216,
- D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT = 1217,
-
- D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT = 1218,
- D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1219,
- D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT = 1220,
- D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1221,
-
- D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE = 1222,
- D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT = 1223,
- D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL = 1224,
-
- D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND = 1225,
- D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND = 1226,
- D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND = 1227,
- D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID = 1228,
- D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT = 1229,
-
- D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY = 1230,
-
- D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR = 1231,
- D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1232,
- D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE = 1233,
- D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP = 1234,
- D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER = 1235,
- D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2 = 1236,
- D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1 = 1237,
- D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT = 1238,
- D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE = 1239,
- D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL = 1240,
- D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT = 1241,
- D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY = 1242,
-
- D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE = 1243,
-
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH = 1244,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH = 1245,
-
- D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR = 1246,
-
- D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT = 1247,
-
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH = 1248,
- D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE = 1249,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH = 1250,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH = 1251,
- D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT = 1252,
- D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH = 1253,
-
- D3D12_MESSAGE_ID_EMPTY_DISPATCH = 1254,
-
-
- D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1255,
- D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION = 1256,
- D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION = 1257,
- D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT = 1258,
- D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY = 1259,
- D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT = 1260,
- D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG = 1261,
- D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS = 1262,
- D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1263,
- D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT = 1264,
-
- D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE = 1265,
- D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY = 1266,
- D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 1267,
-
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT = 1268,
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT = 1269,
- D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH = 1270,
-
- D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE = 1271,
-
- D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE = 1272,
- D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE = 1273,
-
- D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1274,
- D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1275,
- D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE = 1276,
-
- D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS = 1277,
-
- D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE = 1278,
- D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY = 1279,
-
- D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION = 1280,
- D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION = 1281,
- D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION = 1282,
-
- D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS = 1283,
- D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED = 1284,
- D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN = 1285,
-
- D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE = 1286,
- D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS = 1287,
- D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET = 1288,
- D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG = 1289,
-
- D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT = 1290,
- D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION = 1291,
- D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL = 1292,
- D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND = 1293,
- D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT = 1294,
- D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED = 1295,
-
- D3D12_MESSAGE_ID_OVERSIZED_DISPATCH = 1296,
- D3D12_MESSAGE_ID_CREATE_VIDEOENCODER = 1297,
- D3D12_MESSAGE_ID_LIVE_VIDEOENCODER = 1298,
- D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER = 1299,
- D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP = 1300,
- D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP = 1301,
- D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP = 1302,
-
- D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1303,
- D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1304,
- D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS = 1305,
- D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS = 1306,
- D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS = 1307,
- D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS = 1308,
- D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS = 1309,
- D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS = 1310,
- D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS = 1311,
- D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS = 1312,
- D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR = 1313,
- D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE = 1314,
- D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE = 1315,
- D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING = 1316,
- D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING = 1317,
- D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING = 1318,
- D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE = 1319,
- D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS = 1320,
- D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH = 1321,
- D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH = 1322,
- D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH = 1323,
- D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY = 1324,
- D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY = 1325,
- D3D12_MESSAGE_ID_D3D12_MESSAGES_END
-} D3D12_MESSAGE_ID;
-
-typedef struct D3D12_MESSAGE
-{
- D3D12_MESSAGE_CATEGORY Category;
- D3D12_MESSAGE_SEVERITY Severity;
- D3D12_MESSAGE_ID ID;
- [annotation("_Field_size_(DescriptionByteLength)")] const char* pDescription;
- SIZE_T DescriptionByteLength;
-} D3D12_MESSAGE;
-
-typedef struct D3D12_INFO_QUEUE_FILTER_DESC
-{
- UINT NumCategories;
- [annotation("_Field_size_(NumCategories)")] D3D12_MESSAGE_CATEGORY* pCategoryList;
- UINT NumSeverities;
- [annotation("_Field_size_(NumSeverities)")] D3D12_MESSAGE_SEVERITY* pSeverityList;
- UINT NumIDs;
- [annotation("_Field_size_(NumIDs)")] D3D12_MESSAGE_ID* pIDList;
-} D3D12_INFO_QUEUE_FILTER_DESC;
-
-// To use, memset to 0, then fill in what you need.
-typedef struct D3D12_INFO_QUEUE_FILTER
-{
- D3D12_INFO_QUEUE_FILTER_DESC AllowList;
- D3D12_INFO_QUEUE_FILTER_DESC DenyList;
-} D3D12_INFO_QUEUE_FILTER;
-
-//=============================================================================
-// ID3D12InfoQueue
-//
-// Logs D3D12 Messages.
-// This interface can be queried from ID3D12Device, as long as the device
-// was created with the debug layer.
-//
-//
-cpp_quote("#define D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024")
-[uuid(0742a90b-c387-483f-b946-30a7e4e61458), object, local, pointer_default(unique)]
-interface ID3D12InfoQueue
- : IUnknown
-{
- //=========================================================================
- // Methods for configuring how much data is stored in the queue.
-
- // SetMessageCountLimit()
- // This sets how many messages are stored. When the queue is full,
- // new messages coming in push old messages out.
- // Passing -1 to SetMessageCountLimit means the queue has
- // unlimited size (go until out of memory or ClearStoredMessages()).
- // The default message count size is
- // D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT
- // Returns S_OK or E_INVALIDARG.
- HRESULT SetMessageCountLimit([annotation("_In_")] UINT64 MessageCountLimit);
-
- // ClearStoredMessages
- void ClearStoredMessages();
-
- //=========================================================================
- // Methods for retrieving data or statistics from the queue.
-
- // GetMessage()
- // Retrieves messages, one at a time, from the queue which pass any
- // retrieval filter currently defined. If there is no retrieval filter,
- // all messages can be retrieved.
- // The MessageIndex parameter is a 0 based index into the results passing
- // the filter. The number of results is returned by
- // GetNumStoredMessagesAllowedByRetrievalFilter().
- //
- // Note this does not remove the message from the queue.
- //
- // pMessageByteLength inputs the size of the buffer passed in via
- // pMessage, and outputs the size of the message. pMessage can be NULL
- // when the size of the required buffer is being queried (return S_FALSE).
- //
- // NOTE: The returned buffer pMessage is NOT just the size of D3D12_MESSAGE,
- // it includes extra memory after the D3D12_MESSAGE for storing the string
- // description, which is pointed to from within D3D12_MESSAGE. Therefore
- // applications should check the size needed for pMessage as described above.
- //
- // Watch out for thread safety when making consecutive calls first to
- // determine the buffer size required and then to pass in the buffer and
- // retrieve the message, and also between calling
- // GetNumStoredMessagesAllowedByRetrievalFilter() and enumerating through
- // the results via GetMessagE().
- //
- // Returns: S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY.
- HRESULT GetMessage(
- [annotation("_In_")] UINT64 MessageIndex,
- [annotation("_Out_writes_bytes_opt_(*pMessageByteLength)")] D3D12_MESSAGE* pMessage,
- [annotation("_Inout_")] SIZE_T* pMessageByteLength);
-
- // GetNumMessagesAllowedByStorageFilter()
- // Returns how many messages sent to the queue passed
- // whatever storage filter was active upon receipt of
- // the message.
- // This can be a larger value than the message count limit,
- // returned by GetMessageCountLimit(), since old messages are discarded
- // when the queue is full to prevent overflow.
- UINT64 GetNumMessagesAllowedByStorageFilter();
-
- // GetNumMessagesDeniedByStorageFilter()
- UINT64 GetNumMessagesDeniedByStorageFilter();
-
- // GetNumStoredMessages()
- // Returns how many messages are currently stored in the queue.
- UINT64 GetNumStoredMessages();
-
- // GetNumStoredMessagesAllowedByRetrievalFilter()
- // Returns how many messages that are currently in the queue
- // pass any retrieval filter that is currently set.
- // The MessageIndex parameter to GetMessage() indexes
- // an array of this many results.
- UINT64 GetNumStoredMessagesAllowedByRetrievalFilter();
-
- // GetNumMessagesDiscardedByMessageCountLimit()
- UINT64 GetNumMessagesDiscardedByMessageCountLimit();
-
- // GetMessageCountLimit
- // This is how many messages can be stored in the queue.
- // When the queue is full, new messages coming in push old messages out.
- // -1 means there is no limit.
- UINT64 GetMessageCountLimit();
-
- //=========================================================================
- // Methods for filtering what gets stored in the queue
-
- // AddStorageFilterEntries()
- // Adds to the existing entries at top of stack
- // Returns: S_OK, E_INVALIDARG or E_OUTOFMEMORY.
- HRESULT AddStorageFilterEntries(
- [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter);
-
- // GetStorageFilter()
- // Gets all entries at top of stack.
- // The application must allocate the output buffer. The size required can be
- // queried by passing null for pFilter and looking at the returned
- // pFilterByteLength (HRESULT is S_FALSE). Note that D3D12_INFO_QUEUE_FILTER contains
- // pointers - these will point to locations within the same
- // contiguous buffer - *pFilterByteLength is the total storage needed for all
- // data. So the application needs to only allocate/free the memory for pFilter.
- // Returns S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY
- HRESULT GetStorageFilter(
- [annotation("_Out_writes_bytes_opt_(*pFilterByteLength)")] D3D12_INFO_QUEUE_FILTER* pFilter,
- [annotation("_Inout_")] SIZE_T* pFilterByteLength);
-
- // ClearStorageFilter()
- // Clears filter at the top of the stack (if there is one)
- void ClearStorageFilter();
-
- // PushEmptyStorageFilter()
- // Push an empty storage filter on the stack to allow local filtering changes.
- // For convenience, this is automatically called by SetStorageFilter()
- // if the stack is empty. Thus if the stack is not needed, filters can be
- // defined without ever bothering to push or pop.
- // Returns S_OK or E_OUTOFMEMORY
- HRESULT PushEmptyStorageFilter();
-
- // PushCopyOfStorageFilter()
- // Push a copy of the current filter so that local modifications can be made
- // starting from what currently exists.
- // Returns S_OK or E_OUTOFMEMORY
- HRESULT PushCopyOfStorageFilter();
-
- // PushStorageFilter()
- // Push a filter passed as a parameter onto the stack. This is
- // just a helper for calling PushEmptyStorageFilter() followed
- // by AddStorageFilterEntries()
- // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY.
- HRESULT PushStorageFilter(
- [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter);
-
- // PopStorageFilter()
- // Pop the current storage filter off the stack (if there is one)
- void PopStorageFilter();
-
- // GetStorageFilterStackSize()
- UINT GetStorageFilterStackSize();
-
- //=========================================================================
- // Methods for filtering what gets read out of the queue by GetMessage().
-
- // AddRetrievalFilterEntries()
- // Adds to the existing entries at top of stack
- // Returns: S_OK, E_INVALIDARG or E_OUTOFMEMORY.
- HRESULT AddRetrievalFilterEntries(
- [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter);
-
- // GetRetrievalFilter()
- // Gets all entries at top of stack.
- // The application must allocate the output buffer. The size required can be
- // queried by passing null for pFilter and looking at the returned
- // pFilterByteLength (HRESULT is S_FALSE). Note that D3D12_INFO_QUEUE_FILTER contains
- // pointers - these will point to locations within the same
- // contiguous buffer - *pFilterByteLength is the total storage needed for all
- // data. So the application needs to only allocate/free the memory for pFilter.
- // Returns S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY
- HRESULT GetRetrievalFilter(
- [annotation("_Out_writes_bytes_opt_(*pFilterByteLength)")] D3D12_INFO_QUEUE_FILTER* pFilter,
- [annotation("_Inout_")] SIZE_T* pFilterByteLength);
-
- // ClearRetrievalFilter()
- // Clears filter at the top of the stack (if there is one)
- void ClearRetrievalFilter();
-
- // PushEmptyRetrievalFilter()
- // Push an empty storage filter on the stack to allow local filtering changes.
- // For convenience, this is automatically called by SetRetrievalFilter()
- // if the stack is empty. Thus if the stack is not needed, filters can be
- // defined without ever bothering to push or pop.
- // Returns S_OK or E_OUTOFMEMORY
- HRESULT PushEmptyRetrievalFilter();
-
- // PushCopyOfRetrievalFilter()
- // Push a copy of the current filter so that local modifications can be made
- // starting from what currently exists.
- // Returns S_OK or E_OUTOFMEMORY
- HRESULT PushCopyOfRetrievalFilter();
-
- // PushRetrievalFilter()
- // Push a filter passed as a parameter onto the stack. This is
- // just a helper for calling PushEmptyRetrievalFilter() followed
- // by AddRetrievalFilterEntries()
- // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY.
- HRESULT PushRetrievalFilter(
- [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter);
-
- // PopRetrievalFilter()
- // Pop the current storage filter off the stack (if there is one)
- void PopRetrievalFilter();
-
- // GetRetrievalFilterStackSize()
- UINT GetRetrievalFilterStackSize();
-
- //=========================================================================
- // Methods for adding entries to the queue.
-
- // AddMessage()
- // This is used by D3D12 components to log messages. Nothing stops
- // applications from calling this, but it isn’t particularly useful.
- // If an application wishes to insert custom strings into the queue,
- // AddApplicationMessage() below is suggested. See below.
- //
- // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY
- HRESULT AddMessage(
- [annotation("_In_")] D3D12_MESSAGE_CATEGORY Category,
- [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity,
- [annotation("_In_")] D3D12_MESSAGE_ID ID,
- [annotation("_In_")] LPCSTR pDescription);
-
- // AddApplicationMessage()
- // This is a convenience for applications that want
- // to insert strings of their own into the queue, perhaps to log issues
- // of its own, or to mark out points in time in the queue. This
- // has the same effect as calling AddMessage() above with the
- // following settings:
- // Category = D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED
- // Severity =
- // ID = D3D12_MESSAGE_ID_STRING_FROM_APPLICATION
- // pDescription =
- //
- // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY
- HRESULT AddApplicationMessage(
- [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity,
- [annotation("_In_")] LPCSTR pDescription);
-
- //=========================================================================
- // Methods for breaking on errors that pass the storage filter.
- HRESULT SetBreakOnCategory(
- [annotation("_In_")] D3D12_MESSAGE_CATEGORY Category,
- [annotation("_In_")] BOOL bEnable);
- HRESULT SetBreakOnSeverity(
- [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity,
- [annotation("_In_")] BOOL bEnable);
- HRESULT SetBreakOnID(
- [annotation("_In_")] D3D12_MESSAGE_ID ID,
- [annotation("_In_")] BOOL bEnable);
-
- BOOL GetBreakOnCategory(
- [annotation("_In_")] D3D12_MESSAGE_CATEGORY Category);
- BOOL GetBreakOnSeverity(
- [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity);
- BOOL GetBreakOnID(
- [annotation("_In_")] D3D12_MESSAGE_ID ID);
-
- //=========================================================================
- // Methods for globally muting debug spte from the InfoQueue
- void SetMuteDebugOutput(
- [annotation("_In_")] BOOL bMute);
- BOOL GetMuteDebugOutput();
-};
-
-typedef enum D3D12_MESSAGE_CALLBACK_FLAGS
-{
- D3D12_MESSAGE_CALLBACK_FLAG_NONE = 0x00,
- D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS = 0x01,
-
-} D3D12_MESSAGE_CALLBACK_FLAGS;
-
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS(D3D12_MESSAGE_CALLBACK_FLAGS)")
-
-typedef void (__stdcall *D3D12MessageFunc) (D3D12_MESSAGE_CATEGORY Category,
- D3D12_MESSAGE_SEVERITY Severity,
- D3D12_MESSAGE_ID ID,
- LPCSTR pDescription,
- void* pContext);
-
-[ uuid( 2852dd88-b484-4c0c-b6b1-67168500e600 ), object, local, pointer_default( unique ) ]
-interface ID3D12InfoQueue1
- : ID3D12InfoQueue
-{
- HRESULT RegisterMessageCallback(
- [annotation("_In_")] D3D12MessageFunc CallbackFunc,
- [annotation("_In_")] D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags,
- [annotation("_In_")] void* pContext,
- [annotation("_Inout_")] DWORD *pCallbackCookie);
-
- HRESULT UnregisterMessageCallback(
- [annotation("_In_")] DWORD CallbackCookie);
-};
-
-
-
-cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */")
-#pragma endregion
-
-cpp_quote( "DEFINE_GUID(IID_ID3D12Debug,0x344488b7,0x6846,0x474b,0xb9,0x89,0xf0,0x27,0x44,0x82,0x45,0xe0);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Debug1,0xaffaa4ca,0x63fe,0x4d8e,0xb8,0xad,0x15,0x90,0x00,0xaf,0x43,0x04);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Debug2,0x93a665c4,0xa3b2,0x4e5d,0xb6,0x92,0xa2,0x6a,0xe1,0x4e,0x33,0x74);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Debug3,0x5cf4e58f,0xf671,0x4ff1,0xa5,0x42,0x36,0x86,0xe3,0xd1,0x53,0xd1);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Debug4,0x014b816e,0x9ec5,0x4a2f,0xa8,0x45,0xff,0xbe,0x44,0x1c,0xe1,0x3a);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12Debug5,0x548d6b12,0x09fa,0x40e0,0x90,0x69,0x5d,0xcd,0x58,0x9a,0x52,0xc9);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice1,0xa9b71770,0xd099,0x4a65,0xa6,0x98,0x3d,0xee,0x10,0x02,0x0f,0x88);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice,0x3febd6dd,0x4973,0x4787,0x81,0x94,0xe4,0x5f,0x9e,0x28,0x92,0x3e);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice2,0x60eccbc1,0x378d,0x4df1,0x89,0x4c,0xf8,0xac,0x5c,0xe4,0xd7,0xdd);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandQueue,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3a);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList1,0x102ca951,0x311b,0x4b01,0xb1,0x1f,0xec,0xb8,0x3e,0x06,0x1b,0x37);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3f);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList2,0xaeb575cf,0x4e06,0x48be,0xba,0x3b,0xc4,0x50,0xfc,0x96,0x65,0x2e);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12SharingContract,0x0adf7d52,0x929c,0x4e61,0xad,0xdb,0xff,0xed,0x30,0xde,0x66,0xef);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12InfoQueue,0x0742a90b,0xc387,0x483f,0xb9,0x46,0x30,0xa7,0xe4,0xe6,0x14,0x58);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12InfoQueue1,0x2852dd88,0xb484,0x4c0c,0xb6,0xb1,0x67,0x16,0x85,0x00,0xe6,0x00);" )
diff --git a/WickedEngine/Utility/dx12/d3d12shader.h b/WickedEngine/Utility/dx12/d3d12shader.h
index 854850580..4ff639bb2 100644
--- a/WickedEngine/Utility/dx12/d3d12shader.h
+++ b/WickedEngine/Utility/dx12/d3d12shader.h
@@ -1,6 +1,7 @@
//////////////////////////////////////////////////////////////////////////////
//
-// Copyright (c) Microsoft Corporation. All rights reserved.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
//
// File: D3D12Shader.h
// Content: D3D12 Shader Types and APIs
@@ -186,6 +187,7 @@ typedef struct _D3D12_SHADER_INPUT_BIND_DESC
#define D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x02000000
#define D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x04000000
#define D3D_SHADER_REQUIRES_WAVE_MMA 0x08000000
+#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000
typedef struct _D3D12_LIBRARY_DESC
{
diff --git a/WickedEngine/Utility/dx12/d3d12video.h b/WickedEngine/Utility/dx12/d3d12video.h
index 533aea4d9..8d9d65829 100644
--- a/WickedEngine/Utility/dx12/d3d12video.h
+++ b/WickedEngine/Utility/dx12/d3d12video.h
@@ -1,6 +1,7 @@
/*-------------------------------------------------------------------------------------
*
* Copyright (c) Microsoft Corporation
+ * Licensed under the MIT license
*
*-------------------------------------------------------------------------------------*/
@@ -192,8 +193,8 @@ typedef interface ID3D12VideoEncodeCommandList1 ID3D12VideoEncodeCommandList1;
/* header files for imported files */
-#include "oaidl.h"
-#include "ocidl.h"
+#include "OAIdl.h"
+#include "OCIdl.h"
#include "dxgicommon.h"
#include "d3d12.h"
@@ -541,10 +542,6 @@ EXTERN_C const IID IID_ID3D12VideoDecoderHeap;
-
-
-
-
#endif /* __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ */
@@ -814,10 +811,6 @@ EXTERN_C const IID IID_ID3D12VideoDecoder;
-
-
-
-
#endif /* __ID3D12VideoDecoder_INTERFACE_DEFINED__ */
@@ -1227,10 +1220,6 @@ EXTERN_C const IID IID_ID3D12VideoProcessor;
-
-
-
-
#endif /* __ID3D12VideoProcessor_INTERFACE_DEFINED__ */
@@ -2860,10 +2849,6 @@ EXTERN_C const IID IID_ID3D12VideoMotionEstimator;
-
-
-
-
#endif /* __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ */
@@ -3025,10 +3010,6 @@ EXTERN_C const IID IID_ID3D12VideoMotionVectorHeap;
-
-
-
-
#endif /* __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ */
@@ -4320,10 +4301,6 @@ EXTERN_C const IID IID_ID3D12VideoExtensionCommand;
-
-
-
-
#endif /* __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ */
diff --git a/WickedEngine/Utility/dx12/d3d12video.idl b/WickedEngine/Utility/dx12/d3d12video.idl
deleted file mode 100644
index 8f8427a20..000000000
--- a/WickedEngine/Utility/dx12/d3d12video.idl
+++ /dev/null
@@ -1,1447 +0,0 @@
-/*-------------------------------------------------------------------------------------
- *
- * Copyright (c) Microsoft Corporation
- *
- *-------------------------------------------------------------------------------------*/
-import "oaidl.idl";
-import "ocidl.idl";
-
-import "dxgicommon.idl";
-import "d3d12.idl";
-
-cpp_quote("#include ")
-
-#pragma region App Family
-cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)")
-
-typedef enum D3D12_VIDEO_FIELD_TYPE
-{
- D3D12_VIDEO_FIELD_TYPE_NONE = 0,
- D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1,
- D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2,
-} D3D12_VIDEO_FIELD_TYPE;
-
-typedef enum D3D12_VIDEO_FRAME_STEREO_FORMAT
-{
- D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0,
- D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1,
- D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2,
- D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3,
- D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4,
-} D3D12_VIDEO_FRAME_STEREO_FORMAT;
-
-typedef struct D3D12_VIDEO_FORMAT
-{
- DXGI_FORMAT Format;
- DXGI_COLOR_SPACE_TYPE ColorSpace;
-} D3D12_VIDEO_FORMAT;
-
-typedef struct D3D12_VIDEO_SAMPLE
-{
- UINT Width;
- UINT Height;
- D3D12_VIDEO_FORMAT Format;
-} D3D12_VIDEO_SAMPLE;
-
-typedef enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE
-{
- D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0,
- D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1,
-} D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE;
-
-typedef enum D3D12_FEATURE_VIDEO
-{
- D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0,
- D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1,
- D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2,
- D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3,
- D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5,
- D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6,
- D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7,
- D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8,
- D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9,
- D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10,
- D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11,
- D3D12_FEATURE_VIDEO_ARCHITECTURE = 17,
- D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18,
- D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = 19,
- D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = 20,
- D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = 21,
- D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = 22,
- D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = 23,
- D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = 24,
- D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = 25,
- D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = 26,
- D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = 27,
- D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = 28,
- D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = 29,
- D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30,
- D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = 31,
- D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = 32,
-
-} D3D12_FEATURE_VIDEO;
-
-typedef enum D3D12_BITSTREAM_ENCRYPTION_TYPE
-{
- D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0,
-} D3D12_BITSTREAM_ENCRYPTION_TYPE;
-
-typedef struct D3D12_VIDEO_DECODE_CONFIGURATION
-{
- GUID DecodeProfile;
- D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption;
- D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType;
-} D3D12_VIDEO_DECODE_CONFIGURATION;
-
-typedef struct D3D12_VIDEO_DECODER_DESC
-{
- UINT NodeMask;
- D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
-} D3D12_VIDEO_DECODER_DESC;
-
-typedef struct D3D12_VIDEO_DECODER_HEAP_DESC
-{
- UINT NodeMask;
- D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
- UINT DecodeWidth;
- UINT DecodeHeight;
- DXGI_FORMAT Format;
- DXGI_RATIONAL FrameRate;
- UINT BitRate;
- UINT MaxDecodePictureBufferCount;
-} D3D12_VIDEO_DECODER_HEAP_DESC;
-
-typedef struct D3D12_VIDEO_SIZE_RANGE
-{
- UINT MaxWidth;
- UINT MaxHeight;
- UINT MinWidth;
- UINT MinHeight;
-} D3D12_VIDEO_SIZE_RANGE;
-
-typedef enum D3D12_VIDEO_PROCESS_FILTER
-{
- D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0,
- D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1,
- D3D12_VIDEO_PROCESS_FILTER_HUE = 2,
- D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3,
- D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4,
- D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5,
- D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6,
- D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7,
-} D3D12_VIDEO_PROCESS_FILTER;
-
-typedef enum D3D12_VIDEO_PROCESS_FILTER_FLAGS
-{
- D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0x0,
- D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = (1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS),
- D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = (1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST),
- D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = (1 << D3D12_VIDEO_PROCESS_FILTER_HUE),
- D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = (1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION),
- D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = (1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION),
- D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = (1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT),
- D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = (1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING),
- D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = (1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT),
-
-} D3D12_VIDEO_PROCESS_FILTER_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS );")
-
-typedef enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS
-{
- D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0x0,
- D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1,
- D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000,
-
-} D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS );")
-
-typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING
-{
- BOOL Enable;
- FLOAT Alpha;
-} D3D12_VIDEO_PROCESS_ALPHA_BLENDING;
-
-typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY
-{
- BOOL Enable;
- FLOAT Lower;
- FLOAT Upper;
-} D3D12_VIDEO_PROCESS_LUMA_KEY;
-
-typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC
-{
- DXGI_FORMAT Format;
- DXGI_COLOR_SPACE_TYPE ColorSpace;
- DXGI_RATIONAL SourceAspectRatio;
- DXGI_RATIONAL DestinationAspectRatio;
- DXGI_RATIONAL FrameRate;
- D3D12_VIDEO_SIZE_RANGE SourceSizeRange;
- D3D12_VIDEO_SIZE_RANGE DestinationSizeRange;
- BOOL EnableOrientation;
- D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags;
- D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat;
- D3D12_VIDEO_FIELD_TYPE FieldType;
- D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode;
- BOOL EnableAlphaBlending;
- D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey;
- UINT NumPastFrames;
- UINT NumFutureFrames;
- BOOL EnableAutoProcessing;
-} D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC;
-
-typedef enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE
-{
- D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0,
- D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1,
- D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2,
- D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3,
-} D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE;
-
-typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC
-{
- DXGI_FORMAT Format;
- DXGI_COLOR_SPACE_TYPE ColorSpace;
- D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode;
- UINT AlphaFillModeSourceStreamIndex;
- FLOAT BackgroundColor[4];
- DXGI_RATIONAL FrameRate;
- BOOL EnableStereo;
-} D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC;
-
-[uuid(0946B7C9-EBF6-4047-BB73-8683E27DBB1F), object, local, pointer_default(unique)]
-interface ID3D12VideoDecoderHeap
- : ID3D12Pageable
-{
- D3D12_VIDEO_DECODER_HEAP_DESC GetDesc();
-}
-
-[uuid(1F052807-0B46-4ACC-8A89-364F793718A4), object, local, pointer_default(unique)]
-interface ID3D12VideoDevice
- : IUnknown
-{
- HRESULT CheckFeatureSupport(
- D3D12_FEATURE_VIDEO FeatureVideo,
- [annotation("_Inout_updates_bytes_(FeatureSupportDataSize)")] void* pFeatureSupportData,
- UINT FeatureSupportDataSize
- );
-
- HRESULT CreateVideoDecoder(
- [annotation("_In_")] const D3D12_VIDEO_DECODER_DESC* pDesc,
- [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoder,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoder
- );
-
- HRESULT CreateVideoDecoderHeap(
- [annotation("_In_")]const D3D12_VIDEO_DECODER_HEAP_DESC* pVideoDecoderHeapDesc,
- [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoderHeap,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoderHeap
- );
-
- HRESULT CreateVideoProcessor(
- UINT NodeMask,
- [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc,
- UINT NumInputStreamDescs,
- [annotation("_In_reads_(NumInputStreamDescs)")]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
- [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoProcessor,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void **ppVideoProcessor
- );
-}
-
-[uuid(C59B6BDC-7720-4074-A136-17A156037470), object, local, pointer_default(unique)]
-interface ID3D12VideoDecoder
- : ID3D12Pageable
-{
- D3D12_VIDEO_DECODER_DESC GetDesc();
-}
-
-typedef enum D3D12_VIDEO_DECODE_TIER
-{
- D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0,
- D3D12_VIDEO_DECODE_TIER_1 = 1,
- D3D12_VIDEO_DECODE_TIER_2 = 2,
- D3D12_VIDEO_DECODE_TIER_3 = 3,
-} D3D12_VIDEO_DECODE_TIER;
-
-typedef enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS
-{
- D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0x0,
- D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1,
-
-} D3D12_VIDEO_DECODE_SUPPORT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS );")
-
-typedef enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS
-{
- D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0x0,
- D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1,
- D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2,
- D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4,
- D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8,
-
-} D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS );")
-
-typedef enum D3D12_VIDEO_DECODE_STATUS
-{
- D3D12_VIDEO_DECODE_STATUS_OK = 0,
- D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1,
- D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2,
- D3D12_VIDEO_DECODE_STATUS_RESTART = 3,
- D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4,
-} D3D12_VIDEO_DECODE_STATUS;
-
-typedef enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE
-{
- D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0,
- D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1,
- D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2,
- D3D12_VIDEO_DECODE_ARGUMENT_TYPE_MAX_VALID = 3
-} D3D12_VIDEO_DECODE_ARGUMENT_TYPE;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT
-{
- UINT NodeIndex; // input
- D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input
- UINT Width; // input
- UINT Height; // input
- DXGI_FORMAT DecodeFormat; // input
- DXGI_RATIONAL FrameRate; // input
- UINT BitRate; // input
- D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags; // output
- D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags; // output
- D3D12_VIDEO_DECODE_TIER DecodeTier; // output
-} D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT
-{
- UINT NodeIndex; // input
- UINT ProfileCount; // output
-} D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES
-{
- UINT NodeIndex; // input
- UINT ProfileCount; // input
- [annotation("_Field_size_full_(ProfileCount)")] GUID *pProfiles; // output. The list of supported profiles. The caller allocates storage for the profile list before calling CheckFeatureSupport.
-} D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT
-{
- UINT NodeIndex; // input
- D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input
- UINT FormatCount; // output
-} D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS
-{
- UINT NodeIndex; // input
- D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input
- UINT FormatCount; // input
- [annotation("_Field_size_full_(FormatCount)")] DXGI_FORMAT *pOutputFormats; // output. The list of supported video formats. The caller allocates storage for the format list before calling CheckFeatureSupport.
-} D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE
-{
- BOOL IOCoherent;
-} D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE;
-
-typedef enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT
-{
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0,
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1,
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2,
-
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0,
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1,
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2,
-
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 3,
-} D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT;
-
-typedef enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS
-{
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0x0,
-
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y),
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U),
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V),
-
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R),
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G),
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B),
-
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A),
-} D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS );")
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM
-{
- UINT NodeIndex; // in
- GUID DecodeProfile; // in
- UINT Width; // in
- UINT Height; // in
- DXGI_FORMAT DecodeFormat; // in
- D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components; // out
- UINT BinCount; // out
- UINT CounterBitDepth; // out
-} D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM;
-
-typedef enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS
-{
- D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0x0,
- D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x1,
-
-} D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS );")
-
-typedef enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS
-{
- D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0x0,
- D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1,
- D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x2,
-
-} D3D12_VIDEO_SCALE_SUPPORT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS );")
-
-typedef struct D3D12_VIDEO_SCALE_SUPPORT
-{
- D3D12_VIDEO_SIZE_RANGE OutputSizeRange;
- D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags;
-} D3D12_VIDEO_SCALE_SUPPORT;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT
-{
- UINT NodeIndex; // input
- D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input
- D3D12_VIDEO_SAMPLE DecodeSample; // input
- D3D12_VIDEO_FORMAT OutputFormat; // input
- DXGI_RATIONAL FrameRate; // input
- UINT BitRate; // input
- D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags; // output
- D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; // output
-} D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE
-{
- D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; // input
- UINT64 MemoryPoolL0Size; // output
- UINT64 MemoryPoolL1Size; // output
-} D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE
-{
- UINT NodeMask;
- const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc; // input
- UINT NumInputStreamDescs; // input
- const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; // input
- UINT64 MemoryPoolL0Size; // output
- UINT64 MemoryPoolL1Size; // output
-} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE;
-
-typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS
-{
- UINT64 Status; // see D3D12_VIDEO_DECODE_STATUS
- UINT64 NumMacroblocksAffected;
- DXGI_RATIONAL FrameRate;
- UINT BitRate;
-} D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS;
-
-typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT
-{
- D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type;
- UINT Size;
- [annotation("_Field_size_bytes_full_(Size)")] void *pData;
-} D3D12_VIDEO_DECODE_FRAME_ARGUMENT;
-
-typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES
-{
- UINT NumTexture2Ds;
- [annotation("_Field_size_full_(NumTexture2Ds)")] ID3D12Resource** ppTexture2Ds;
- [annotation("_Field_size_full_(NumTexture2Ds)")] UINT* pSubresources;
- [annotation("_Field_size_full_opt_(NumTexture2Ds)")] ID3D12VideoDecoderHeap** ppHeaps; // If null, assume single decoder heap from input args.
-} D3D12_VIDEO_DECODE_REFERENCE_FRAMES;
-
-typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM
-{
- ID3D12Resource* pBuffer;
- UINT64 Offset;
- UINT64 Size;
-} D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM;
-
-typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS
-{
- BOOL Enable;
- ID3D12Resource* pReferenceTexture2D;
- UINT ReferenceSubresource;
- DXGI_COLOR_SPACE_TYPE OutputColorSpace;
- DXGI_COLOR_SPACE_TYPE DecodeColorSpace;
-} D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS;
-
-typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS
-{
- UINT NumFrameArguments;
- D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[D3D12_VIDEO_DECODE_MAX_ARGUMENTS];
- D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames;
- D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream;
- ID3D12VideoDecoderHeap *pHeap;
-} D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS;
-
-typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS
-{
- ID3D12Resource* pOutputTexture2D;
- UINT OutputSubresource;
- D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments;
-} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS;
-
-[uuid(304FDB32-BEDE-410A-8545-943AC6A46138), object, local, pointer_default(unique)]
-interface ID3D12VideoProcessor
- : ID3D12Pageable
-{
- UINT GetNodeMask();
- UINT GetNumInputStreamDescs();
- HRESULT GetInputStreamDescs(UINT NumInputStreamDescs, [annotation("_Out_writes_(NumInputStreamDescs)")] D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs);
- D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC GetOutputStreamDesc();
-}
-
-typedef enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS
-{
- D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0x0,
- D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1,
- D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2,
- D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4,
- D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8,
- D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10,
- D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20,
- D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x40,
-
-} D3D12_VIDEO_PROCESS_FEATURE_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS );")
-
-typedef enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS
-{
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0x0,
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x01,
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x02,
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x04,
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x08,
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10,
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20,
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40,
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80,
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x80000000,
-
-} D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS );")
-
-typedef enum D3D12_VIDEO_PROCESS_ORIENTATION
-{
- D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0,
- D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1,
- D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2,
- D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3,
- D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4,
- D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5,
- D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6,
- D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 7,
-} D3D12_VIDEO_PROCESS_ORIENTATION;
-
-typedef enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS
-{
- D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0x0,
- D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1,
- D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x2,
-
-} D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS );")
-
-typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE
-{
- INT Minimum;
- INT Maximum;
- INT Default;
- FLOAT Multiplier;
-} D3D12_VIDEO_PROCESS_FILTER_RANGE;
-
-typedef enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS
-{
- D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0x0,
- D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x1,
-
-} D3D12_VIDEO_PROCESS_SUPPORT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS );")
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT
-{
- UINT NodeIndex; // input
- D3D12_VIDEO_SAMPLE InputSample; // input
- D3D12_VIDEO_FIELD_TYPE InputFieldType; // input
- D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat; // input
- DXGI_RATIONAL InputFrameRate; // input
- D3D12_VIDEO_FORMAT OutputFormat; // input
- D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat; // input
- DXGI_RATIONAL OutputFrameRate; // input
- D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags; // output
- D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; // output
- D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; // output
- D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport; // output
- D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport; // output
- D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport; // output
- D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[D3D12_VIDEO_PROCESS_MAX_FILTERS]; // output
-} D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS
-{
- UINT NodeIndex; // input
- UINT MaxInputStreams; // output
-} D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO
-{
- UINT NodeIndex; // input
- D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; // input
- D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters; // input
- D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; // input
- DXGI_RATIONAL InputFrameRate; // input
- DXGI_RATIONAL OutputFrameRate; // input
- BOOL EnableAutoProcessing; // input
- UINT PastFrames; // output
- UINT FutureFrames; // output
-} D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO;
-
-typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET
-{
- UINT NumPastFrames;
- ID3D12Resource **ppPastFrames;
- UINT *pPastSubresources;
- UINT NumFutureFrames;
- ID3D12Resource **ppFutureFrames;
- UINT *pFutureSubresources;
-} D3D12_VIDEO_PROCESS_REFERENCE_SET;
-
-typedef struct D3D12_VIDEO_PROCESS_TRANSFORM
-{
- D3D12_RECT SourceRectangle;
- D3D12_RECT DestinationRectangle;
- D3D12_VIDEO_PROCESS_ORIENTATION Orientation;
-} D3D12_VIDEO_PROCESS_TRANSFORM;
-
-typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE
-{
- UINT OutputIndex;
- UINT InputFrameOrField;
-} D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE;
-
-typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM
-{
- ID3D12Resource *pTexture2D;
- UINT Subresource;
- D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet;
-} D3D12_VIDEO_PROCESS_INPUT_STREAM;
-
-typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS
-{
- D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS];
- D3D12_VIDEO_PROCESS_TRANSFORM Transform;
- D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags;
- D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo;
- INT FilterLevels[D3D12_VIDEO_PROCESS_MAX_FILTERS];
- D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending;
-} D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS;
-
-typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM
-{
- ID3D12Resource* pTexture2D;
- UINT Subresource;
-} D3D12_VIDEO_PROCESS_OUTPUT_STREAM;
-
-typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS
-{
- D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS];
- D3D12_RECT TargetRectangle;
-} D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS;
-
-[uuid(3B60536E-AD29-4E64-A269-F853837E5E53), object, local, pointer_default(unique)]
-interface ID3D12VideoDecodeCommandList
- : ID3D12CommandList
-{
- HRESULT Close();
-
- HRESULT Reset(
- [annotation("_In_")] ID3D12CommandAllocator* pAllocator
- );
-
- void ClearState();
-
- void ResourceBarrier(
- [annotation("_In_")] UINT NumBarriers,
- [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers
- );
-
- void DiscardResource(
- [annotation("_In_")] ID3D12Resource* pResource,
- [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion
- );
-
- void BeginQuery(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT Index
- );
-
- void EndQuery(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT Index
- );
-
- void ResolveQueryData(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT StartIndex,
- [annotation("_In_")] UINT NumQueries,
- [annotation("_In_")] ID3D12Resource* pDestinationBuffer,
- [annotation("_In_")] UINT64 AlignedDestinationBufferOffset
- );
-
- void SetPredication(
- [annotation("_In_opt_")] ID3D12Resource* pBuffer,
- [annotation("_In_")] UINT64 AlignedBufferOffset,
- [annotation("_In_")] D3D12_PREDICATION_OP Operation
- );
-
- void SetMarker(
- UINT Metadata,
- [annotation("_In_reads_bytes_opt_(Size)")] const void* pData,
- UINT Size);
-
- void BeginEvent(
- UINT Metadata,
- [annotation("_In_reads_bytes_opt_(Size)")] const void* pData,
- UINT Size);
-
- void EndEvent();
-
- void DecodeFrame(
- [annotation("_In_")] ID3D12VideoDecoder* pDecoder,
- [annotation("_In_")] const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
- [annotation("_In_")] const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments
- );
-
- void WriteBufferImmediate(
- UINT Count,
- [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
- [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes
- );
-}
-
-[uuid(AEB2543A-167F-4682-ACC8-D159ED4A6209), object, local, pointer_default(unique)]
-interface ID3D12VideoProcessCommandList
- : ID3D12CommandList
-{
- HRESULT Close();
-
- HRESULT Reset(
- [annotation("_In_")] ID3D12CommandAllocator* pAllocator
- );
-
- void ClearState();
-
- void ResourceBarrier(
- [annotation("_In_")] UINT NumBarriers,
- [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers
- );
-
- void DiscardResource(
- [annotation("_In_")] ID3D12Resource* pResource,
- [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion
- );
-
- void BeginQuery(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT Index
- );
-
- void EndQuery(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT Index
- );
-
- void ResolveQueryData(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT StartIndex,
- [annotation("_In_")] UINT NumQueries,
- [annotation("_In_")] ID3D12Resource* pDestinationBuffer,
- [annotation("_In_")] UINT64 AlignedDestinationBufferOffset
- );
-
- void SetPredication(
- [annotation("_In_opt_")] ID3D12Resource* pBuffer,
- [annotation("_In_")] UINT64 AlignedBufferOffset,
- [annotation("_In_")] D3D12_PREDICATION_OP Operation
- );
-
- void SetMarker(
- UINT Metadata,
- [annotation("_In_reads_bytes_opt_(Size)")] const void* pData,
- UINT Size);
-
- void BeginEvent(
- UINT Metadata,
- [annotation("_In_reads_bytes_opt_(Size)")] const void* pData,
- UINT Size);
-
- void EndEvent();
-
- void ProcessFrames(
- [annotation("_In_")] ID3D12VideoProcessor* pVideoProcessor,
- [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
- UINT NumInputStreams,
- [annotation("_In_reads_(NumInputStreams)")] const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments
- );
-
- void WriteBufferImmediate(
- UINT Count,
- [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
- [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes
- );
-}
-
-typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM
-{
- UINT64 Offset;
- ID3D12Resource* pBuffer;
-} D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM;
-
-typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1
-{
- BOOL Enable;
- ID3D12Resource* pReferenceTexture2D;
- UINT ReferenceSubresource;
- DXGI_COLOR_SPACE_TYPE OutputColorSpace;
- DXGI_COLOR_SPACE_TYPE DecodeColorSpace;
- UINT OutputWidth;
- UINT OutputHeight;
-} D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1;
-
-typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1
-{
- ID3D12Resource* pOutputTexture2D;
- UINT OutputSubresource;
- D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments;
- D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS];
-} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1;
-
-[uuid(D52F011B-B56E-453C-A05A-A7F311C8F472), object, local, pointer_default(unique)]
-interface ID3D12VideoDecodeCommandList1
- : ID3D12VideoDecodeCommandList
-{
- void DecodeFrame1(
- [annotation("_In_")] ID3D12VideoDecoder* pDecoder,
- [annotation("_In_")] const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,
- [annotation("_In_")] const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments
- );
-}
-
-typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1
-{
- D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS];
- D3D12_VIDEO_PROCESS_TRANSFORM Transform;
- D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags;
- D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo;
- INT FilterLevels[D3D12_VIDEO_PROCESS_MAX_FILTERS];
- D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending;
- D3D12_VIDEO_FIELD_TYPE FieldType;
-} D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1;
-
-[uuid(542C5C4D-7596-434F-8C93-4EFA6766F267), object, local, pointer_default(unique)]
-interface ID3D12VideoProcessCommandList1 : ID3D12VideoProcessCommandList
-{
- void ProcessFrames1(
- [annotation("_In_")] ID3D12VideoProcessor* pVideoProcessor,
- [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
- UINT NumInputStreams,
- [annotation("_In_reads_(NumInputStreams)")] const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments
- );
-}
-
-typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE
-{
- D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = 0,
- D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = 1,
-} D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE;
-
-typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS
-{
- D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = 0,
- D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8),
- D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16),
-
-} D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS );" )
-
-typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION
-{
- D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = 0,
-} D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION;
-
-typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS
-{
- D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0,
- D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL),
-
-} D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS;
-cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS );" )
-
-// D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT
-typedef struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT
-{
- UINT NodeIndex; // input
- BOOL VideoDecodeSupport; // output
- BOOL VideoProcessSupport; // output
- BOOL VideoEncodeSupport; // output
-} D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT;
-
-// D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR
-typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR
-{
- UINT NodeIndex; // input
- DXGI_FORMAT InputFormat; // input
- D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags; // output
- D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags; // output
- D3D12_VIDEO_SIZE_RANGE SizeRange; // output
-} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR;
-
-// D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE
-typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE
-{
- UINT NodeIndex; // input
- DXGI_FORMAT InputFormat; // input
- D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; // input
- D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; // input
- D3D12_VIDEO_SIZE_RANGE SizeRange; // input
- BOOL Protected; // input
- UINT64 MotionVectorHeapMemoryPoolL0Size; // output
- UINT64 MotionVectorHeapMemoryPoolL1Size; // output
- UINT64 MotionEstimatorMemoryPoolL0Size; // output
- UINT64 MotionEstimatorMemoryPoolL1Size; // output
-} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE;
-
-typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC
-{
- UINT NodeMask;
- DXGI_FORMAT InputFormat;
- D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;
- D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;
- D3D12_VIDEO_SIZE_RANGE SizeRange;
-
-} D3D12_VIDEO_MOTION_ESTIMATOR_DESC;
-
-[uuid(33FDAE0E-098B-428F-87BB-34B695DE08F8), object, local, pointer_default(unique)]
-interface ID3D12VideoMotionEstimator
- : ID3D12Pageable
-{
- D3D12_VIDEO_MOTION_ESTIMATOR_DESC GetDesc();
-
- HRESULT GetProtectedResourceSession(
- [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession);
-}
-
-typedef struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC
-{
- UINT NodeMask;
- DXGI_FORMAT InputFormat;
- D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;
- D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;
- D3D12_VIDEO_SIZE_RANGE SizeRange;
-
-} D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC;
-
-[uuid(5BE17987-743A-4061-834B-23D22DAEA505), object, local, pointer_default(unique)]
-interface ID3D12VideoMotionVectorHeap
- : ID3D12Pageable
-{
- D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC GetDesc();
-
- HRESULT GetProtectedResourceSession(
- [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession);
-}
-
-[uuid(981611AD-A144-4C83-9890-F30E26D658AB), object, local, pointer_default(unique)]
-interface ID3D12VideoDevice1
- : ID3D12VideoDevice
-{
- HRESULT CreateVideoMotionEstimator(
- [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_DESC* pDesc,
- [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession,
- [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoMotionEstimator,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoMotionEstimator
- );
-
- HRESULT CreateVideoMotionVectorHeap(
- [annotation("_In_")] const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC* pDesc,
- [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession,
- [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoMotionVectorHeap,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoMotionVectorHeap
- );
-}
-
-typedef struct D3D12_RESOURCE_COORDINATE
-{
- // Coordinate values below index pixels.
- UINT64 X; // Used for buffer, 1D, 2D, 3D
- UINT Y; // Used for 2D, 3D
- UINT Z; // Used for 3D
- UINT SubresourceIndex; // indexes into mips, arrays, and planes. Used for 1D, 2D, 3D
-} D3D12_RESOURCE_COORDINATE;
-
-typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT
-{
- ID3D12VideoMotionVectorHeap* pMotionVectorHeap;
-} D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT;
-
-typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT
-{
- ID3D12Resource* pInputTexture2D;
- UINT InputSubresourceIndex;
- ID3D12Resource* pReferenceTexture2D;
- UINT ReferenceSubresourceIndex;
- ID3D12VideoMotionVectorHeap* pHintMotionVectorHeap;
-} D3D12_VIDEO_MOTION_ESTIMATOR_INPUT;
-
-typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT
-{
- ID3D12Resource* pMotionVectorTexture2D;
- D3D12_RESOURCE_COORDINATE MotionVectorCoordinate;
-} D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT;
-
-typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT
-{
- ID3D12VideoMotionVectorHeap* pMotionVectorHeap;
- UINT PixelWidth;
- UINT PixelHeight;
-} D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT;
-
-[uuid(8455293A-0CBD-4831-9B39-FBDBAB724723), object, local, pointer_default(unique)]
-interface ID3D12VideoEncodeCommandList
- : ID3D12CommandList
-{
- HRESULT Close();
-
- HRESULT Reset(
- [annotation("_In_")] ID3D12CommandAllocator* pAllocator
- );
-
- void ClearState();
-
- void ResourceBarrier(
- [annotation("_In_")] UINT NumBarriers,
- [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers
- );
-
- void DiscardResource(
- [annotation("_In_")] ID3D12Resource* pResource,
- [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion
- );
-
- void BeginQuery(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT Index
- );
-
- void EndQuery(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT Index
- );
-
- void ResolveQueryData(
- [annotation("_In_")] ID3D12QueryHeap* pQueryHeap,
- [annotation("_In_")] D3D12_QUERY_TYPE Type,
- [annotation("_In_")] UINT StartIndex,
- [annotation("_In_")] UINT NumQueries,
- [annotation("_In_")] ID3D12Resource* pDestinationBuffer,
- [annotation("_In_")] UINT64 AlignedDestinationBufferOffset
- );
-
- void SetPredication(
- [annotation("_In_opt_")] ID3D12Resource* pBuffer,
- [annotation("_In_")] UINT64 AlignedBufferOffset,
- [annotation("_In_")] D3D12_PREDICATION_OP Operation
- );
-
- void SetMarker(
- UINT Metadata,
- [annotation("_In_reads_bytes_opt_(Size)")] const void* pData,
- UINT Size);
-
- void BeginEvent(
- UINT Metadata,
- [annotation("_In_reads_bytes_opt_(Size)")] const void* pData,
- UINT Size);
-
- void EndEvent();
-
- void EstimateMotion(
- [annotation("_In_")] ID3D12VideoMotionEstimator* pMotionEstimator,
- [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT* pOutputArguments,
- [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT* pInputArguments
- );
-
- void ResolveMotionVectorHeap(
- const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT* pOutputArguments,
- const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT* pInputArguments
- );
-
- void WriteBufferImmediate(
- UINT Count,
- [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
- [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes
- );
-
- void SetProtectedResourceSession(
- [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession
- );
-}
-
-typedef enum D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS
-{
- D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = 0x0,
- D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = 0x1,
-
-} D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS );")
-
-// D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES
-typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES
-{
- UINT NodeIndex; // input
- D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input
- D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output
-} D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES;
-
-// D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES
-typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES
-{
- UINT NodeIndex; // input
- D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output
-} D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES;
-
-// D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES
-typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES
-{
- UINT NodeIndex; // input
- D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output
-} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES;
-
-//D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1
-typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1
-{
- D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; // input
- BOOL Protected; // input
- UINT64 MemoryPoolL0Size; // output
- UINT64 MemoryPoolL1Size; // output
-} D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1;
-
-// D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1
-typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1
-{
- UINT NodeMask;
- const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc; // input
- UINT NumInputStreamDescs; // input
- const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; // input
- BOOL Protected; // input
- UINT64 MemoryPoolL0Size; // output
- UINT64 MemoryPoolL1Size; // output
-} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1;
-
-typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE
-{
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = 0,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = 2,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = 3,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = 4,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = 5,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = 6,
-} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE;
-
-typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE
-{
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = 0,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = 1,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = 2,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = 3,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = 4,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = 5,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = 6,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = 7,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = 8,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = 9,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = 10,
-} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE;
-
-typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS
-{
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = 0x00000000,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = 0x00000001,
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = 0x00000002
-} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS;
-
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS );")
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT
-{
- UINT NodeIndex; // in
- UINT CommandCount; // out
-} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT;
-
-typedef struct D3D12_VIDEO_EXTENSION_COMMAND_INFO
-{
- GUID CommandId;
- LPCWSTR Name;
- D3D12_COMMAND_LIST_SUPPORT_FLAGS CommandListSupportFlags;
-} D3D12_VIDEO_EXTENSION_COMMAND_INFO;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS
-{
- UINT NodeIndex;
- UINT CommandCount;
- [annotation("_Field_size_full_(CommandCount)")] D3D12_VIDEO_EXTENSION_COMMAND_INFO* pCommandInfos;
-} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT
-{
- GUID CommandId; // in
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; // in
- UINT ParameterCount; // out
- UINT ParameterPacking; // out
-} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT;
-
-typedef struct D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO
-{
- LPCWSTR Name;
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE Type;
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS Flags;
-} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS
-{
- GUID CommandId; // in
- D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; // in
- UINT ParameterCount; // in
- [annotation("_Field_size_full_(ParameterCount)")] D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO* pParameterInfos; // out
-} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT
-{
- UINT NodeIndex;
- GUID CommandId;
- [annotation("_Field_size_bytes_full_opt_(InputDataSizeInBytes)")] const void *pInputData;
- SIZE_T InputDataSizeInBytes;
- [annotation("_Field_size_bytes_full_opt_(OutputDataSizeInBytes)")] void *pOutputData;
- SIZE_T OutputDataSizeInBytes;
-} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT;
-
-typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE
-{
- UINT NodeIndex;
- GUID CommandId;
- [annotation("_Field_size_bytes_full_(CreationParametersDataSizeInBytes)")] const void* pCreationParameters;
- SIZE_T CreationParametersSizeInBytes;
- UINT64 MemoryPoolL0Size; // output
- UINT64 MemoryPoolL1Size; // output
-} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE;
-
-typedef struct D3D12_VIDEO_EXTENSION_COMMAND_DESC
-{
- UINT NodeMask;
- GUID CommandId;
-} D3D12_VIDEO_EXTENSION_COMMAND_DESC;
-
-[uuid(79A2E5FB-CCD2-469A-9FDE-195D10951F7E), object, local, pointer_default(unique)]
-interface ID3D12VideoDecoder1
- : ID3D12VideoDecoder
-{
- HRESULT GetProtectedResourceSession(
- [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession);
-}
-
-[uuid(DA1D98C5-539F-41B2-BF6B-1198A03B6D26), object, local, pointer_default(unique)]
-interface ID3D12VideoDecoderHeap1
- : ID3D12VideoDecoderHeap
-{
- HRESULT GetProtectedResourceSession(
- [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession);
-}
-
-[uuid(F3CFE615-553F-425C-86D8-EE8C1B1FB01C), object, local, pointer_default(unique)]
-interface ID3D12VideoProcessor1
- : ID3D12VideoProcessor
-{
- HRESULT GetProtectedResourceSession(
- [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession);
-}
-
-[uuid(554E41E8-AE8E-4A8C-B7D2-5B4F274A30E4), object, local, pointer_default(unique)]
-interface ID3D12VideoExtensionCommand
- : ID3D12Pageable
-{
- D3D12_VIDEO_EXTENSION_COMMAND_DESC GetDesc();
-
- HRESULT GetProtectedResourceSession(
- [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession
- [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession);
-}
-
-[uuid(F019AC49-F838-4A95-9B17-579437C8F513), object, local, pointer_default(unique)]
-interface ID3D12VideoDevice2
- : ID3D12VideoDevice1
-{
- HRESULT CreateVideoDecoder1(
- [annotation("_In_")] const D3D12_VIDEO_DECODER_DESC* pDesc,
- [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession,
- [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoder1,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoder
- );
-
- HRESULT CreateVideoDecoderHeap1(
- [annotation("_In_")] const D3D12_VIDEO_DECODER_HEAP_DESC* pVideoDecoderHeapDesc,
- [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession,
- [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoderHeap1,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoderHeap
- );
-
- HRESULT CreateVideoProcessor1(
- UINT NodeMask,
- [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc,
- UINT NumInputStreamDescs,
- [annotation("_In_reads_(NumInputStreamDescs)")]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
- [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession,
- [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoProcessor1,
- [out, iid_is(riid), annotation("_COM_Outptr_")] void **ppVideoProcessor
- );
-
- HRESULT CreateVideoExtensionCommand(
- [annotation("_In_")] const D3D12_VIDEO_EXTENSION_COMMAND_DESC* pDesc,
- [annotation("_In_reads_bytes_(CreationParametersDataSizeInBytes)")] const void* pCreationParameters,
- SIZE_T CreationParametersDataSizeInBytes,
- [annotation("_In_opt_")] ID3D12ProtectedResourceSession* pProtectedResourceSession,
- [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoExtensionCommand,
- [annotation("_COM_Outptr_")] void** ppVideoExtensionCommand);
-
- HRESULT ExecuteExtensionCommand(
- [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand,
- [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters,
- SIZE_T ExecutionParametersSizeInBytes,
- [annotation("_Out_writes_bytes_(OutputDataSizeInBytes)")] void *pOutputData,
- SIZE_T OutputDataSizeInBytes
- );
-}
-
-[uuid(6e120880-c114-4153-8036-d247051e1729), object, local, pointer_default(unique)]
-interface ID3D12VideoDecodeCommandList2
- : ID3D12VideoDecodeCommandList1
-{
- void SetProtectedResourceSession(
- [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession
- );
-
- void InitializeExtensionCommand(
- [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand,
- [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters,
- SIZE_T InitializationParametersSizeInBytes);
-
- void ExecuteExtensionCommand(
- [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand,
- [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters,
- SIZE_T ExecutionParametersSizeInBytes);
-}
-
-[uuid(db525ae4-6ad6-473c-baa7-59b2e37082e4), object, local, pointer_default(unique)]
-interface ID3D12VideoProcessCommandList2
- : ID3D12VideoProcessCommandList1
-{
-
- void SetProtectedResourceSession(
- [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession
- );
-
- void InitializeExtensionCommand(
- [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand,
- [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters,
- SIZE_T InitializationParametersSizeInBytes);
-
- void ExecuteExtensionCommand(
- [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand,
- [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters,
- SIZE_T ExecutionParametersSizeInBytes);
-}
-
-[uuid(94971eca-2bdb-4769-88cf-3675ea757ebc), object, local, pointer_default(unique)]
-interface ID3D12VideoEncodeCommandList1
- : ID3D12VideoEncodeCommandList
-{
- void InitializeExtensionCommand(
- [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand,
- [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters,
- SIZE_T InitializationParametersSizeInBytes);
-
- void ExecuteExtensionCommand(
- [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand,
- [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters,
- SIZE_T ExecutionParametersSizeInBytes);
-}
-
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9); ")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60); ")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);")
-cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);")
-
-cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */")
-#pragma endregion
-
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4);" )
-cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc);" )
diff --git a/WickedEngine/Utility/dx12/d3dcommon.h b/WickedEngine/Utility/dx12/d3dcommon.h
index 75c8cb32e..b41fbbf49 100644
--- a/WickedEngine/Utility/dx12/d3dcommon.h
+++ b/WickedEngine/Utility/dx12/d3dcommon.h
@@ -1,9 +1,15 @@
+/*-------------------------------------------------------------------------------------
+ *
+ * Copyright (c) Microsoft Corporation
+ * Licensed under the MIT license
+ *
+ *-------------------------------------------------------------------------------------*/
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.01.0624 */
+ /* File created by MIDL compiler version 8.01.0625 */
/* @@MIDL_FILE_HEADING( ) */
@@ -62,8 +68,8 @@ typedef interface ID3DDestructionNotifier ID3DDestructionNotifier;
/* header files for imported files */
-#include "oaidl.h"
-#include "ocidl.h"
+#include "OAIdl.h"
+#include "OCIdl.h"
#ifdef __cplusplus
extern "C"{
@@ -379,6 +385,7 @@ enum D3D_SRV_DIMENSION
#define D3D_SHADER_FEATURE_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x2000000
#define D3D_SHADER_FEATURE_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x4000000
#define D3D_SHADER_FEATURE_WAVE_MMA 0x8000000
+#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000
typedef struct _D3D_SHADER_MACRO
{
LPCSTR Name;
diff --git a/WickedEngine/Utility/dx12/d3dx12.h b/WickedEngine/Utility/dx12/d3dx12.h
index 3959e94c2..b13559895 100644
--- a/WickedEngine/Utility/dx12/d3dx12.h
+++ b/WickedEngine/Utility/dx12/d3dx12.h
@@ -1,11 +1,7 @@
//*********************************************************
//
-// Copyright (c) Microsoft. All rights reserved.
-// This code is licensed under the MIT License (MIT).
-// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
-// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
-// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
-// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License (MIT).
//
//*********************************************************
@@ -2000,6 +1996,29 @@ inline void MemcpySubresource(
}
}
+//------------------------------------------------------------------------------------------------
+// Row-by-row memcpy
+inline void MemcpySubresource(
+ _In_ const D3D12_MEMCPY_DEST* pDest,
+ _In_ const void* pResourceData,
+ _In_ const D3D12_SUBRESOURCE_INFO* pSrc,
+ SIZE_T RowSizeInBytes,
+ UINT NumRows,
+ UINT NumSlices) noexcept
+{
+ for (UINT z = 0; z < NumSlices; ++z)
+ {
+ auto pDestSlice = static_cast(pDest->pData) + pDest->SlicePitch * z;
+ auto pSrcSlice = (static_cast(pResourceData) + pSrc->Offset) + pSrc->DepthPitch * ULONG_PTR(z);
+ for (UINT y = 0; y < NumRows; ++y)
+ {
+ memcpy(pDestSlice + pDest->RowPitch * y,
+ pSrcSlice + pSrc->RowPitch * ULONG_PTR(y),
+ RowSizeInBytes);
+ }
+ }
+}
+
//------------------------------------------------------------------------------------------------
// Returns required size of a buffer to be used for data upload
inline UINT64 GetRequiredIntermediateSize(
@@ -2076,6 +2095,65 @@ inline UINT64 UpdateSubresources(
return RequiredSize;
}
+//------------------------------------------------------------------------------------------------
+// All arrays must be populated (e.g. by calling GetCopyableFootprints)
+inline UINT64 UpdateSubresources(
+ _In_ ID3D12GraphicsCommandList* pCmdList,
+ _In_ ID3D12Resource* pDestinationResource,
+ _In_ ID3D12Resource* pIntermediate,
+ _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
+ _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
+ UINT64 RequiredSize,
+ _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts,
+ _In_reads_(NumSubresources) const UINT* pNumRows,
+ _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes,
+ _In_ const void* pResourceData,
+ _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_INFO* pSrcData) noexcept
+{
+ // Minor validation
+ auto IntermediateDesc = pIntermediate->GetDesc();
+ auto DestinationDesc = pDestinationResource->GetDesc();
+ if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER ||
+ IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset ||
+ RequiredSize > SIZE_T(-1) ||
+ (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER &&
+ (FirstSubresource != 0 || NumSubresources != 1)))
+ {
+ return 0;
+ }
+
+ BYTE* pData;
+ HRESULT hr = pIntermediate->Map(0, nullptr, reinterpret_cast(&pData));
+ if (FAILED(hr))
+ {
+ return 0;
+ }
+
+ for (UINT i = 0; i < NumSubresources; ++i)
+ {
+ if (pRowSizesInBytes[i] > SIZE_T(-1)) return 0;
+ D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, SIZE_T(pLayouts[i].Footprint.RowPitch) * SIZE_T(pNumRows[i]) };
+ MemcpySubresource(&DestData, pResourceData, &pSrcData[i], static_cast(pRowSizesInBytes[i]), pNumRows[i], pLayouts[i].Footprint.Depth);
+ }
+ pIntermediate->Unmap(0, nullptr);
+
+ if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER)
+ {
+ pCmdList->CopyBufferRegion(
+ pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width);
+ }
+ else
+ {
+ for (UINT i = 0; i < NumSubresources; ++i)
+ {
+ CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource);
+ CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]);
+ pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr);
+ }
+ }
+ return RequiredSize;
+}
+
//------------------------------------------------------------------------------------------------
// Heap-allocating UpdateSubresources implementation
inline UINT64 UpdateSubresources(
@@ -2088,7 +2166,7 @@ inline UINT64 UpdateSubresources(
_In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) noexcept
{
UINT64 RequiredSize = 0;
- UINT64 MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources;
+ auto MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources;
if (MemToAlloc > SIZE_MAX)
{
return 0;
@@ -2099,8 +2177,8 @@ inline UINT64 UpdateSubresources(
return 0;
}
auto pLayouts = static_cast(pMem);
- UINT64* pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources);
- UINT* pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources);
+ auto pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources);
+ auto pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources);
auto Desc = pDestinationResource->GetDesc();
ID3D12Device* pDevice = nullptr;
@@ -2113,6 +2191,44 @@ inline UINT64 UpdateSubresources(
return Result;
}
+//------------------------------------------------------------------------------------------------
+// Heap-allocating UpdateSubresources implementation
+inline UINT64 UpdateSubresources(
+ _In_ ID3D12GraphicsCommandList* pCmdList,
+ _In_ ID3D12Resource* pDestinationResource,
+ _In_ ID3D12Resource* pIntermediate,
+ UINT64 IntermediateOffset,
+ _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
+ _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
+ _In_ const void* pResourceData,
+ _In_reads_(NumSubresources) D3D12_SUBRESOURCE_INFO* pSrcData) noexcept
+{
+ UINT64 RequiredSize = 0;
+ auto MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources;
+ if (MemToAlloc > SIZE_MAX)
+ {
+ return 0;
+ }
+ void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast(MemToAlloc));
+ if (pMem == nullptr)
+ {
+ return 0;
+ }
+ auto pLayouts = reinterpret_cast(pMem);
+ auto pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources);
+ auto pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources);
+
+ auto Desc = pDestinationResource->GetDesc();
+ ID3D12Device* pDevice = nullptr;
+ pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast(&pDevice));
+ pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize);
+ pDevice->Release();
+
+ UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pResourceData, pSrcData);
+ HeapFree(GetProcessHeap(), 0, pMem);
+ return Result;
+}
+
//------------------------------------------------------------------------------------------------
// Stack-allocating UpdateSubresources implementation
template
@@ -2121,8 +2237,8 @@ inline UINT64 UpdateSubresources(
_In_ ID3D12Resource* pDestinationResource,
_In_ ID3D12Resource* pIntermediate,
UINT64 IntermediateOffset,
- _In_range_(0, MaxSubresources) UINT FirstSubresource,
- _In_range_(1, MaxSubresources - FirstSubresource) UINT NumSubresources,
+ _In_range_(0,MaxSubresources) UINT FirstSubresource,
+ _In_range_(1,MaxSubresources-FirstSubresource) UINT NumSubresources,
_In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) noexcept
{
UINT64 RequiredSize = 0;
@@ -2139,6 +2255,33 @@ inline UINT64 UpdateSubresources(
return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData);
}
+//------------------------------------------------------------------------------------------------
+// Stack-allocating UpdateSubresources implementation
+template
+inline UINT64 UpdateSubresources(
+ _In_ ID3D12GraphicsCommandList* pCmdList,
+ _In_ ID3D12Resource* pDestinationResource,
+ _In_ ID3D12Resource* pIntermediate,
+ UINT64 IntermediateOffset,
+ _In_range_(0,MaxSubresources) UINT FirstSubresource,
+ _In_range_(1,MaxSubresources-FirstSubresource) UINT NumSubresources,
+ _In_ const void* pResourceData,
+ _In_reads_(NumSubresources) D3D12_SUBRESOURCE_INFO* pSrcData) noexcept
+{
+ UINT64 RequiredSize = 0;
+ D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources];
+ UINT NumRows[MaxSubresources];
+ UINT64 RowSizesInBytes[MaxSubresources];
+
+ auto Desc = pDestinationResource->GetDesc();
+ ID3D12Device* pDevice = nullptr;
+ pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast(&pDevice));
+ pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize);
+ pDevice->Release();
+
+ return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pResourceData, pSrcData);
+}
+
//------------------------------------------------------------------------------------------------
inline constexpr bool D3D12IsLayoutOpaque( D3D12_TEXTURE_LAYOUT Layout ) noexcept
{ return Layout == D3D12_TEXTURE_LAYOUT_UNKNOWN || Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE; }
@@ -2257,7 +2400,8 @@ inline HRESULT D3DX12SerializeVersionedRootSignature(
{
if (desc_1_1.pParameters[n].ParameterType == D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE)
{
- HeapFree(GetProcessHeap(), 0, reinterpret_cast(const_cast(pParameters_1_0[n].DescriptorTable.pDescriptorRanges)));
+ auto pDescriptorRanges_1_0 = pParameters_1_0[n].DescriptorTable.pDescriptorRanges;
+ HeapFree(GetProcessHeap(), 0, reinterpret_cast(const_cast(pDescriptorRanges_1_0)));
}
}
HeapFree(GetProcessHeap(), 0, pParameters);
diff --git a/WickedEngine/Utility/dx12/dxcore.h b/WickedEngine/Utility/dx12/dxcore.h
index c35623073..4244eaa60 100644
--- a/WickedEngine/Utility/dx12/dxcore.h
+++ b/WickedEngine/Utility/dx12/dxcore.h
@@ -1,6 +1,7 @@
/************************************************************
* *
-* Copyright (c) Microsoft Corporation. All rights reserved. *
+* Copyright (c) Microsoft Corporation. *
+* Licensed under the MIT license. *
* *
************************************************************/
diff --git a/WickedEngine/Utility/dx12/dxcore_interface.h b/WickedEngine/Utility/dx12/dxcore_interface.h
index dd1f5f573..b487fe13f 100644
--- a/WickedEngine/Utility/dx12/dxcore_interface.h
+++ b/WickedEngine/Utility/dx12/dxcore_interface.h
@@ -1,6 +1,7 @@
//
// DXCore Interface
-// Copyright (C) Microsoft Corporation. All rights reserved.
+// Copyright (C) Microsoft Corporation.
+// Licensed under the MIT license.
//
#ifndef __dxcore_interface_h__
diff --git a/WickedEngine/Utility/dx12/dxgicommon.h b/WickedEngine/Utility/dx12/dxgicommon.h
index bdeab3217..f83aa01e6 100644
--- a/WickedEngine/Utility/dx12/dxgicommon.h
+++ b/WickedEngine/Utility/dx12/dxgicommon.h
@@ -1,5 +1,6 @@
//
-// Copyright (C) Microsoft. All rights reserved.
+// Copyright (C) Microsoft Corporation.
+// Licensed under the MIT license
//
#ifndef __dxgicommon_h__
diff --git a/WickedEngine/Utility/dx12/dxgiformat.h b/WickedEngine/Utility/dx12/dxgiformat.h
index 7f5fd7cba..52aae1b2b 100644
--- a/WickedEngine/Utility/dx12/dxgiformat.h
+++ b/WickedEngine/Utility/dx12/dxgiformat.h
@@ -1,5 +1,6 @@
//
-// Copyright (C) Microsoft. All rights reserved.
+// Copyright (C) Microsoft Corporation.
+// Licensed under the MIT license
//
#ifndef __dxgiformat_h__
diff --git a/WickedEngine/Utility/dxcapi.h b/WickedEngine/Utility/dxcapi.h
index 21aafd3ec..a55920d4f 100644
--- a/WickedEngine/Utility/dxcapi.h
+++ b/WickedEngine/Utility/dxcapi.h
@@ -511,6 +511,17 @@ struct IDxcValidator : public IUnknown {
) = 0;
};
+CROSS_PLATFORM_UUIDOF(IDxcValidator2, "458e1fd1-b1b2-4750-a6e1-9c10f03bed92")
+struct IDxcValidator2 : public IDxcValidator {
+ // Validate a shader.
+ virtual HRESULT STDMETHODCALLTYPE ValidateWithDebug(
+ _In_ IDxcBlob *pShader, // Shader to validate.
+ _In_ UINT32 Flags, // Validation flags.
+ _In_opt_ DxcBuffer *pOptDebugBitcode, // Optional debug module bitcode to provide line numbers
+ _COM_Outptr_ IDxcOperationResult **ppResult // Validation output status, buffer, and errors
+ ) = 0;
+};
+
CROSS_PLATFORM_UUIDOF(IDxcContainerBuilder, "334b1f50-2292-4b35-99a1-25588d8c17fe")
struct IDxcContainerBuilder : public IUnknown {
virtual HRESULT STDMETHODCALLTYPE Load(_In_ IDxcBlob *pDxilContainerHeader) = 0; // Loads DxilContainer to the builder
diff --git a/WickedEngine/Utility/vulkan/vk_icd.h b/WickedEngine/Utility/vulkan/vk_icd.h
index 5e29ef557..ae006d06d 100644
--- a/WickedEngine/Utility/vulkan/vk_icd.h
+++ b/WickedEngine/Utility/vulkan/vk_icd.h
@@ -122,6 +122,7 @@ typedef enum {
VK_ICD_WSI_PLATFORM_DIRECTFB,
VK_ICD_WSI_PLATFORM_VI,
VK_ICD_WSI_PLATFORM_GGP,
+ VK_ICD_WSI_PLATFORM_SCREEN,
} VkIcdWsiPlatform;
typedef struct {
@@ -233,4 +234,12 @@ typedef struct {
} VkIcdSurfaceVi;
#endif // VK_USE_PLATFORM_VI_NN
+#ifdef VK_USE_PLATFORM_SCREEN_QNX
+typedef struct {
+ VkIcdSurfaceBase base;
+ struct _screen_context *context;
+ struct _screen_window *window;
+} VkIcdSurfaceScreen;
+#endif // VK_USE_PLATFORM_SCREEN_QNX
+
#endif // VKICD_H
diff --git a/WickedEngine/Utility/vulkan/vk_platform.h b/WickedEngine/Utility/vulkan/vk_platform.h
index 71858453f..18b913abc 100644
--- a/WickedEngine/Utility/vulkan/vk_platform.h
+++ b/WickedEngine/Utility/vulkan/vk_platform.h
@@ -2,7 +2,7 @@
// File: vk_platform.h
//
/*
-** Copyright (c) 2014-2020 The Khronos Group Inc.
+** Copyright 2014-2021 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
diff --git a/WickedEngine/Utility/vulkan/vulkan.h b/WickedEngine/Utility/vulkan/vulkan.h
index b7716ec8e..b187c9c17 100644
--- a/WickedEngine/Utility/vulkan/vulkan.h
+++ b/WickedEngine/Utility/vulkan/vulkan.h
@@ -2,7 +2,7 @@
#define VULKAN_H_ 1
/*
-** Copyright (c) 2015-2020 The Khronos Group Inc.
+** Copyright 2015-2021 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
@@ -80,6 +80,12 @@
#endif
+#ifdef VK_USE_PLATFORM_SCREEN_QNX
+#include
+#include "vulkan_screen.h"
+#endif
+
+
#ifdef VK_ENABLE_BETA_EXTENSIONS
#include "vulkan_beta.h"
#endif
diff --git a/WickedEngine/Utility/vulkan/vulkan.hpp b/WickedEngine/Utility/vulkan/vulkan.hpp
index 3ba68984e..64aa2265a 100644
--- a/WickedEngine/Utility/vulkan/vulkan.hpp
+++ b/WickedEngine/Utility/vulkan/vulkan.hpp
@@ -1,7 +1,7 @@
-// Copyright (c) 2015-2020 The Khronos Group Inc.
-//
+// Copyright 2015-2021 The Khronos Group Inc.
+//
// SPDX-License-Identifier: Apache-2.0 OR MIT
-//
+//
// This header is generated from the Khronos Vulkan XML API Registry.
@@ -41,33 +41,33 @@
#include
#if 17 <= VULKAN_HPP_CPP_VERSION
-#include
+# include
#endif
-#if defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
-# if !defined(VULKAN_HPP_NO_SMART_HANDLE)
-# define VULKAN_HPP_NO_SMART_HANDLE
-# endif
+#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+# if !defined( VULKAN_HPP_NO_SMART_HANDLE )
+# define VULKAN_HPP_NO_SMART_HANDLE
+# endif
#else
-# include
-# include
+# include
+# include
#endif
-#if !defined(VULKAN_HPP_ASSERT)
-# include
-# define VULKAN_HPP_ASSERT assert
+#if !defined( VULKAN_HPP_ASSERT )
+# include
+# define VULKAN_HPP_ASSERT assert
#endif
-#if !defined(VULKAN_HPP_ASSERT_ON_RESULT)
-# define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
+#if !defined( VULKAN_HPP_ASSERT_ON_RESULT )
+# define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
#endif
-#if !defined(VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL)
-# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
+#if !defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL )
+# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
#endif
#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
-# if defined( __linux__ ) || defined( __APPLE__ )
+# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
# include
# elif defined( _WIN32 )
typedef struct HINSTANCE__ * HINSTANCE;
@@ -82,109 +82,108 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h
# endif
#endif
-#if !defined(__has_include)
-# define __has_include(x) false
+#if !defined( __has_include )
+# define __has_include( x ) false
#endif
#if ( 201711 <= __cpp_impl_three_way_comparison ) && __has_include( ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR )
-# define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
+# define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
#endif
-#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
-# include
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+# include
#endif
-
-static_assert( VK_HEADER_VERSION == 167 , "Wrong VK_HEADER_VERSION!" );
+static_assert( VK_HEADER_VERSION == 176, "Wrong VK_HEADER_VERSION!" );
// 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
-#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
-# if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
-# define VULKAN_HPP_TYPESAFE_CONVERSION
-# endif
+#if ( VK_USE_64_BIT_PTR_DEFINES == 1 )
+# if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
+# define VULKAN_HPP_TYPESAFE_CONVERSION
+# endif
#endif
// includes through some other header
// this results in major(x) being resolved to gnu_dev_major(x)
// which is an expression in a constructor initializer list.
-#if defined(major)
- #undef major
+#if defined( major )
+# undef major
#endif
-#if defined(minor)
- #undef minor
+#if defined( minor )
+# undef minor
#endif
// Windows defines MemoryBarrier which is deprecated and collides
// with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct.
-#if defined(MemoryBarrier)
- #undef MemoryBarrier
+#if defined( MemoryBarrier )
+# undef MemoryBarrier
#endif
-#if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS)
-# if defined(__clang__)
-# if __has_feature(cxx_unrestricted_unions)
-# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
+#if !defined( VULKAN_HPP_HAS_UNRESTRICTED_UNIONS )
+# if defined( __clang__ )
+# if __has_feature( cxx_unrestricted_unions )
+# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
+# endif
+# elif defined( __GNUC__ )
+# define GCC_VERSION ( __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ )
+# if 40600 <= GCC_VERSION
+# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
+# endif
+# elif defined( _MSC_VER )
+# if 1900 <= _MSC_VER
+# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
+# endif
# endif
-# elif defined(__GNUC__)
-# define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-# if 40600 <= GCC_VERSION
-# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
-# endif
-# elif defined(_MSC_VER)
-# if 1900 <= _MSC_VER
-# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
-# endif
-# endif
#endif
-#if !defined(VULKAN_HPP_INLINE)
-# if defined(__clang__)
-# if __has_attribute(always_inline)
-# define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
+#if !defined( VULKAN_HPP_INLINE )
+# if defined( __clang__ )
+# if __has_attribute( always_inline )
+# define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
+# else
+# define VULKAN_HPP_INLINE inline
+# endif
+# elif defined( __GNUC__ )
+# define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
+# elif defined( _MSC_VER )
+# define VULKAN_HPP_INLINE inline
# else
-# define VULKAN_HPP_INLINE inline
+# define VULKAN_HPP_INLINE inline
# endif
-# elif defined(__GNUC__)
-# define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
-# elif defined(_MSC_VER)
-# define VULKAN_HPP_INLINE inline
-# else
-# define VULKAN_HPP_INLINE inline
-# endif
#endif
-#if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
-# define VULKAN_HPP_TYPESAFE_EXPLICIT
+#if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
+# define VULKAN_HPP_TYPESAFE_EXPLICIT
#else
-# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
+# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
#endif
-#if defined(__cpp_constexpr)
-# define VULKAN_HPP_CONSTEXPR constexpr
-# if __cpp_constexpr >= 201304
-# define VULKAN_HPP_CONSTEXPR_14 constexpr
-# else
+#if defined( __cpp_constexpr )
+# define VULKAN_HPP_CONSTEXPR constexpr
+# if __cpp_constexpr >= 201304
+# define VULKAN_HPP_CONSTEXPR_14 constexpr
+# else
+# define VULKAN_HPP_CONSTEXPR_14
+# endif
+# define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr
+#else
+# define VULKAN_HPP_CONSTEXPR
# define VULKAN_HPP_CONSTEXPR_14
-# endif
-# define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr
-#else
-# define VULKAN_HPP_CONSTEXPR
-# define VULKAN_HPP_CONSTEXPR_14
-# define VULKAN_HPP_CONST_OR_CONSTEXPR const
+# define VULKAN_HPP_CONST_OR_CONSTEXPR const
#endif
-#if !defined(VULKAN_HPP_NOEXCEPT)
-# if defined(_MSC_VER) && (_MSC_VER <= 1800)
-# define VULKAN_HPP_NOEXCEPT
-# else
-# define VULKAN_HPP_NOEXCEPT noexcept
-# define VULKAN_HPP_HAS_NOEXCEPT 1
-# if defined(VULKAN_HPP_NO_EXCEPTIONS)
-# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
+#if !defined( VULKAN_HPP_NOEXCEPT )
+# if defined( _MSC_VER ) && ( _MSC_VER <= 1800 )
+# define VULKAN_HPP_NOEXCEPT
# else
-# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
+# define VULKAN_HPP_NOEXCEPT noexcept
+# define VULKAN_HPP_HAS_NOEXCEPT 1
+# if defined( VULKAN_HPP_NO_EXCEPTIONS )
+# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
+# else
+# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
+# endif
# endif
-# endif
#endif
#if 14 <= VULKAN_HPP_CPP_VERSION
@@ -195,7 +194,7 @@ static_assert( VK_HEADER_VERSION == 167 , "Wrong VK_HEADER_VERSION!" );
#if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
# define VULKAN_HPP_NODISCARD [[nodiscard]]
-# if defined(VULKAN_HPP_NO_EXCEPTIONS)
+# if defined( VULKAN_HPP_NO_EXCEPTIONS )
# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]]
# else
# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
@@ -205,18 +204,17 @@ static_assert( VK_HEADER_VERSION == 167 , "Wrong VK_HEADER_VERSION!" );
# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
#endif
-#if !defined(VULKAN_HPP_NAMESPACE)
-#define VULKAN_HPP_NAMESPACE vk
+#if !defined( VULKAN_HPP_NAMESPACE )
+# define VULKAN_HPP_NAMESPACE vk
#endif
-#define VULKAN_HPP_STRINGIFY2(text) #text
-#define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text)
-#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE)
+#define VULKAN_HPP_STRINGIFY2( text ) #text
+#define VULKAN_HPP_STRINGIFY( text ) VULKAN_HPP_STRINGIFY2( text )
+#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE )
namespace VULKAN_HPP_NAMESPACE
{
-
-#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
+#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
template
class ArrayProxy
{
@@ -253,10 +251,10 @@ namespace VULKAN_HPP_NAMESPACE
, m_ptr( ptr )
{}
-#if __GNUC__ >= 9
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Winit-list-lifetime"
-#endif
+# if __GNUC__ >= 9
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Winit-list-lifetime"
+# endif
ArrayProxy( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT
: m_count( static_cast( list.size() ) )
@@ -280,9 +278,9 @@ namespace VULKAN_HPP_NAMESPACE
, m_ptr( list.begin() )
{}
-#if __GNUC__ >= 9
-#pragma GCC diagnostic pop
-#endif
+# if __GNUC__ >= 9
+# pragma GCC diagnostic pop
+# endif
template
ArrayProxy( std::array const & data ) VULKAN_HPP_NOEXCEPT
@@ -577,35 +575,32 @@ namespace VULKAN_HPP_NAMESPACE
#endif
template
- class ArrayWrapper1D : public std::array
+ class ArrayWrapper1D : public std::array
{
public:
- VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT
- : std::array()
+ VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT : std::array() {}
+
+ VULKAN_HPP_CONSTEXPR ArrayWrapper1D( std::array const & data ) VULKAN_HPP_NOEXCEPT : std::array( data )
{}
- VULKAN_HPP_CONSTEXPR ArrayWrapper1D(std::array const& data) VULKAN_HPP_NOEXCEPT
- : std::array(data)
- {}
-
-#if defined(_WIN32) && !defined(_WIN64)
- VULKAN_HPP_CONSTEXPR T const& operator[](int index) const VULKAN_HPP_NOEXCEPT
+#if defined( _WIN32 ) && !defined( _WIN64 )
+ VULKAN_HPP_CONSTEXPR T const & operator[]( int index ) const VULKAN_HPP_NOEXCEPT
{
- return std::array::operator[](index);
+ return std::array::operator[]( index );
}
- T & operator[](int index) VULKAN_HPP_NOEXCEPT
+ T & operator[]( int index ) VULKAN_HPP_NOEXCEPT
{
- return std::array::operator[](index);
+ return std::array::operator[]( index );
}
#endif
- operator T const* () const VULKAN_HPP_NOEXCEPT
+ operator T const *() const VULKAN_HPP_NOEXCEPT
{
return this->data();
}
- operator T * () VULKAN_HPP_NOEXCEPT
+ operator T *() VULKAN_HPP_NOEXCEPT
{
return this->data();
}
@@ -663,57 +658,59 @@ namespace VULKAN_HPP_NAMESPACE
// specialization of relational operators between std::string and arrays of chars
template
- bool operator<(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT
+ bool operator<( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT
{
return lhs < rhs.data();
}
template
- bool operator<=(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT
+ bool operator<=( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT
{
return lhs <= rhs.data();
}
template
- bool operator>(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT
+ bool operator>( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT
{
return lhs > rhs.data();
}
template
- bool operator>=(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT
+ bool operator>=( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT
{
return lhs >= rhs.data();
}
template
- bool operator==(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT
+ bool operator==( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT
{
return lhs == rhs.data();
}
template
- bool operator!=(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT
+ bool operator!=( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT
{
return lhs != rhs.data();
}
template
- class ArrayWrapper2D : public std::array,N>
+ class ArrayWrapper2D : public std::array, N>
{
public:
- VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT
- : std::array, N>()
- {}
+ VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT : std::array, N>() {}
- VULKAN_HPP_CONSTEXPR ArrayWrapper2D(std::array,N> const& data) VULKAN_HPP_NOEXCEPT
- : std::array, N>(*reinterpret_cast,N> const*>(&data))
+ VULKAN_HPP_CONSTEXPR ArrayWrapper2D( std::array, N> const & data ) VULKAN_HPP_NOEXCEPT
+ : std::array, N>( *reinterpret_cast, N> const *>( &data ) )
{}
};
- template struct FlagTraits
+ template
+ struct FlagTraits
{
- enum { allFlags = 0 };
+ enum
+ {
+ allFlags = 0
+ };
};
template
@@ -723,50 +720,44 @@ namespace VULKAN_HPP_NAMESPACE
using MaskType = typename std::underlying_type::type;
// constructors
- VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT
- : m_mask(0)
- {}
+ VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {}
- VULKAN_HPP_CONSTEXPR Flags(BitType bit) VULKAN_HPP_NOEXCEPT
- : m_mask(static_cast(bit))
- {}
+ VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast( bit ) ) {}
- VULKAN_HPP_CONSTEXPR Flags(Flags const& rhs) VULKAN_HPP_NOEXCEPT = default;
+ VULKAN_HPP_CONSTEXPR Flags( Flags const & rhs ) VULKAN_HPP_NOEXCEPT = default;
- VULKAN_HPP_CONSTEXPR explicit Flags(MaskType flags) VULKAN_HPP_NOEXCEPT
- : m_mask(flags)
- {}
+ VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {}
// relational operators
-#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
- auto operator<=>(Flags const&) const = default;
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( Flags const & ) const = default;
#else
- VULKAN_HPP_CONSTEXPR bool operator<(Flags const& rhs) const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator<( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return m_mask < rhs.m_mask;
}
- VULKAN_HPP_CONSTEXPR bool operator<=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator<=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return m_mask <= rhs.m_mask;
}
- VULKAN_HPP_CONSTEXPR bool operator>(Flags const& rhs) const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator>( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return m_mask > rhs.m_mask;
}
- VULKAN_HPP_CONSTEXPR bool operator>=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator>=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return m_mask >= rhs.m_mask;
}
- VULKAN_HPP_CONSTEXPR bool operator==(Flags const& rhs) const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator==( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return m_mask == rhs.m_mask;
}
- VULKAN_HPP_CONSTEXPR bool operator!=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator!=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return m_mask != rhs.m_mask;
}
@@ -779,42 +770,42 @@ namespace VULKAN_HPP_NAMESPACE
}
// bitwise operators
- VULKAN_HPP_CONSTEXPR Flags operator&(Flags const& rhs) const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR Flags operator&( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return Flags(m_mask & rhs.m_mask);
+ return Flags( m_mask & rhs.m_mask );
}
- VULKAN_HPP_CONSTEXPR Flags operator|(Flags const& rhs) const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR Flags operator|( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return Flags(m_mask | rhs.m_mask);
+ return Flags( m_mask | rhs.m_mask );
}
- VULKAN_HPP_CONSTEXPR Flags operator^(Flags const& rhs) const VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR Flags operator^( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return Flags(m_mask ^ rhs.m_mask);
+ return Flags( m_mask ^ rhs.m_mask );
}
VULKAN_HPP_CONSTEXPR Flags operator~() const VULKAN_HPP_NOEXCEPT
{
- return Flags(m_mask ^ FlagTraits::allFlags);
+ return Flags( m_mask ^ FlagTraits::allFlags );
}
// assignment operators
- VULKAN_HPP_CONSTEXPR_14 Flags & operator=(Flags const& rhs) VULKAN_HPP_NOEXCEPT = default;
+ VULKAN_HPP_CONSTEXPR_14 Flags & operator=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT = default;
- VULKAN_HPP_CONSTEXPR_14 Flags & operator|=(Flags const& rhs) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 Flags & operator|=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT
{
m_mask |= rhs.m_mask;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 Flags & operator&=(Flags const& rhs) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 Flags & operator&=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT
{
m_mask &= rhs.m_mask;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 Flags & operator^=(Flags const& rhs) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 Flags & operator^=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT
{
m_mask ^= rhs.m_mask;
return *this;
@@ -828,51 +819,51 @@ namespace VULKAN_HPP_NAMESPACE
explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
{
- return m_mask;
+ return m_mask;
}
-#if defined(VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC)
+#if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC )
public:
#else
private:
#endif
- MaskType m_mask;
+ MaskType m_mask;
};
-#if !defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR)
+#if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
// relational operators only needed for pre C++20
template
- VULKAN_HPP_CONSTEXPR bool operator<(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT
{
return flags.operator>( bit );
}
template
- VULKAN_HPP_CONSTEXPR bool operator<=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT
{
return flags.operator>=( bit );
}
template
- VULKAN_HPP_CONSTEXPR bool operator>(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT
{
return flags.operator<( bit );
}
template
- VULKAN_HPP_CONSTEXPR bool operator>=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT
{
- return flags.operator<=(bit);
+ return flags.operator<=( bit );
}
template
- VULKAN_HPP_CONSTEXPR bool operator==(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT
{
return flags.operator==( bit );
}
template
- VULKAN_HPP_CONSTEXPR bool operator!=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT
{
return flags.operator!=( bit );
}
@@ -880,19 +871,19 @@ namespace VULKAN_HPP_NAMESPACE
// bitwise operators
template
- VULKAN_HPP_CONSTEXPR Flags operator&(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR Flags operator&(BitType bit, Flags const & flags)VULKAN_HPP_NOEXCEPT
{
return flags.operator&( bit );
}
template
- VULKAN_HPP_CONSTEXPR Flags operator|(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR Flags operator|( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT
{
return flags.operator|( bit );
}
template
- VULKAN_HPP_CONSTEXPR Flags operator^(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR Flags operator^( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT
{
return flags.operator^( bit );
}
@@ -901,27 +892,52 @@ namespace VULKAN_HPP_NAMESPACE
class Optional
{
public:
- Optional(RefType & reference) VULKAN_HPP_NOEXCEPT { m_ptr = &reference; }
- Optional(RefType * ptr) VULKAN_HPP_NOEXCEPT { m_ptr = ptr; }
- Optional(std::nullptr_t) VULKAN_HPP_NOEXCEPT { m_ptr = nullptr; }
+ Optional( RefType & reference ) VULKAN_HPP_NOEXCEPT
+ {
+ m_ptr = &reference;
+ }
+ Optional( RefType * ptr ) VULKAN_HPP_NOEXCEPT
+ {
+ m_ptr = ptr;
+ }
+ Optional( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
+ {
+ m_ptr = nullptr;
+ }
- operator RefType*() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
- RefType const* operator->() const VULKAN_HPP_NOEXCEPT { return m_ptr; }
- explicit operator bool() const VULKAN_HPP_NOEXCEPT { return !!m_ptr; }
+ operator RefType *() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_ptr;
+ }
+ RefType const * operator->() const VULKAN_HPP_NOEXCEPT
+ {
+ return m_ptr;
+ }
+ explicit operator bool() const VULKAN_HPP_NOEXCEPT
+ {
+ return !!m_ptr;
+ }
private:
- RefType *m_ptr;
+ RefType * m_ptr;
};
- template struct StructExtends { enum { value = false }; };
+ template
+ struct StructExtends
+ {
+ enum
+ {
+ value = false
+ };
+ };
- template
+ template
struct IsPartOfStructureChain
{
static const bool valid = false;
};
- template