mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-15 11:06:54 +00:00
Add D3D12 pipeline state (state and viewer duplicated from D3D11)
This commit is contained in:
@@ -0,0 +1,333 @@
|
||||
/******************************************************************************
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2016 Baldur Karlsson
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "shader_types.h"
|
||||
|
||||
struct D3D12PipelineState
|
||||
{
|
||||
D3D12PipelineState() {}
|
||||
struct InputAssembler
|
||||
{
|
||||
InputAssembler() : Bytecode(NULL), customName(false) {}
|
||||
struct LayoutInput
|
||||
{
|
||||
LayoutInput()
|
||||
: SemanticIndex(0), InputSlot(0), ByteOffset(0), PerInstance(false), InstanceDataStepRate(0)
|
||||
{
|
||||
}
|
||||
rdctype::str SemanticName;
|
||||
uint32_t SemanticIndex;
|
||||
ResourceFormat Format;
|
||||
uint32_t InputSlot;
|
||||
uint32_t ByteOffset;
|
||||
bool32 PerInstance;
|
||||
uint32_t InstanceDataStepRate;
|
||||
};
|
||||
rdctype::array<LayoutInput> layouts;
|
||||
ResourceId layout;
|
||||
ShaderReflection *Bytecode;
|
||||
bool32 customName;
|
||||
rdctype::str LayoutName;
|
||||
|
||||
struct VertexBuffer
|
||||
{
|
||||
VertexBuffer() : Buffer(), Stride(0), Offset(0) {}
|
||||
ResourceId Buffer;
|
||||
uint32_t Stride;
|
||||
uint32_t Offset;
|
||||
};
|
||||
rdctype::array<VertexBuffer> vbuffers;
|
||||
|
||||
struct IndexBuffer
|
||||
{
|
||||
IndexBuffer() : Buffer(), Offset(0) {}
|
||||
ResourceId Buffer;
|
||||
uint32_t Offset;
|
||||
} ibuffer;
|
||||
} m_IA;
|
||||
|
||||
struct ShaderStage
|
||||
{
|
||||
ShaderStage() : Shader(), customName(false), ShaderDetails(NULL), stage(eShaderStage_Vertex) {}
|
||||
ResourceId Shader;
|
||||
rdctype::str ShaderName;
|
||||
bool32 customName;
|
||||
ShaderReflection *ShaderDetails;
|
||||
ShaderBindpointMapping BindpointMapping;
|
||||
|
||||
ShaderStageType stage;
|
||||
|
||||
struct ResourceView
|
||||
{
|
||||
ResourceView()
|
||||
: View(),
|
||||
Resource(),
|
||||
Format(),
|
||||
Structured(false),
|
||||
BufferStructCount(0),
|
||||
ElementSize(0),
|
||||
ElementOffset(0),
|
||||
ElementWidth(0),
|
||||
FirstElement(0),
|
||||
NumElements(1),
|
||||
Flags(0),
|
||||
HighestMip(0),
|
||||
NumMipLevels(1),
|
||||
ArraySize(1),
|
||||
FirstArraySlice(0)
|
||||
{
|
||||
}
|
||||
|
||||
ResourceId View;
|
||||
ResourceId Resource;
|
||||
rdctype::str Type;
|
||||
ResourceFormat Format;
|
||||
|
||||
bool32 Structured;
|
||||
uint32_t BufferStructCount;
|
||||
uint32_t ElementSize;
|
||||
|
||||
// Buffer (SRV)
|
||||
uint32_t ElementOffset;
|
||||
uint32_t ElementWidth;
|
||||
|
||||
// Buffer (UAV)
|
||||
uint32_t FirstElement;
|
||||
uint32_t NumElements;
|
||||
|
||||
// BufferEx
|
||||
uint32_t Flags;
|
||||
|
||||
// Texture
|
||||
uint32_t HighestMip;
|
||||
uint32_t NumMipLevels;
|
||||
|
||||
// Texture Array
|
||||
uint32_t ArraySize;
|
||||
uint32_t FirstArraySlice;
|
||||
};
|
||||
rdctype::array<ResourceView> SRVs;
|
||||
rdctype::array<ResourceView> UAVs;
|
||||
|
||||
struct Sampler
|
||||
{
|
||||
Sampler()
|
||||
: Samp(),
|
||||
customSamplerName(false),
|
||||
UseBorder(false),
|
||||
UseComparison(false),
|
||||
MaxAniso(0),
|
||||
MaxLOD(0.0f),
|
||||
MinLOD(0.0f),
|
||||
MipLODBias(0.0f)
|
||||
{
|
||||
BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 0.0f;
|
||||
}
|
||||
ResourceId Samp;
|
||||
rdctype::str SamplerName;
|
||||
bool32 customSamplerName;
|
||||
rdctype::str AddressU, AddressV, AddressW;
|
||||
float BorderColor[4];
|
||||
rdctype::str Comparison;
|
||||
rdctype::str Filter;
|
||||
bool32 UseBorder;
|
||||
bool32 UseComparison;
|
||||
uint32_t MaxAniso;
|
||||
float MaxLOD;
|
||||
float MinLOD;
|
||||
float MipLODBias;
|
||||
};
|
||||
rdctype::array<Sampler> Samplers;
|
||||
|
||||
struct CBuffer
|
||||
{
|
||||
CBuffer() : Buffer(), VecOffset(0), VecCount(0) {}
|
||||
ResourceId Buffer;
|
||||
uint32_t VecOffset;
|
||||
uint32_t VecCount;
|
||||
};
|
||||
rdctype::array<CBuffer> ConstantBuffers;
|
||||
|
||||
rdctype::array<rdctype::str> ClassInstances;
|
||||
} m_VS, m_HS, m_DS, m_GS, m_PS, m_CS;
|
||||
|
||||
struct Streamout
|
||||
{
|
||||
struct Output
|
||||
{
|
||||
Output() : Buffer(), Offset(0) {}
|
||||
ResourceId Buffer;
|
||||
uint32_t Offset;
|
||||
};
|
||||
rdctype::array<Output> Outputs;
|
||||
} m_SO;
|
||||
|
||||
struct Rasterizer
|
||||
{
|
||||
struct Viewport
|
||||
{
|
||||
Viewport() : Width(0.0f), Height(0.0f), MinDepth(0.0f), MaxDepth(0.0f), Enabled(false)
|
||||
{
|
||||
TopLeft[0] = 0.0f;
|
||||
TopLeft[1] = 0.0f;
|
||||
}
|
||||
Viewport(float TX, float TY, float W, float H, float MN, float MX, bool en)
|
||||
: Width(W), Height(H), MinDepth(MN), MaxDepth(MX), Enabled(en)
|
||||
{
|
||||
TopLeft[0] = TX;
|
||||
TopLeft[1] = TY;
|
||||
}
|
||||
float TopLeft[2];
|
||||
float Width, Height;
|
||||
float MinDepth, MaxDepth;
|
||||
bool32 Enabled;
|
||||
};
|
||||
rdctype::array<Viewport> Viewports;
|
||||
|
||||
struct Scissor
|
||||
{
|
||||
Scissor() : left(0), top(0), right(0), bottom(0), Enabled(false) {}
|
||||
Scissor(int l, int t, int r, int b, bool en)
|
||||
: left(l), top(t), right(r), bottom(b), Enabled(en)
|
||||
{
|
||||
}
|
||||
int32_t left, top, right, bottom;
|
||||
bool32 Enabled;
|
||||
};
|
||||
rdctype::array<Scissor> Scissors;
|
||||
|
||||
struct RasterizerState
|
||||
{
|
||||
RasterizerState()
|
||||
: State(),
|
||||
FillMode(eFill_Solid),
|
||||
CullMode(eCull_None),
|
||||
FrontCCW(false),
|
||||
DepthBias(0),
|
||||
DepthBiasClamp(0.0f),
|
||||
SlopeScaledDepthBias(0.0f),
|
||||
DepthClip(false),
|
||||
ScissorEnable(false),
|
||||
MultisampleEnable(false),
|
||||
AntialiasedLineEnable(false),
|
||||
ForcedSampleCount(0),
|
||||
ConservativeRasterization(false)
|
||||
{
|
||||
}
|
||||
ResourceId State;
|
||||
TriangleFillMode FillMode;
|
||||
TriangleCullMode CullMode;
|
||||
bool32 FrontCCW;
|
||||
int32_t DepthBias;
|
||||
float DepthBiasClamp;
|
||||
float SlopeScaledDepthBias;
|
||||
bool32 DepthClip;
|
||||
bool32 ScissorEnable;
|
||||
bool32 MultisampleEnable;
|
||||
bool32 AntialiasedLineEnable;
|
||||
uint32_t ForcedSampleCount;
|
||||
bool32 ConservativeRasterization;
|
||||
} m_State;
|
||||
} m_RS;
|
||||
|
||||
struct OutputMerger
|
||||
{
|
||||
OutputMerger() : UAVStartSlot(0), DepthReadOnly(false), StencilReadOnly(false) {}
|
||||
struct DepthStencilState
|
||||
{
|
||||
DepthStencilState()
|
||||
: State(),
|
||||
DepthEnable(false),
|
||||
DepthWrites(false),
|
||||
StencilEnable(false),
|
||||
StencilReadMask(0),
|
||||
StencilWriteMask(0),
|
||||
StencilRef(0)
|
||||
{
|
||||
}
|
||||
ResourceId State;
|
||||
bool32 DepthEnable;
|
||||
rdctype::str DepthFunc;
|
||||
bool32 DepthWrites;
|
||||
bool32 StencilEnable;
|
||||
byte StencilReadMask;
|
||||
byte StencilWriteMask;
|
||||
|
||||
struct StencilOp
|
||||
{
|
||||
rdctype::str FailOp;
|
||||
rdctype::str DepthFailOp;
|
||||
rdctype::str PassOp;
|
||||
rdctype::str Func;
|
||||
} m_FrontFace, m_BackFace;
|
||||
|
||||
uint32_t StencilRef;
|
||||
} m_State;
|
||||
|
||||
struct BlendState
|
||||
{
|
||||
BlendState() : AlphaToCoverage(false), IndependentBlend(false), SampleMask(0)
|
||||
{
|
||||
BlendFactor[0] = BlendFactor[1] = BlendFactor[2] = BlendFactor[3] = 0.0f;
|
||||
}
|
||||
|
||||
ResourceId State;
|
||||
|
||||
bool32 AlphaToCoverage;
|
||||
bool32 IndependentBlend;
|
||||
|
||||
struct RTBlend
|
||||
{
|
||||
RTBlend() : Enabled(false), LogicEnabled(false), WriteMask(0) {}
|
||||
struct BlendOp
|
||||
{
|
||||
rdctype::str Source;
|
||||
rdctype::str Destination;
|
||||
rdctype::str Operation;
|
||||
} m_Blend, m_AlphaBlend;
|
||||
|
||||
rdctype::str LogicOp;
|
||||
|
||||
bool32 Enabled;
|
||||
bool32 LogicEnabled;
|
||||
byte WriteMask;
|
||||
};
|
||||
rdctype::array<RTBlend> Blends;
|
||||
|
||||
float BlendFactor[4];
|
||||
uint32_t SampleMask;
|
||||
} m_BlendState;
|
||||
|
||||
rdctype::array<ShaderStage::ResourceView> RenderTargets;
|
||||
|
||||
uint32_t UAVStartSlot;
|
||||
rdctype::array<ShaderStage::ResourceView> UAVs;
|
||||
|
||||
ShaderStage::ResourceView DepthTarget;
|
||||
bool32 DepthReadOnly;
|
||||
bool32 StencilReadOnly;
|
||||
} m_OM;
|
||||
};
|
||||
@@ -136,6 +136,7 @@ struct ResourceId
|
||||
#include "capture_options.h"
|
||||
#include "control_types.h"
|
||||
#include "d3d11_pipestate.h"
|
||||
#include "d3d12_pipestate.h"
|
||||
#include "data_types.h"
|
||||
#include "gl_pipestate.h"
|
||||
#include "replay_enums.h"
|
||||
@@ -231,6 +232,7 @@ struct IReplayRenderer
|
||||
|
||||
virtual bool SetFrameEvent(uint32_t eventID, bool force) = 0;
|
||||
virtual bool GetD3D11PipelineState(D3D11PipelineState *state) = 0;
|
||||
virtual bool GetD3D12PipelineState(D3D12PipelineState *state) = 0;
|
||||
virtual bool GetGLPipelineState(GLPipelineState *state) = 0;
|
||||
virtual bool GetVulkanPipelineState(VulkanPipelineState *state) = 0;
|
||||
|
||||
@@ -325,6 +327,8 @@ extern "C" RENDERDOC_API bool32 RENDERDOC_CC ReplayRenderer_SetFrameEvent(Replay
|
||||
bool32 force);
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC
|
||||
ReplayRenderer_GetD3D11PipelineState(ReplayRenderer *rend, D3D11PipelineState *state);
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC
|
||||
ReplayRenderer_GetD3D12PipelineState(ReplayRenderer *rend, D3D12PipelineState *state);
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC ReplayRenderer_GetGLPipelineState(ReplayRenderer *rend,
|
||||
GLPipelineState *state);
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC
|
||||
|
||||
@@ -224,6 +224,7 @@ enum QualityHint
|
||||
enum GraphicsAPI
|
||||
{
|
||||
eGraphicsAPI_D3D11,
|
||||
eGraphicsAPI_D3D12,
|
||||
eGraphicsAPI_OpenGL,
|
||||
eGraphicsAPI_Vulkan,
|
||||
};
|
||||
|
||||
@@ -164,6 +164,7 @@ public:
|
||||
return ret;
|
||||
}
|
||||
void SavePipelineState() {}
|
||||
D3D12PipelineState GetD3D12PipelineState() { return D3D12PipelineState(); }
|
||||
GLPipelineState GetGLPipelineState() { return GLPipelineState(); }
|
||||
VulkanPipelineState GetVulkanPipelineState() { return VulkanPipelineState(); }
|
||||
void ReplayLog(uint32_t endEventID, ReplayLogType replayType) {}
|
||||
|
||||
@@ -492,6 +492,16 @@ void Serialiser::Serialise(const char *name, D3D11PipelineState &el)
|
||||
|
||||
#pragma endregion D3D11 pipeline state
|
||||
|
||||
#pragma region D3D12 pipeline state
|
||||
|
||||
template <>
|
||||
void Serialiser::Serialise(const char *name, D3D12PipelineState &el)
|
||||
{
|
||||
RDCUNIMPLEMENTED("Serialiser::Serialise<D3D12PipelineState>()");
|
||||
}
|
||||
|
||||
#pragma endregion D3D12 pipeline state
|
||||
|
||||
#pragma region OpenGL pipeline state
|
||||
|
||||
template <>
|
||||
@@ -2008,6 +2018,7 @@ void ReplayProxy::SavePipelineState()
|
||||
{
|
||||
m_Remote->SavePipelineState();
|
||||
m_D3D11PipelineState = m_Remote->GetD3D11PipelineState();
|
||||
m_D3D12PipelineState = m_Remote->GetD3D12PipelineState();
|
||||
m_GLPipelineState = m_Remote->GetGLPipelineState();
|
||||
m_VulkanPipelineState = m_Remote->GetVulkanPipelineState();
|
||||
}
|
||||
@@ -2017,11 +2028,13 @@ void ReplayProxy::SavePipelineState()
|
||||
return;
|
||||
|
||||
m_D3D11PipelineState = D3D11PipelineState();
|
||||
m_D3D12PipelineState = D3D12PipelineState();
|
||||
m_GLPipelineState = GLPipelineState();
|
||||
m_VulkanPipelineState = VulkanPipelineState();
|
||||
}
|
||||
|
||||
m_FromReplaySerialiser->Serialise("", m_D3D11PipelineState);
|
||||
m_FromReplaySerialiser->Serialise("", m_D3D12PipelineState);
|
||||
m_FromReplaySerialiser->Serialise("", m_GLPipelineState);
|
||||
m_FromReplaySerialiser->Serialise("", m_VulkanPipelineState);
|
||||
}
|
||||
|
||||
@@ -398,6 +398,7 @@ public:
|
||||
|
||||
void SavePipelineState();
|
||||
D3D11PipelineState GetD3D11PipelineState() { return m_D3D11PipelineState; }
|
||||
D3D12PipelineState GetD3D12PipelineState() { return m_D3D12PipelineState; }
|
||||
GLPipelineState GetGLPipelineState() { return m_GLPipelineState; }
|
||||
VulkanPipelineState GetVulkanPipelineState() { return m_VulkanPipelineState; }
|
||||
void ReplayLog(uint32_t endEventID, ReplayLogType replayType);
|
||||
@@ -539,6 +540,7 @@ private:
|
||||
APIProperties m_APIProps;
|
||||
|
||||
D3D11PipelineState m_D3D11PipelineState;
|
||||
D3D12PipelineState m_D3D12PipelineState;
|
||||
GLPipelineState m_GLPipelineState;
|
||||
VulkanPipelineState m_VulkanPipelineState;
|
||||
};
|
||||
|
||||
@@ -64,6 +64,7 @@ public:
|
||||
|
||||
void SavePipelineState() { m_CurPipelineState = MakePipelineState(); }
|
||||
D3D11PipelineState GetD3D11PipelineState() { return m_CurPipelineState; }
|
||||
D3D12PipelineState GetD3D12PipelineState() { return D3D12PipelineState(); }
|
||||
GLPipelineState GetGLPipelineState() { return GLPipelineState(); }
|
||||
VulkanPipelineState GetVulkanPipelineState() { return VulkanPipelineState(); }
|
||||
void FreeTargetResource(ResourceId id);
|
||||
|
||||
@@ -350,11 +350,8 @@ vector<uint32_t> D3D12Replay::GetPassEvents(uint32_t eventID)
|
||||
return passEvents;
|
||||
}
|
||||
|
||||
D3D11PipelineState D3D12Replay::MakePipelineState()
|
||||
void D3D12Replay::MakePipelineState()
|
||||
{
|
||||
D3D11PipelineState ret;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void D3D12Replay::InitPostVSBuffers(uint32_t eventID)
|
||||
|
||||
@@ -59,6 +59,7 @@ public:
|
||||
|
||||
void SavePipelineState() { MakePipelineState(); }
|
||||
D3D11PipelineState GetD3D11PipelineState() { return D3D11PipelineState(); }
|
||||
D3D12PipelineState GetD3D12PipelineState() { return m_PipelineState; }
|
||||
GLPipelineState GetGLPipelineState() { return GLPipelineState(); }
|
||||
VulkanPipelineState GetVulkanPipelineState() { return VulkanPipelineState(); }
|
||||
void FreeTargetResource(ResourceId id);
|
||||
@@ -160,11 +161,13 @@ public:
|
||||
Callstack::StackResolver *GetCallstackResolver();
|
||||
|
||||
private:
|
||||
D3D11PipelineState MakePipelineState();
|
||||
void MakePipelineState();
|
||||
|
||||
bool m_Proxy;
|
||||
|
||||
vector<ID3D12Resource *> m_ProxyResources;
|
||||
|
||||
D3D12PipelineState m_PipelineState;
|
||||
|
||||
WrappedID3D12Device *m_pDevice;
|
||||
};
|
||||
|
||||
@@ -105,6 +105,7 @@ public:
|
||||
|
||||
void SavePipelineState();
|
||||
D3D11PipelineState GetD3D11PipelineState() { return D3D11PipelineState(); }
|
||||
D3D12PipelineState GetD3D12PipelineState() { return D3D12PipelineState(); }
|
||||
GLPipelineState GetGLPipelineState() { return m_CurPipelineState; }
|
||||
VulkanPipelineState GetVulkanPipelineState() { return VulkanPipelineState(); }
|
||||
void FreeTargetResource(ResourceId id);
|
||||
|
||||
@@ -146,6 +146,7 @@ public:
|
||||
|
||||
void SavePipelineState();
|
||||
D3D11PipelineState GetD3D11PipelineState() { return D3D11PipelineState(); }
|
||||
D3D12PipelineState GetD3D12PipelineState() { return D3D12PipelineState(); }
|
||||
GLPipelineState GetGLPipelineState() { return GLPipelineState(); }
|
||||
VulkanPipelineState GetVulkanPipelineState() { return m_VulkanPipelineState; }
|
||||
void FreeTargetResource(ResourceId id);
|
||||
|
||||
@@ -232,6 +232,7 @@
|
||||
<ClInclude Include="api\replay\capture_options.h" />
|
||||
<ClInclude Include="api\replay\control_types.h" />
|
||||
<ClInclude Include="api\replay\d3d11_pipestate.h" />
|
||||
<ClInclude Include="api\replay\d3d12_pipestate.h" />
|
||||
<ClInclude Include="api\replay\data_types.h" />
|
||||
<ClInclude Include="api\replay\gl_pipestate.h" />
|
||||
<ClInclude Include="api\replay\renderdoc_replay.h" />
|
||||
|
||||
@@ -249,6 +249,9 @@
|
||||
<ClInclude Include="data\glsl\vk_texsample.h">
|
||||
<Filter>Resources\glsl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="api\replay\d3d12_pipestate.h">
|
||||
<Filter>API\Replay</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="maths\camera.cpp">
|
||||
|
||||
@@ -68,6 +68,7 @@ public:
|
||||
|
||||
virtual void SavePipelineState() = 0;
|
||||
virtual D3D11PipelineState GetD3D11PipelineState() = 0;
|
||||
virtual D3D12PipelineState GetD3D12PipelineState() = 0;
|
||||
virtual GLPipelineState GetGLPipelineState() = 0;
|
||||
virtual VulkanPipelineState GetVulkanPipelineState() = 0;
|
||||
|
||||
|
||||
@@ -192,6 +192,17 @@ bool ReplayRenderer::GetD3D11PipelineState(D3D11PipelineState *state)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ReplayRenderer::GetD3D12PipelineState(D3D12PipelineState *state)
|
||||
{
|
||||
if(state)
|
||||
{
|
||||
*state = m_D3D12PipelineState;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ReplayRenderer::GetGLPipelineState(GLPipelineState *state)
|
||||
{
|
||||
if(state)
|
||||
@@ -1611,6 +1622,7 @@ void ReplayRenderer::FetchPipelineState()
|
||||
m_pDevice->SavePipelineState();
|
||||
|
||||
m_D3D11PipelineState = m_pDevice->GetD3D11PipelineState();
|
||||
m_D3D12PipelineState = m_pDevice->GetD3D12PipelineState();
|
||||
m_GLPipelineState = m_pDevice->GetGLPipelineState();
|
||||
m_VulkanPipelineState = m_pDevice->GetVulkanPipelineState();
|
||||
|
||||
@@ -1625,6 +1637,17 @@ void ReplayRenderer::FetchPipelineState()
|
||||
stages[i]->ShaderDetails = m_pDevice->GetShader(m_pDevice->GetLiveID(stages[i]->Shader), "");
|
||||
}
|
||||
|
||||
{
|
||||
D3D12PipelineState::ShaderStage *stages[] = {
|
||||
&m_D3D12PipelineState.m_VS, &m_D3D12PipelineState.m_HS, &m_D3D12PipelineState.m_DS,
|
||||
&m_D3D12PipelineState.m_GS, &m_D3D12PipelineState.m_PS, &m_D3D12PipelineState.m_CS,
|
||||
};
|
||||
|
||||
for(int i = 0; i < 6; i++)
|
||||
if(stages[i]->Shader != ResourceId())
|
||||
stages[i]->ShaderDetails = m_pDevice->GetShader(m_pDevice->GetLiveID(stages[i]->Shader), "");
|
||||
}
|
||||
|
||||
{
|
||||
GLPipelineState::ShaderStage *stages[] = {
|
||||
&m_GLPipelineState.m_VS, &m_GLPipelineState.m_TCS, &m_GLPipelineState.m_TES,
|
||||
@@ -1702,6 +1725,11 @@ ReplayRenderer_GetD3D11PipelineState(ReplayRenderer *rend, D3D11PipelineState *s
|
||||
{
|
||||
return rend->GetD3D11PipelineState(state);
|
||||
}
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC
|
||||
ReplayRenderer_GetD3D12PipelineState(ReplayRenderer *rend, D3D12PipelineState *state)
|
||||
{
|
||||
return rend->GetD3D12PipelineState(state);
|
||||
}
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC ReplayRenderer_GetGLPipelineState(ReplayRenderer *rend,
|
||||
GLPipelineState *state)
|
||||
{
|
||||
|
||||
@@ -136,6 +136,7 @@ public:
|
||||
void FetchPipelineState();
|
||||
|
||||
bool GetD3D11PipelineState(D3D11PipelineState *state);
|
||||
bool GetD3D12PipelineState(D3D12PipelineState *state);
|
||||
bool GetGLPipelineState(GLPipelineState *state);
|
||||
bool GetVulkanPipelineState(VulkanPipelineState *state);
|
||||
|
||||
@@ -213,6 +214,7 @@ private:
|
||||
uint32_t m_EventID;
|
||||
|
||||
D3D11PipelineState m_D3D11PipelineState;
|
||||
D3D12PipelineState m_D3D12PipelineState;
|
||||
GLPipelineState m_GLPipelineState;
|
||||
VulkanPipelineState m_VulkanPipelineState;
|
||||
|
||||
|
||||
@@ -71,6 +71,7 @@ namespace renderdocui.Code
|
||||
public class CommonPipelineState
|
||||
{
|
||||
private D3D11PipelineState m_D3D11 = null;
|
||||
private D3D12PipelineState m_D3D12 = null;
|
||||
private GLPipelineState m_GL = null;
|
||||
private VulkanPipelineState m_Vulkan = null;
|
||||
private APIProperties m_APIProps = null;
|
||||
@@ -79,10 +80,11 @@ namespace renderdocui.Code
|
||||
{
|
||||
}
|
||||
|
||||
public void SetStates(APIProperties props, D3D11PipelineState d3d11, GLPipelineState gl, VulkanPipelineState vk)
|
||||
public void SetStates(APIProperties props, D3D11PipelineState d3d11, D3D12PipelineState d3d12, GLPipelineState gl, VulkanPipelineState vk)
|
||||
{
|
||||
m_APIProps = props;
|
||||
m_D3D11 = d3d11;
|
||||
m_D3D12 = d3d12;
|
||||
m_GL = gl;
|
||||
m_Vulkan = vk;
|
||||
}
|
||||
@@ -93,7 +95,7 @@ namespace renderdocui.Code
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_D3D11 != null || m_GL != null || m_Vulkan != null;
|
||||
return m_D3D11 != null || m_D3D12 != null || m_GL != null || m_Vulkan != null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,6 +107,14 @@ namespace renderdocui.Code
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsLogD3D12
|
||||
{
|
||||
get
|
||||
{
|
||||
return LogLoaded && m_APIProps.pipelineType == GraphicsAPI.D3D12 && m_D3D12 != null;
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsLogGL
|
||||
{
|
||||
get
|
||||
|
||||
@@ -74,6 +74,7 @@ namespace renderdocui.Code
|
||||
private FetchTexture[] m_Textures = null;
|
||||
|
||||
private D3D11PipelineState m_D3D11PipelineState = null;
|
||||
private D3D12PipelineState m_D3D12PipelineState = null;
|
||||
private GLPipelineState m_GLPipelineState = null;
|
||||
private VulkanPipelineState m_VulkanPipelineState = null;
|
||||
private CommonPipelineState m_PipelineState = new CommonPipelineState();
|
||||
@@ -174,6 +175,7 @@ namespace renderdocui.Code
|
||||
|
||||
// direct access (note that only one of these will be valid for a log, check APIProps.pipelineType)
|
||||
public D3D11PipelineState CurD3D11PipelineState { get { return m_D3D11PipelineState; } }
|
||||
public D3D12PipelineState CurD3D12PipelineState { get { return m_D3D12PipelineState; } }
|
||||
public GLPipelineState CurGLPipelineState { get { return m_GLPipelineState; } }
|
||||
public VulkanPipelineState CurVulkanPipelineState { get { return m_VulkanPipelineState; } }
|
||||
public CommonPipelineState CurPipelineState { get { return m_PipelineState; } }
|
||||
@@ -565,9 +567,10 @@ namespace renderdocui.Code
|
||||
postloadProgress = 0.9f;
|
||||
|
||||
m_D3D11PipelineState = r.GetD3D11PipelineState();
|
||||
m_D3D12PipelineState = r.GetD3D12PipelineState();
|
||||
m_GLPipelineState = r.GetGLPipelineState();
|
||||
m_VulkanPipelineState = r.GetVulkanPipelineState();
|
||||
m_PipelineState.SetStates(m_APIProperties, m_D3D11PipelineState, m_GLPipelineState, m_VulkanPipelineState);
|
||||
m_PipelineState.SetStates(m_APIProperties, m_D3D11PipelineState, m_D3D12PipelineState, m_GLPipelineState, m_VulkanPipelineState);
|
||||
|
||||
UnreadMessageCount = 0;
|
||||
AddMessages(m_FrameInfo.debugMessages);
|
||||
@@ -669,7 +672,7 @@ namespace renderdocui.Code
|
||||
m_D3D11PipelineState = null;
|
||||
m_GLPipelineState = null;
|
||||
m_VulkanPipelineState = null;
|
||||
m_PipelineState.SetStates(null, null, null, null);
|
||||
m_PipelineState.SetStates(null, null,null, null, null);
|
||||
|
||||
DebugMessages.Clear();
|
||||
UnreadMessageCount = 0;
|
||||
@@ -902,9 +905,10 @@ namespace renderdocui.Code
|
||||
{
|
||||
r.SetFrameEvent(m_EventID, force);
|
||||
m_D3D11PipelineState = r.GetD3D11PipelineState();
|
||||
m_D3D12PipelineState = r.GetD3D12PipelineState();
|
||||
m_GLPipelineState = r.GetGLPipelineState();
|
||||
m_VulkanPipelineState = r.GetVulkanPipelineState();
|
||||
m_PipelineState.SetStates(m_APIProperties, m_D3D11PipelineState, m_GLPipelineState, m_VulkanPipelineState);
|
||||
m_PipelineState.SetStates(m_APIProperties, m_D3D11PipelineState, m_D3D12PipelineState, m_GLPipelineState, m_VulkanPipelineState);
|
||||
});
|
||||
|
||||
foreach (var logviewer in m_LogViewers)
|
||||
|
||||
@@ -137,7 +137,7 @@ namespace renderdoc
|
||||
public UInt32 NumElements;
|
||||
|
||||
// BufferEx
|
||||
public D3D11BufferViewFlags Flags;
|
||||
public D3DBufferViewFlags Flags;
|
||||
|
||||
// Texture
|
||||
public UInt32 HighestMip;
|
||||
|
||||
@@ -0,0 +1,358 @@
|
||||
/******************************************************************************
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2015-2016 Baldur Karlsson
|
||||
* Copyright (c) 2014 Crytek
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
******************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace renderdoc
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class D3D12PipelineState
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class InputAssembler
|
||||
{
|
||||
private void PostMarshal()
|
||||
{
|
||||
if (_ptr_Bytecode != IntPtr.Zero)
|
||||
Bytecode = (ShaderReflection)CustomMarshal.PtrToStructure(_ptr_Bytecode, typeof(ShaderReflection), false);
|
||||
else
|
||||
Bytecode = null;
|
||||
|
||||
_ptr_Bytecode = IntPtr.Zero;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class LayoutInput
|
||||
{
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string SemanticName;
|
||||
public UInt32 SemanticIndex;
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public ResourceFormat Format;
|
||||
public UInt32 InputSlot;
|
||||
public UInt32 ByteOffset;
|
||||
public bool PerInstance;
|
||||
public UInt32 InstanceDataStepRate;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public LayoutInput[] layouts;
|
||||
public ResourceId layout;
|
||||
private IntPtr _ptr_Bytecode;
|
||||
[CustomMarshalAs(CustomUnmanagedType.Skip)]
|
||||
public ShaderReflection Bytecode;
|
||||
public bool customName;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string LayoutName;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class VertexBuffer
|
||||
{
|
||||
public ResourceId Buffer;
|
||||
public UInt32 Stride;
|
||||
public UInt32 Offset;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public VertexBuffer[] vbuffers;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class IndexBuffer
|
||||
{
|
||||
public ResourceId Buffer;
|
||||
public UInt32 Offset;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public IndexBuffer ibuffer;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public InputAssembler m_IA;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class ShaderStage
|
||||
{
|
||||
private void PostMarshal()
|
||||
{
|
||||
if (_ptr_ShaderDetails != IntPtr.Zero)
|
||||
ShaderDetails = (ShaderReflection)CustomMarshal.PtrToStructure(_ptr_ShaderDetails, typeof(ShaderReflection), false);
|
||||
else
|
||||
ShaderDetails = null;
|
||||
|
||||
_ptr_ShaderDetails = IntPtr.Zero;
|
||||
}
|
||||
|
||||
public ResourceId Shader;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string ShaderName;
|
||||
public bool customName;
|
||||
private IntPtr _ptr_ShaderDetails;
|
||||
[CustomMarshalAs(CustomUnmanagedType.Skip)]
|
||||
public ShaderReflection ShaderDetails;
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public ShaderBindpointMapping BindpointMapping;
|
||||
|
||||
public ShaderStageType stage;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class ResourceView
|
||||
{
|
||||
public ResourceId View;
|
||||
public ResourceId Resource;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string Type;
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public ResourceFormat Format;
|
||||
|
||||
public bool Structured;
|
||||
public UInt32 BufferStructCount;
|
||||
public UInt32 ElementSize;
|
||||
|
||||
// Buffer (SRV)
|
||||
public UInt32 ElementOffset;
|
||||
public UInt32 ElementWidth;
|
||||
|
||||
// Buffer (UAV)
|
||||
public UInt32 FirstElement;
|
||||
public UInt32 NumElements;
|
||||
|
||||
// BufferEx
|
||||
public D3DBufferViewFlags Flags;
|
||||
|
||||
// Texture
|
||||
public UInt32 HighestMip;
|
||||
public UInt32 NumMipLevels;
|
||||
|
||||
// Texture Array
|
||||
public UInt32 ArraySize;
|
||||
public UInt32 FirstArraySlice;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public ResourceView[] SRVs;
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public ResourceView[] UAVs;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class Sampler
|
||||
{
|
||||
public ResourceId Samp;
|
||||
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string SamplerName;
|
||||
public bool customSamplerName;
|
||||
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string AddressU, AddressV, AddressW;
|
||||
[CustomMarshalAs(CustomUnmanagedType.FixedArray, FixedLength = 4)]
|
||||
public float[] BorderColor;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string Comparison;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string Filter;
|
||||
public bool UseBorder;
|
||||
public bool UseComparison;
|
||||
public UInt32 MaxAniso;
|
||||
public float MaxLOD;
|
||||
public float MinLOD;
|
||||
public float MipLODBias;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public Sampler[] Samplers;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class CBuffer
|
||||
{
|
||||
public ResourceId Buffer;
|
||||
public UInt32 VecOffset;
|
||||
public UInt32 VecCount;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public CBuffer[] ConstantBuffers;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class ClassInstance
|
||||
{
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
string name;
|
||||
};
|
||||
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public ClassInstance[] ClassInstances;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public ShaderStage m_VS, m_HS, m_DS, m_GS, m_PS, m_CS;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class Streamout
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class Output
|
||||
{
|
||||
public ResourceId Buffer;
|
||||
public UInt32 Offset;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public Output[] Outputs;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public Streamout m_SO;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class Rasterizer
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class Viewport
|
||||
{
|
||||
[CustomMarshalAs(CustomUnmanagedType.FixedArray, FixedLength = 2)]
|
||||
public float[] TopLeft;
|
||||
public float Width, Height;
|
||||
public float MinDepth, MaxDepth;
|
||||
public bool Enabled;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public Viewport[] Viewports;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class Scissor
|
||||
{
|
||||
public Int32 left, top, right, bottom;
|
||||
public bool Enabled;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public Scissor[] Scissors;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class RasterizerState
|
||||
{
|
||||
public ResourceId State;
|
||||
public TriangleFillMode FillMode;
|
||||
public TriangleCullMode CullMode;
|
||||
public bool FrontCCW;
|
||||
public Int32 DepthBias;
|
||||
public float DepthBiasClamp;
|
||||
public float SlopeScaledDepthBias;
|
||||
public bool DepthClip;
|
||||
public bool ScissorEnable;
|
||||
public bool MultisampleEnable;
|
||||
public bool AntialiasedLineEnable;
|
||||
public UInt32 ForcedSampleCount;
|
||||
public bool ConservativeRasterization;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public RasterizerState m_State;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public Rasterizer m_RS;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class OutputMerger
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class DepthStencilState
|
||||
{
|
||||
public ResourceId State;
|
||||
public bool DepthEnable;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string DepthFunc;
|
||||
public bool DepthWrites;
|
||||
public bool StencilEnable;
|
||||
public byte StencilReadMask;
|
||||
public byte StencilWriteMask;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class StencilOp
|
||||
{
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string FailOp;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string DepthFailOp;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string PassOp;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string Func;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public StencilOp m_FrontFace, m_BackFace;
|
||||
|
||||
public UInt32 StencilRef;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public DepthStencilState m_State;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class BlendState
|
||||
{
|
||||
public ResourceId State;
|
||||
|
||||
public bool AlphaToCoverage;
|
||||
public bool IndependentBlend;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class RTBlend
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public class BlendOp
|
||||
{
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string Source;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string Destination;
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string Operation;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public BlendOp m_Blend, m_AlphaBlend;
|
||||
|
||||
[CustomMarshalAs(CustomUnmanagedType.UTF8TemplatedString)]
|
||||
public string LogicOp;
|
||||
|
||||
public bool Enabled;
|
||||
public bool LogicEnabled;
|
||||
public byte WriteMask;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public RTBlend[] Blends;
|
||||
|
||||
[CustomMarshalAs(CustomUnmanagedType.FixedArray, FixedLength = 4)]
|
||||
public float[] BlendFactor;
|
||||
public UInt32 SampleMask;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public BlendState m_BlendState;
|
||||
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public ShaderStage.ResourceView[] RenderTargets;
|
||||
|
||||
public UInt32 UAVStartSlot;
|
||||
[CustomMarshalAs(CustomUnmanagedType.TemplatedArray)]
|
||||
public ShaderStage.ResourceView[] UAVs;
|
||||
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public ShaderStage.ResourceView DepthTarget;
|
||||
public bool DepthReadOnly;
|
||||
public bool StencilReadOnly;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public OutputMerger m_OM;
|
||||
};
|
||||
}
|
||||
@@ -227,6 +227,7 @@ namespace renderdoc
|
||||
public enum GraphicsAPI
|
||||
{
|
||||
D3D11,
|
||||
D3D12,
|
||||
OpenGL,
|
||||
Vulkan,
|
||||
};
|
||||
@@ -301,7 +302,7 @@ namespace renderdoc
|
||||
};
|
||||
|
||||
[Flags]
|
||||
public enum D3D11BufferViewFlags
|
||||
public enum D3DBufferViewFlags
|
||||
{
|
||||
Raw = 0x1,
|
||||
Append = 0x2,
|
||||
|
||||
@@ -253,6 +253,8 @@ namespace renderdoc
|
||||
[DllImport("renderdoc.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
|
||||
private static extern bool ReplayRenderer_GetD3D11PipelineState(IntPtr real, IntPtr mem);
|
||||
[DllImport("renderdoc.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
|
||||
private static extern bool ReplayRenderer_GetD3D12PipelineState(IntPtr real, IntPtr mem);
|
||||
[DllImport("renderdoc.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
|
||||
private static extern bool ReplayRenderer_GetGLPipelineState(IntPtr real, IntPtr mem);
|
||||
[DllImport("renderdoc.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
|
||||
private static extern bool ReplayRenderer_GetVulkanPipelineState(IntPtr real, IntPtr mem);
|
||||
@@ -405,6 +407,22 @@ namespace renderdoc
|
||||
return ret;
|
||||
}
|
||||
|
||||
public D3D12PipelineState GetD3D12PipelineState()
|
||||
{
|
||||
IntPtr mem = CustomMarshal.Alloc(typeof(D3D12PipelineState));
|
||||
|
||||
bool success = ReplayRenderer_GetD3D12PipelineState(m_Real, mem);
|
||||
|
||||
D3D12PipelineState ret = null;
|
||||
|
||||
if (success)
|
||||
ret = (D3D12PipelineState)CustomMarshal.PtrToStructure(mem, typeof(D3D12PipelineState), true);
|
||||
|
||||
CustomMarshal.Free(mem);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public VulkanPipelineState GetVulkanPipelineState()
|
||||
{
|
||||
IntPtr mem = CustomMarshal.Alloc(typeof(VulkanPipelineState));
|
||||
|
||||
@@ -254,7 +254,7 @@ namespace renderdoc
|
||||
}
|
||||
}
|
||||
|
||||
public string D3D11SemanticString
|
||||
public string D3DSemanticString
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
+7
-7
@@ -84,7 +84,7 @@
|
||||
this.pythonShellToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.eventViewerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.textureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.D3D11PipelineStateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.PipelineStateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.aPIInspectorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.meshOutputToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.debugMessagesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@@ -280,7 +280,7 @@
|
||||
this.pythonShellToolStripMenuItem,
|
||||
this.eventViewerToolStripMenuItem,
|
||||
this.textureToolStripMenuItem,
|
||||
this.D3D11PipelineStateToolStripMenuItem,
|
||||
this.PipelineStateToolStripMenuItem,
|
||||
this.aPIInspectorToolStripMenuItem,
|
||||
this.meshOutputToolStripMenuItem,
|
||||
this.debugMessagesToolStripMenuItem,
|
||||
@@ -470,10 +470,10 @@
|
||||
//
|
||||
// D3D11PipelineStateToolStripMenuItem
|
||||
//
|
||||
this.D3D11PipelineStateToolStripMenuItem.Name = "D3D11PipelineStateToolStripMenuItem";
|
||||
this.D3D11PipelineStateToolStripMenuItem.Size = new System.Drawing.Size(192, 22);
|
||||
this.D3D11PipelineStateToolStripMenuItem.Text = "&Pipeline State";
|
||||
this.D3D11PipelineStateToolStripMenuItem.Click += new System.EventHandler(this.PipelineStateToolStripMenuItem_Click);
|
||||
this.PipelineStateToolStripMenuItem.Name = "D3D11PipelineStateToolStripMenuItem";
|
||||
this.PipelineStateToolStripMenuItem.Size = new System.Drawing.Size(192, 22);
|
||||
this.PipelineStateToolStripMenuItem.Text = "&Pipeline State";
|
||||
this.PipelineStateToolStripMenuItem.Click += new System.EventHandler(this.PipelineStateToolStripMenuItem_Click);
|
||||
//
|
||||
// aPIInspectorToolStripMenuItem
|
||||
//
|
||||
@@ -868,7 +868,7 @@
|
||||
private System.Windows.Forms.ToolStripMenuItem layoutSave6;
|
||||
private System.Windows.Forms.ToolStripMenuItem layoutLoadDefault;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripMenuItem D3D11PipelineStateToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem PipelineStateToolStripMenuItem;
|
||||
private System.Windows.Forms.OpenFileDialog openDialog;
|
||||
private System.Windows.Forms.ToolStripContainer toolStripContainer1;
|
||||
private System.Windows.Forms.StatusStrip statusStrip;
|
||||
|
||||
@@ -418,7 +418,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
name = bufs[t].name;
|
||||
typename = "Buffer";
|
||||
|
||||
if (r.Flags.HasFlag(D3D11BufferViewFlags.Raw))
|
||||
if (r.Flags.HasFlag(D3DBufferViewFlags.Raw))
|
||||
{
|
||||
typename = "ByteAddressBuffer";
|
||||
}
|
||||
@@ -428,7 +428,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
typename = "StructuredBuffer[" + (bufs[t].length / r.ElementSize) + "]";
|
||||
}
|
||||
|
||||
if (r.Flags.HasFlag(D3D11BufferViewFlags.Append) || r.Flags.HasFlag(D3D11BufferViewFlags.Counter))
|
||||
if (r.Flags.HasFlag(D3DBufferViewFlags.Append) || r.Flags.HasFlag(D3DBufferViewFlags.Counter))
|
||||
{
|
||||
typename += " (Count: " + r.BufferStructCount + ")";
|
||||
}
|
||||
@@ -1144,7 +1144,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
name = bufs[t].name;
|
||||
typename = "Buffer";
|
||||
|
||||
if (r.Flags.HasFlag(D3D11BufferViewFlags.Raw))
|
||||
if (r.Flags.HasFlag(D3DBufferViewFlags.Raw))
|
||||
{
|
||||
typename = "RWByteAddressBuffer";
|
||||
}
|
||||
@@ -1154,7 +1154,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
typename = "RWStructuredBuffer[" + (bufs[t].length / r.ElementSize) + "]";
|
||||
}
|
||||
|
||||
if (r.Flags.HasFlag(D3D11BufferViewFlags.Append) || r.Flags.HasFlag(D3D11BufferViewFlags.Counter))
|
||||
if (r.Flags.HasFlag(D3DBufferViewFlags.Append) || r.Flags.HasFlag(D3DBufferViewFlags.Counter))
|
||||
{
|
||||
typename += " (Count: " + r.BufferStructCount + ")";
|
||||
}
|
||||
@@ -1518,7 +1518,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
name = bufs[t].name;
|
||||
typename = "Buffer";
|
||||
|
||||
if (r.Flags.HasFlag(D3D11BufferViewFlags.Raw))
|
||||
if (r.Flags.HasFlag(D3DBufferViewFlags.Raw))
|
||||
{
|
||||
typename = "RWByteAddressBuffer";
|
||||
}
|
||||
@@ -1528,7 +1528,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
typename = "RWStructuredBuffer[" + (bufs[t].length / r.ElementSize) + "]";
|
||||
}
|
||||
|
||||
if (r.Flags.HasFlag(D3D11BufferViewFlags.Append) || r.Flags.HasFlag(D3D11BufferViewFlags.Counter))
|
||||
if (r.Flags.HasFlag(D3DBufferViewFlags.Append) || r.Flags.HasFlag(D3DBufferViewFlags.Counter))
|
||||
{
|
||||
typename += " (Count: " + r.BufferStructCount + ")";
|
||||
}
|
||||
@@ -2053,7 +2053,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
}
|
||||
}
|
||||
|
||||
if (view.Flags.HasFlag(D3D11BufferViewFlags.Raw))
|
||||
if (view.Flags.HasFlag(D3DBufferViewFlags.Raw))
|
||||
format = "xint";
|
||||
|
||||
format += view.Format.compCount;
|
||||
@@ -2428,12 +2428,12 @@ namespace renderdocui.Windows.PipelineState
|
||||
|
||||
hlsl += String.Format("struct {0}Input{1}{{{1}", shType, nl);
|
||||
foreach(var sig in shaderDetails.InputSig)
|
||||
hlsl += String.Format("\t{0} {1} : {2};" + nl, sig.TypeString, sig.varName.Length > 0 ? sig.varName : ("param" + sig.regIndex), sig.D3D11SemanticString);
|
||||
hlsl += String.Format("\t{0} {1} : {2};" + nl, sig.TypeString, sig.varName.Length > 0 ? sig.varName : ("param" + sig.regIndex), sig.D3DSemanticString);
|
||||
hlsl += "};" + nl2;
|
||||
|
||||
hlsl += String.Format("struct {0}Output{1}{{{1}", shType, nl);
|
||||
foreach (var sig in shaderDetails.OutputSig)
|
||||
hlsl += String.Format("\t{0} {1} : {2};" + nl, sig.TypeString, sig.varName.Length > 0 ? sig.varName : ("param" + sig.regIndex), sig.D3D11SemanticString);
|
||||
hlsl += String.Format("\t{0} {1} : {2};" + nl, sig.TypeString, sig.varName.Length > 0 ? sig.varName : ("param" + sig.regIndex), sig.D3DSemanticString);
|
||||
hlsl += "};" + nl2;
|
||||
|
||||
hlsl += String.Format("{0}Output {1}(in {0}Input IN){2}{{{2}\t{0}Output OUT = ({0}Output)0;{2}{2}\t// ...{2}{2}\treturn OUT;{2}}}{2}", shType, entryFunc, nl);
|
||||
@@ -3060,7 +3060,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
name = bufs[t].name;
|
||||
typename = "Buffer";
|
||||
|
||||
if (view.Flags.HasFlag(D3D11BufferViewFlags.Raw))
|
||||
if (view.Flags.HasFlag(D3DBufferViewFlags.Raw))
|
||||
{
|
||||
typename = rw ? "RWByteAddressBuffer" : "ByteAddressBuffer";
|
||||
}
|
||||
@@ -3070,7 +3070,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
typename = (rw ? "RWStructuredBuffer" : "StructuredBuffer") + "[" + (bufs[t].length / view.ElementSize) + "]";
|
||||
}
|
||||
|
||||
if (view.Flags.HasFlag(D3D11BufferViewFlags.Append) || view.Flags.HasFlag(D3D11BufferViewFlags.Counter))
|
||||
if (view.Flags.HasFlag(D3DBufferViewFlags.Append) || view.Flags.HasFlag(D3DBufferViewFlags.Counter))
|
||||
{
|
||||
typename += " (Count: " + view.BufferStructCount + ")";
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,476 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="toolStripLabel1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="toolstripTable.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>140, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>140, 17</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox39.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox44.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox39.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="flowLayoutPanel9.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="flowLayoutPanel9.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox44.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>239, 17</value>
|
||||
</metadata>
|
||||
<metadata name="label28.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label26.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label27.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label28.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label26.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label27.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label29.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label30.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label31.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label29.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label30.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label31.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label32.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label33.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label34.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label32.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label33.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label34.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox45.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox45.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label35.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label36.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label37.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label35.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label36.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label37.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="groupBox42.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label15.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label16.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label17.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label25.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="frontCCW.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label15.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label16.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label17.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<data name="depthClip.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="multisampleEnable.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="scissorEnable.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="lineAAEnable.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="label25.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<data name="conservativeRaster.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="groupBox42.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label38.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label39.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label40.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label38.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label39.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label40.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<data name="independentBlend.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="alphaToCoverage.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="depthEnable.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="depthWrite.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="stencilEnable.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHCSURBVDhPpZFZL0NBHMW94X4Xe6vW2BJSa6ql1OWW
|
||||
Wkvjheptq9VSgliuR7GvkdhiDSLxqJYKn0F8CdVj5oqG9tri4TeZOfM//5k5EwHgX0iKf0FS/A7tUqlQ
|
||||
PlvofF+HFXxH5WKJYNo3oG2Hg1LI4akmWShFxUKx0LHXgIl7NzyXVujXtMgaSLFJFoeimS8SjLt6jN25
|
||||
MHrnRP16FbI9qUhzyKKCRcYzLq/lmG36aKSo54oEeuURnxPDPod4cqZb4U/tTYqi+2/mUy6j+Yh94i9M
|
||||
4DYrOt/NJCyhdbsOw7e9GLq1g1utRIYr2Z9iTxTNYoO2k7r85sOax0EvjzFfH3RrKj8Jq1M1oxxt2WIx
|
||||
eGOH55pH7YoG6X1yv8KWEDSLDZoOdNGG3WqYz9sx+TAAj9cK454epgMD+r0WuK8tYJfVSHPKXpKtn81i
|
||||
AzqwG2qGnAzToUF859CNDa4rM1xeM3RL5TSsgJyPDzNTghMSFqOaVqJxswbuqx44LrtQvaACCSsgt8RJ
|
||||
mimfFsqpXKZgPJtcWQPtfBlIWAFZT+yXZkqYQP6XyexXgIT1nGSOjQzdD0VSJGExid0xP5opkuLvQcQr
|
||||
vqKpPDRN9lYAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="label41.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label42.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label43.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label41.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label42.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label43.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="rightclickMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>239, 17</value>
|
||||
</metadata>
|
||||
<metadata name="pipeExportDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>324, 17</value>
|
||||
</metadata>
|
||||
<metadata name="shaderSaveDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>438, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -45,6 +45,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
{
|
||||
private Core m_Core;
|
||||
private D3D11PipelineStateViewer m_D3D11 = null;
|
||||
private D3D12PipelineStateViewer m_D3D12 = null;
|
||||
private GLPipelineStateViewer m_GL = null;
|
||||
private VulkanPipelineStateViewer m_Vulkan = null;
|
||||
private ILogViewerForm m_Current = null;
|
||||
@@ -68,6 +69,8 @@ namespace renderdocui.Windows.PipelineState
|
||||
{
|
||||
if (m_Current == m_D3D11)
|
||||
return GetType().ToString() + "D3D11";
|
||||
else if (m_Current == m_D3D12)
|
||||
return GetType().ToString() + "D3D12";
|
||||
else if (m_Current == m_GL)
|
||||
return GetType().ToString() + "GL";
|
||||
else if (m_Current == m_Vulkan)
|
||||
@@ -84,12 +87,15 @@ namespace renderdocui.Windows.PipelineState
|
||||
SetToGL();
|
||||
else if (type == "D3D11")
|
||||
SetToD3D11();
|
||||
else if (type == "D3D12")
|
||||
SetToD3D12();
|
||||
else if (type == "Vulkan")
|
||||
SetToVulkan();
|
||||
}
|
||||
|
||||
private void SetToD3D11()
|
||||
{
|
||||
m_D3D12 = null;
|
||||
m_GL = null;
|
||||
m_Vulkan = null;
|
||||
|
||||
@@ -105,9 +111,28 @@ namespace renderdocui.Windows.PipelineState
|
||||
m_Core.CurPipelineState.DefaultType = GraphicsAPI.D3D11;
|
||||
}
|
||||
|
||||
private void SetToD3D12()
|
||||
{
|
||||
m_D3D11 = null;
|
||||
m_GL = null;
|
||||
m_Vulkan = null;
|
||||
|
||||
if (m_D3D12 == null)
|
||||
{
|
||||
Controls.Clear();
|
||||
m_D3D12 = new D3D12PipelineStateViewer(m_Core, this);
|
||||
m_D3D12.Dock = DockStyle.Fill;
|
||||
Controls.Add(m_D3D12);
|
||||
}
|
||||
|
||||
m_Current = m_D3D12;
|
||||
m_Core.CurPipelineState.DefaultType = GraphicsAPI.D3D12;
|
||||
}
|
||||
|
||||
private void SetToGL()
|
||||
{
|
||||
m_D3D11 = null;
|
||||
m_D3D12 = null;
|
||||
m_Vulkan = null;
|
||||
|
||||
if (m_GL == null)
|
||||
@@ -125,6 +150,7 @@ namespace renderdocui.Windows.PipelineState
|
||||
private void SetToVulkan()
|
||||
{
|
||||
m_GL = null;
|
||||
m_D3D12 = null;
|
||||
m_D3D11 = null;
|
||||
|
||||
if (m_Vulkan == null)
|
||||
@@ -143,6 +169,8 @@ namespace renderdocui.Windows.PipelineState
|
||||
{
|
||||
if (m_Core.APIProps.pipelineType == GraphicsAPI.D3D11)
|
||||
SetToD3D11();
|
||||
else if (m_Core.APIProps.pipelineType == GraphicsAPI.D3D12)
|
||||
SetToD3D12();
|
||||
else if (m_Core.APIProps.pipelineType == GraphicsAPI.OpenGL)
|
||||
SetToGL();
|
||||
else if (m_Core.APIProps.pipelineType == GraphicsAPI.Vulkan)
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
<Compile Include="Code\CommonPipelineState.cs" />
|
||||
<Compile Include="Code\FormatElement.cs" />
|
||||
<Compile Include="Interop\Camera.cs" />
|
||||
<Compile Include="Interop\D3D12PipelineState.cs" />
|
||||
<Compile Include="Interop\VulkanPipelineState.cs" />
|
||||
<Compile Include="Interop\Formatter.cs" />
|
||||
<Compile Include="Code\Helpers.cs" />
|
||||
@@ -313,6 +314,12 @@
|
||||
<Compile Include="Windows\Dialogs\LiveCapture.Designer.cs">
|
||||
<DependentUpon>LiveCapture.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Windows\PipelineState\D3D12PipelineStateViewer.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Windows\PipelineState\D3D12PipelineStateViewer.Designer.cs">
|
||||
<DependentUpon>D3D12PipelineStateViewer.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Windows\PipelineState\VulkanPipelineStateViewer.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
@@ -457,6 +464,10 @@
|
||||
<EmbeddedResource Include="Windows\Dialogs\LiveCapture.resx">
|
||||
<DependentUpon>LiveCapture.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Windows\PipelineState\D3D12PipelineStateViewer.resx">
|
||||
<DependentUpon>D3D12PipelineStateViewer.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Windows\PipelineState\VulkanPipelineStateViewer.resx">
|
||||
<DependentUpon>VulkanPipelineStateViewer.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
||||
Reference in New Issue
Block a user