mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-12 21:10:42 +00:00
Remove use of bool32 replay API type&optimise mem layout in some structs
This commit is contained in:
@@ -770,7 +770,7 @@ ShaderVariable FormatElement::GetShaderVar(const byte *&data, const byte *end) c
|
||||
if(format.compType == CompType::Double)
|
||||
ret.type = VarType::Double;
|
||||
|
||||
ret.columns = qMin(format.compCount, 4U);
|
||||
ret.columns = qMin(format.compCount, uint8_t(4));
|
||||
ret.rows = qMin(matrixdim, 4U);
|
||||
|
||||
ret.displayAsHex = hex;
|
||||
|
||||
@@ -1807,7 +1807,7 @@ void D3D12PipelineStateViewer::resource_itemActivated(RDTreeWidgetItem *item, in
|
||||
if(desc.rows > 1 && desc.cols > 1)
|
||||
format += QFormatStr("%1x%2").arg(desc.rows).arg(desc.cols);
|
||||
else if(desc.cols > 1)
|
||||
format += desc.cols;
|
||||
format += QString::number(desc.cols);
|
||||
|
||||
if(!desc.name.empty())
|
||||
format += lit(" ") + desc.name;
|
||||
@@ -1878,7 +1878,7 @@ void D3D12PipelineStateViewer::resource_itemActivated(RDTreeWidgetItem *item, in
|
||||
if(view.res.BufferFlags & D3DBufferViewFlags::Raw)
|
||||
format = lit("xint");
|
||||
|
||||
format += fmt.compCount;
|
||||
format += QString::number(fmt.compCount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2022,7 +2022,7 @@ void GLPipelineStateViewer::resource_itemActivated(RDTreeWidgetItem *item, int c
|
||||
if(desc.rows > 1 && desc.cols > 1)
|
||||
format += QFormatStr("%1x%2").arg(desc.rows).arg(desc.cols);
|
||||
else if(desc.cols > 1)
|
||||
format += desc.cols;
|
||||
format += QString::number(desc.cols);
|
||||
|
||||
if(!desc.name.empty())
|
||||
format += lit(" ") + desc.name;
|
||||
|
||||
@@ -2051,7 +2051,7 @@ void VulkanPipelineStateViewer::resource_itemActivated(RDTreeWidgetItem *item, i
|
||||
if(desc.rows > 1 && desc.cols > 1)
|
||||
format += QFormatStr("%1x%2").arg(desc.rows).arg(desc.cols);
|
||||
else if(desc.cols > 1)
|
||||
format += desc.cols;
|
||||
format += QString::number(desc.cols);
|
||||
|
||||
if(desc.name.count > 0)
|
||||
format += lit(" ") + desc.name;
|
||||
|
||||
@@ -71,20 +71,20 @@ struct MeshFormat
|
||||
":class:`FloatVector`.");
|
||||
FloatVector meshColor;
|
||||
|
||||
DOCUMENT("``True`` if the alpha component of this element should be used.");
|
||||
bool showAlpha;
|
||||
|
||||
DOCUMENT("The :class:`Topology` that describes the primitives in this mesh.");
|
||||
Topology topo;
|
||||
DOCUMENT("The number of vertices in the mesh.");
|
||||
uint32_t numVerts;
|
||||
|
||||
DOCUMENT("``True`` if this mesh element contains post-projection positional data.");
|
||||
bool32 unproject;
|
||||
DOCUMENT("The near plane for the projection matrix.");
|
||||
float nearPlane;
|
||||
DOCUMENT("The far plane for the projection matrix.");
|
||||
float farPlane;
|
||||
DOCUMENT("``True`` if this mesh element contains post-projection positional data.");
|
||||
bool unproject;
|
||||
|
||||
DOCUMENT("``True`` if the alpha component of this element should be used.");
|
||||
bool showAlpha;
|
||||
};
|
||||
|
||||
DECLARE_REFLECTION_STRUCT(MeshFormat);
|
||||
@@ -110,7 +110,7 @@ struct MeshDisplay
|
||||
DOCUMENT(
|
||||
"``True`` if the projection matrix to use when unprojecting vertex positions is "
|
||||
"orthographic.");
|
||||
bool32 ortho;
|
||||
bool ortho;
|
||||
DOCUMENT("The field of view to use when calculating a perspective projection matrix.");
|
||||
float fov;
|
||||
DOCUMENT("The aspect ratio to use when calculating a perspective projection matrix.");
|
||||
@@ -118,13 +118,13 @@ struct MeshDisplay
|
||||
|
||||
DOCUMENT(
|
||||
"``True`` if all previous instances in the drawcall should be drawn as secondary meshes.");
|
||||
bool32 showPrevInstances;
|
||||
bool showPrevInstances;
|
||||
DOCUMENT("``True`` if all instances in the drawcall should be drawn as secondary meshes.");
|
||||
bool32 showAllInstances;
|
||||
bool showAllInstances;
|
||||
DOCUMENT(
|
||||
"``True`` if all draws in the current pass up to the current draw should be drawn as "
|
||||
"secondary meshes.");
|
||||
bool32 showWholePass;
|
||||
bool showWholePass;
|
||||
DOCUMENT("The index of the currently selected instance in the drawcall.");
|
||||
uint32_t curInstance;
|
||||
|
||||
@@ -141,12 +141,12 @@ struct MeshDisplay
|
||||
DOCUMENT("The maximum co-ordinates in each axis of the mesh bounding box.");
|
||||
FloatVector maxBounds;
|
||||
DOCUMENT("``True`` if the bounding box around the mesh should be rendered.");
|
||||
bool32 showBBox;
|
||||
bool showBBox;
|
||||
|
||||
DOCUMENT("The :class:`solid shading mode <SolidShade>` to use when rendering the current mesh.");
|
||||
SolidShade solidShadeMode;
|
||||
DOCUMENT("``True`` if the wireframe of the mesh should be rendered as well as solid shading.");
|
||||
bool32 wireframeDraw;
|
||||
bool wireframeDraw;
|
||||
|
||||
static const uint32_t NoHighlight = ~0U;
|
||||
};
|
||||
@@ -186,19 +186,19 @@ struct TextureDisplay
|
||||
|
||||
If only one channel is selected, it will be rendered in grayscale
|
||||
)");
|
||||
bool32 Red;
|
||||
bool Red;
|
||||
|
||||
DOCUMENT(R"(``True`` if the green channel should be visible.
|
||||
|
||||
If only one channel is selected, it will be rendered in grayscale
|
||||
)");
|
||||
bool32 Green;
|
||||
bool Green;
|
||||
|
||||
DOCUMENT(R"(``True`` if the blue channel should be visible.
|
||||
|
||||
If only one channel is selected, it will be rendered in grayscale
|
||||
)");
|
||||
bool32 Blue;
|
||||
bool Blue;
|
||||
|
||||
DOCUMENT(R"(``True`` if the alpha channel should be visible. If enabled with any of RGB, the
|
||||
texture will be blended to a checkerboard of :data:`lightBackgroundColor` and
|
||||
@@ -206,10 +206,10 @@ texture will be blended to a checkerboard of :data:`lightBackgroundColor` and
|
||||
|
||||
If only one channel is selected, it will be rendered in grayscale
|
||||
)");
|
||||
bool32 Alpha;
|
||||
bool Alpha;
|
||||
|
||||
DOCUMENT("``True`` if the texture should be flipped vertically when rendering.");
|
||||
bool32 FlipY;
|
||||
bool FlipY;
|
||||
|
||||
DOCUMENT("If ``>= 0.0`` the RGBA values will be viewed as HDRM with this as the multiplier.");
|
||||
float HDRMul;
|
||||
@@ -218,7 +218,7 @@ If only one channel is selected, it will be rendered in grayscale
|
||||
|
||||
See :ref:`the FAQ entry <gamma-linear-display>`.
|
||||
)");
|
||||
bool32 linearDisplayAsGamma;
|
||||
bool linearDisplayAsGamma;
|
||||
|
||||
DOCUMENT(R"(The :class:`ResourceId` of a custom shader to use when rendering.
|
||||
|
||||
@@ -244,7 +244,7 @@ samples.
|
||||
This is primarily useful when rendering to a floating point target for retrieving pixel data from
|
||||
the input texture in cases where it isn't easy to directly fetch the input texture data.
|
||||
)");
|
||||
bool32 rawoutput;
|
||||
bool rawoutput;
|
||||
|
||||
DOCUMENT("The offset to pan in the X axis.");
|
||||
float offx;
|
||||
@@ -292,7 +292,7 @@ in-place, so it would be slice 0: sample 0, slice 0: sample 1, slice 1: sample 0
|
||||
This then follows the mapping for array slices as with any other array texture. :data:`sampleIndex`
|
||||
is ignored.
|
||||
)");
|
||||
bool32 mapToArray;
|
||||
bool mapToArray;
|
||||
|
||||
DOCUMENT(R"(
|
||||
If :data:`mapToArray` is ``False`` this selects which sample should be extracted to treat as a
|
||||
@@ -326,7 +326,7 @@ that don't support slices natively, and will be done in RGBA8.
|
||||
If ``True``, write out the slices as a 2D grid with the width given in :data:`sliceGridWidth`. Any
|
||||
empty slices in the grid are written as transparent black.
|
||||
)");
|
||||
bool32 slicesAsGrid;
|
||||
bool slicesAsGrid;
|
||||
|
||||
DOCUMENT("The width of a grid if :data:`slicesAsGrid` is ``True``.");
|
||||
int32_t sliceGridWidth;
|
||||
@@ -346,7 +346,7 @@ empty slices in the grid are written as transparent black.
|
||||
|
||||
With the gaps filled in with transparent black.
|
||||
)");
|
||||
bool32 cubeCruciform;
|
||||
bool cubeCruciform;
|
||||
};
|
||||
|
||||
DECLARE_REFLECTION_STRUCT(TextureSliceMapping);
|
||||
@@ -424,7 +424,7 @@ struct NewCaptureData
|
||||
DOCUMENT("The local path on the target system where the capture is saved.");
|
||||
rdctype::str path;
|
||||
DOCUMENT("``True`` if the target is running on the local system.");
|
||||
bool32 local;
|
||||
bool local;
|
||||
};
|
||||
|
||||
DECLARE_REFLECTION_STRUCT(NewCaptureData);
|
||||
|
||||
@@ -58,7 +58,7 @@ if this is the first element.
|
||||
uint32_t ByteOffset = 0;
|
||||
|
||||
DOCUMENT("``True`` if the vertex data is instance-rate.");
|
||||
bool32 PerInstance = false;
|
||||
bool PerInstance = false;
|
||||
|
||||
DOCUMENT(R"(If :data:`PerInstance` is ``True`` then this is how many times each instance data is
|
||||
used before advancing to the next instance.
|
||||
@@ -110,7 +110,7 @@ struct IA
|
||||
DOCUMENT(R"(``True`` if :data:`name` was assigned by the application, otherwise it's autogenerated
|
||||
based on the ID.
|
||||
)");
|
||||
bool32 customName = false;
|
||||
bool customName = false;
|
||||
|
||||
DOCUMENT("The name of the input layout object.");
|
||||
rdctype::str name;
|
||||
@@ -138,7 +138,7 @@ struct View
|
||||
ResourceFormat Format;
|
||||
|
||||
DOCUMENT("``True`` if this view describes a structured buffer.");
|
||||
bool32 Structured = false;
|
||||
bool Structured = false;
|
||||
|
||||
DOCUMENT("If the view has a hidden counter, this stores the current value of the counter.");
|
||||
uint32_t BufferStructCount = 0;
|
||||
@@ -177,7 +177,7 @@ struct Sampler
|
||||
DOCUMENT(R"(``True`` if :data:`name` was assigned by the application, otherwise it's autogenerated
|
||||
based on the ID.
|
||||
)");
|
||||
bool32 customName = false;
|
||||
bool customName = false;
|
||||
DOCUMENT("The :class:`AddressMode` in the U direction.");
|
||||
AddressMode AddressU = AddressMode::Wrap;
|
||||
DOCUMENT("The :class:`AddressMode` in the V direction.");
|
||||
@@ -242,7 +242,7 @@ struct Shader
|
||||
DOCUMENT(R"(``True`` if :data:`name` was assigned by the application, otherwise it's autogenerated
|
||||
based on the ID.
|
||||
)");
|
||||
bool32 customName = false;
|
||||
bool customName = false;
|
||||
|
||||
DOCUMENT("A :class:`ShaderReflection` describing the reflection data for this shader.");
|
||||
ShaderReflection *ShaderDetails = NULL;
|
||||
@@ -309,7 +309,7 @@ struct Viewport
|
||||
DOCUMENT("The maximum depth of the viewport.");
|
||||
float MaxDepth = 0.0f;
|
||||
DOCUMENT("``True`` if this viewport is enabled.");
|
||||
bool32 Enabled = false;
|
||||
bool Enabled = false;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes a single D3D11 scissor rect.");
|
||||
@@ -328,7 +328,7 @@ struct Scissor
|
||||
DOCUMENT("Bottom-right Y co-ordinate of the viewport.");
|
||||
int32_t bottom = 0;
|
||||
DOCUMENT("``True`` if this scissor region is enabled.");
|
||||
bool32 Enabled = false;
|
||||
bool Enabled = false;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes a rasterizer state object.");
|
||||
@@ -343,7 +343,7 @@ struct RasterizerState
|
||||
DOCUMENT(R"(``True`` if counter-clockwise polygons are front-facing.
|
||||
``False`` if clockwise polygons are front-facing.
|
||||
)");
|
||||
bool32 FrontCCW = false;
|
||||
bool FrontCCW = false;
|
||||
DOCUMENT("The fixed depth bias value to apply to z-values.");
|
||||
int32_t DepthBias = 0;
|
||||
DOCUMENT(R"(The clamp value for calculated depth bias from :data:`DepthBias` and
|
||||
@@ -353,21 +353,21 @@ struct RasterizerState
|
||||
DOCUMENT("The slope-scaled depth bias value to apply to z-values.");
|
||||
float SlopeScaledDepthBias = 0.0f;
|
||||
DOCUMENT("``True`` if pixels outside of the near and far depth planes should be clipped.");
|
||||
bool32 DepthClip = false;
|
||||
bool DepthClip = false;
|
||||
DOCUMENT("``True`` if the scissor test should be applied.");
|
||||
bool32 ScissorEnable = false;
|
||||
bool ScissorEnable = false;
|
||||
DOCUMENT("``True`` if the quadrilateral MSAA algorithm should be used on MSAA targets.");
|
||||
bool32 MultisampleEnable = false;
|
||||
bool MultisampleEnable = false;
|
||||
DOCUMENT(
|
||||
"``True`` if lines should be anti-aliased. Ignored if :data:`MultisampleEnable` is "
|
||||
"``False``.");
|
||||
bool32 AntialiasedLineEnable = false;
|
||||
bool AntialiasedLineEnable = false;
|
||||
DOCUMENT(R"(A sample count to force rasterization to when UAV rendering or rasterizing, or 0 to
|
||||
not force any sample count.
|
||||
)");
|
||||
uint32_t ForcedSampleCount = 0;
|
||||
DOCUMENT("``True`` if a conservative rasterization algorithm should be used.");
|
||||
bool32 ConservativeRasterization = false;
|
||||
bool ConservativeRasterization = false;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes the rasterization state of the D3D11 pipeline.");
|
||||
@@ -402,13 +402,13 @@ struct DepthStencilState
|
||||
DOCUMENT("The :class:`ResourceId` of the depth-stencil state object.");
|
||||
ResourceId State;
|
||||
DOCUMENT("``True`` if depth testing should be performed.");
|
||||
bool32 DepthEnable = false;
|
||||
bool DepthEnable = false;
|
||||
DOCUMENT("The :class:`CompareFunc` to use for testing depth values.");
|
||||
CompareFunc DepthFunc = CompareFunc::AlwaysTrue;
|
||||
DOCUMENT("``True`` if depth values should be written to the depth target.");
|
||||
bool32 DepthWrites = false;
|
||||
bool DepthWrites = false;
|
||||
DOCUMENT("``True`` if stencil operations should be performed.");
|
||||
bool32 StencilEnable = false;
|
||||
bool StencilEnable = false;
|
||||
DOCUMENT("The mask for reading stencil values.");
|
||||
byte StencilReadMask = 0;
|
||||
DOCUMENT("The mask for writing stencil values.");
|
||||
@@ -447,9 +447,9 @@ struct Blend
|
||||
LogicOp Logic = LogicOp::NoOp;
|
||||
|
||||
DOCUMENT("``True`` if blending is enabled for this target.");
|
||||
bool32 Enabled = false;
|
||||
bool Enabled = false;
|
||||
DOCUMENT("``True`` if the logic operation in :data:`Logic` should be used.");
|
||||
bool32 LogicEnabled = false;
|
||||
bool LogicEnabled = false;
|
||||
DOCUMENT("The mask for writes to the render target.");
|
||||
byte WriteMask = 0;
|
||||
};
|
||||
@@ -461,12 +461,12 @@ struct BlendState
|
||||
ResourceId State;
|
||||
|
||||
DOCUMENT("``True`` if alpha-to-coverage should be used when blending to an MSAA target.");
|
||||
bool32 AlphaToCoverage = false;
|
||||
bool AlphaToCoverage = false;
|
||||
DOCUMENT(R"(``True`` if independent blending for each target should be used.
|
||||
|
||||
``False`` if the first blend should be applied to all targets.
|
||||
)");
|
||||
bool32 IndependentBlend = false;
|
||||
bool IndependentBlend = false;
|
||||
|
||||
DOCUMENT("A list of :class:`D3D11_Blend` describing the blend operations for each target.");
|
||||
rdctype::array<Blend> Blends;
|
||||
@@ -496,9 +496,9 @@ struct OM
|
||||
DOCUMENT("A :class:`D3D11_View` with details of the bound depth-stencil target.");
|
||||
View DepthTarget;
|
||||
DOCUMENT("``True`` if depth access to the depth-stencil target is read-only.");
|
||||
bool32 DepthReadOnly = false;
|
||||
bool DepthReadOnly = false;
|
||||
DOCUMENT("``True`` if stenncil access to the depth-stencil target is read-only.");
|
||||
bool32 StencilReadOnly = false;
|
||||
bool StencilReadOnly = false;
|
||||
};
|
||||
|
||||
DOCUMENT("The full current D3D11 pipeline state.");
|
||||
|
||||
@@ -57,7 +57,7 @@ if this is the first element.
|
||||
uint32_t ByteOffset = 0;
|
||||
|
||||
DOCUMENT("``True`` if the vertex data is instance-rate.");
|
||||
bool32 PerInstance = false;
|
||||
bool PerInstance = false;
|
||||
|
||||
DOCUMENT(R"(If :data:`PerInstance` is ``True`` then this is how many times each instance data is
|
||||
used before advancing to the next instance.
|
||||
@@ -125,7 +125,7 @@ DOCUMENT("Describes the details of a D3D12 resource view - any one of UAV, SRV,
|
||||
struct View
|
||||
{
|
||||
DOCUMENT("``True`` if this view is a root parameter (i.e. not in a table).");
|
||||
bool32 Immediate = false;
|
||||
bool Immediate = false;
|
||||
DOCUMENT("The index in the original root signature that this descriptor came from.");
|
||||
uint32_t RootElement = ~0U;
|
||||
DOCUMENT("The index in the the parent descriptor table where this descriptor came from.");
|
||||
@@ -177,7 +177,7 @@ DOCUMENT("Describes the details of a sampler descriptor.");
|
||||
struct Sampler
|
||||
{
|
||||
DOCUMENT("``True`` if this view is a static sampler (i.e. not in a table).");
|
||||
bool32 Immediate = 0;
|
||||
bool Immediate = 0;
|
||||
DOCUMENT("The index in the original root signature that this descriptor came from.");
|
||||
uint32_t RootElement = ~0U;
|
||||
DOCUMENT("The index in the the parent descriptor table where this descriptor came from.");
|
||||
@@ -220,7 +220,7 @@ DOCUMENT("Describes the details of a constant buffer view descriptor.");
|
||||
struct CBuffer
|
||||
{
|
||||
DOCUMENT("``True`` if this view is a root constant (i.e. not in a table).");
|
||||
bool32 Immediate = false;
|
||||
bool Immediate = false;
|
||||
DOCUMENT("The index in the original root signature that this descriptor came from.");
|
||||
uint32_t RootElement = ~0U;
|
||||
DOCUMENT("The index in the the parent descriptor table where this descriptor came from.");
|
||||
@@ -345,7 +345,7 @@ struct RasterizerState
|
||||
DOCUMENT(R"(``True`` if counter-clockwise polygons are front-facing.
|
||||
``False`` if clockwise polygons are front-facing.
|
||||
)");
|
||||
bool32 FrontCCW = false;
|
||||
bool FrontCCW = false;
|
||||
DOCUMENT("The fixed depth bias value to apply to z-values.");
|
||||
int32_t DepthBias = 0;
|
||||
DOCUMENT(R"(The clamp value for calculated depth bias from :data:`DepthBias` and
|
||||
@@ -355,19 +355,19 @@ struct RasterizerState
|
||||
DOCUMENT("The slope-scaled depth bias value to apply to z-values.");
|
||||
float SlopeScaledDepthBias = 0.0f;
|
||||
DOCUMENT("``True`` if pixels outside of the near and far depth planes should be clipped.");
|
||||
bool32 DepthClip = false;
|
||||
bool DepthClip = false;
|
||||
DOCUMENT("``True`` if the quadrilateral MSAA algorithm should be used on MSAA targets.");
|
||||
bool32 MultisampleEnable = false;
|
||||
bool MultisampleEnable = false;
|
||||
DOCUMENT(
|
||||
"``True`` if lines should be anti-aliased. Ignored if :data:`MultisampleEnable` is "
|
||||
"``False``.");
|
||||
bool32 AntialiasedLineEnable = false;
|
||||
bool AntialiasedLineEnable = false;
|
||||
DOCUMENT(R"(A sample count to force rasterization to when UAV rendering or rasterizing, or 0 to
|
||||
not force any sample count.
|
||||
)");
|
||||
uint32_t ForcedSampleCount = 0;
|
||||
DOCUMENT("``True`` if a conservative rasterization algorithm should be used.");
|
||||
bool32 ConservativeRasterization = false;
|
||||
bool ConservativeRasterization = false;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes the rasterization state of the D3D12 pipeline.");
|
||||
@@ -403,13 +403,13 @@ DOCUMENT("Describes the state of the depth-stencil state in the PSO.");
|
||||
struct DepthStencilState
|
||||
{
|
||||
DOCUMENT("``True`` if depth testing should be performed.");
|
||||
bool32 DepthEnable = false;
|
||||
bool DepthEnable = false;
|
||||
DOCUMENT("``True`` if depth values should be written to the depth target.");
|
||||
bool32 DepthWrites = false;
|
||||
bool DepthWrites = false;
|
||||
DOCUMENT("The :class:`CompareFunc` to use for testing depth values.");
|
||||
CompareFunc DepthFunc = CompareFunc::AlwaysTrue;
|
||||
DOCUMENT("``True`` if stencil operations should be performed.");
|
||||
bool32 StencilEnable = false;
|
||||
bool StencilEnable = false;
|
||||
DOCUMENT("The mask for reading stencil values.");
|
||||
byte StencilReadMask = 0;
|
||||
DOCUMENT("The mask for writing stencil values.");
|
||||
@@ -448,9 +448,9 @@ struct Blend
|
||||
LogicOp Logic = LogicOp::NoOp;
|
||||
|
||||
DOCUMENT("``True`` if blending is enabled for this target.");
|
||||
bool32 Enabled = false;
|
||||
bool Enabled = false;
|
||||
DOCUMENT("``True`` if the logic operation in :data:`Logic` should be used.");
|
||||
bool32 LogicEnabled = false;
|
||||
bool LogicEnabled = false;
|
||||
DOCUMENT("The mask for writes to the render target.");
|
||||
byte WriteMask = 0;
|
||||
};
|
||||
@@ -459,12 +459,12 @@ DOCUMENT("Describes the blend state in the PSO.");
|
||||
struct BlendState
|
||||
{
|
||||
DOCUMENT("``True`` if alpha-to-coverage should be used when blending to an MSAA target.");
|
||||
bool32 AlphaToCoverage = false;
|
||||
bool AlphaToCoverage = false;
|
||||
DOCUMENT(R"(``True`` if independent blending for each target should be used.
|
||||
|
||||
``False`` if the first blend should be applied to all targets.
|
||||
)");
|
||||
bool32 IndependentBlend = false;
|
||||
bool IndependentBlend = false;
|
||||
|
||||
DOCUMENT("A list of :class:`D3D12_Blend` describing the blend operations for each target.");
|
||||
rdctype::array<Blend> Blends;
|
||||
@@ -487,9 +487,9 @@ struct OM
|
||||
DOCUMENT("A :class:`D3D12_View` with details of the bound depth-stencil target.");
|
||||
View DepthTarget;
|
||||
DOCUMENT("``True`` if depth access to the depth-stencil target is read-only.");
|
||||
bool32 DepthReadOnly = false;
|
||||
bool DepthReadOnly = false;
|
||||
DOCUMENT("``True`` if stenncil access to the depth-stencil target is read-only.");
|
||||
bool32 StencilReadOnly = false;
|
||||
bool StencilReadOnly = false;
|
||||
|
||||
DOCUMENT("The sample count used for rendering.");
|
||||
uint32_t multiSampleCount = 1;
|
||||
@@ -523,7 +523,7 @@ struct State
|
||||
DOCUMENT(R"(``True`` if :data:`name` was assigned by the application, otherwise it's autogenerated
|
||||
based on the ID.
|
||||
)");
|
||||
bool32 customName = false;
|
||||
bool customName = false;
|
||||
|
||||
DOCUMENT("The name of the pipeline state object.");
|
||||
rdctype::str name;
|
||||
|
||||
@@ -112,17 +112,17 @@ struct ResourceFormat
|
||||
)");
|
||||
ResourceFormatType type;
|
||||
|
||||
DOCUMENT("The number of components in each element.");
|
||||
uint32_t compCount;
|
||||
DOCUMENT("The width in bytes of each component.");
|
||||
uint32_t compByteWidth;
|
||||
DOCUMENT("The :class:`type <CompType>` of each component.");
|
||||
CompType compType;
|
||||
DOCUMENT("The number of components in each element.");
|
||||
uint8_t compCount;
|
||||
DOCUMENT("The width in bytes of each component.");
|
||||
uint8_t compByteWidth;
|
||||
|
||||
DOCUMENT("``True`` if the components are to be read in ``BGRA`` order.");
|
||||
bool32 bgraOrder;
|
||||
bool bgraOrder;
|
||||
DOCUMENT("``True`` if the components are SRGB corrected on read and write.");
|
||||
bool32 srgbCorrected;
|
||||
bool srgbCorrected;
|
||||
};
|
||||
|
||||
DECLARE_REFLECTION_STRUCT(ResourceFormat);
|
||||
@@ -152,7 +152,7 @@ struct BufferDescription
|
||||
DOCUMENT(R"(``True`` if the name was assigned by the application, otherwise it's autogenerated
|
||||
based on the ID.
|
||||
)");
|
||||
bool32 customName;
|
||||
bool customName;
|
||||
|
||||
DOCUMENT("The way this buffer will be used in the pipeline.");
|
||||
BufferCategory creationFlags;
|
||||
@@ -172,7 +172,7 @@ struct TextureDescription
|
||||
DOCUMENT(R"(``True`` if the name was assigned by the application, otherwise it's autogenerated
|
||||
based on the ID.
|
||||
)");
|
||||
bool32 customName;
|
||||
bool customName;
|
||||
|
||||
DOCUMENT("The :class:`ResourceFormat` that describes the format of each pixel in the texture.");
|
||||
ResourceFormat format;
|
||||
@@ -196,7 +196,7 @@ based on the ID.
|
||||
ResourceId ID;
|
||||
|
||||
DOCUMENT("``True`` if this texture is used as a cubemap or cubemap array.");
|
||||
bool32 cubemap;
|
||||
bool cubemap;
|
||||
|
||||
DOCUMENT("How many mips this texture has, will be at least 1.");
|
||||
uint32_t mips;
|
||||
@@ -604,7 +604,7 @@ Currently this information is only available on D3D11 and is fairly API-centric.
|
||||
struct FrameStatistics
|
||||
{
|
||||
DOCUMENT("``True`` if the statistics in this structure are valid.");
|
||||
bool32 recorded;
|
||||
bool recorded;
|
||||
|
||||
DOCUMENT("A list of constant buffer bind statistics, one per each :class:`stage <ShaderStage>`.");
|
||||
ConstantBindStats constants[ENUM_ARRAY_SIZE(ShaderStage)];
|
||||
@@ -873,7 +873,7 @@ different to the above, and lets the UI make decisions e.g. to flip rendering of
|
||||
DOCUMENT(R"(``True`` if the capture was loaded successfully but running in a degraded mode - e.g.
|
||||
with software rendering, or with some functionality disabled due to lack of support.
|
||||
)");
|
||||
bool32 degraded;
|
||||
bool degraded;
|
||||
};
|
||||
|
||||
DECLARE_REFLECTION_STRUCT(APIProperties);
|
||||
@@ -1008,10 +1008,10 @@ struct PixelModification
|
||||
uint32_t eventID;
|
||||
|
||||
DOCUMENT("``True`` if this event came as part of an arbitrary shader write.");
|
||||
bool32 directShaderWrite;
|
||||
bool directShaderWrite;
|
||||
|
||||
DOCUMENT("``True`` if no pixel shader was bound at this event.");
|
||||
bool32 unboundPS;
|
||||
bool unboundPS;
|
||||
|
||||
DOCUMENT(R"(A 0-based index of which fragment this modification corresponds to, in the case that
|
||||
multiple fragments from a single draw wrote to a pixel.
|
||||
@@ -1033,21 +1033,21 @@ pixel.
|
||||
ModificationValue postMod;
|
||||
|
||||
DOCUMENT("``True`` if the sample mask eliminated this fragment.");
|
||||
bool32 sampleMasked;
|
||||
bool sampleMasked;
|
||||
DOCUMENT("``True`` if the backface culling test eliminated this fragment.");
|
||||
bool32 backfaceCulled;
|
||||
bool backfaceCulled;
|
||||
DOCUMENT("``True`` if depth near/far clipping eliminated this fragment.");
|
||||
bool32 depthClipped;
|
||||
bool depthClipped;
|
||||
DOCUMENT("``True`` if viewport clipping eliminated this fragment.");
|
||||
bool32 viewClipped;
|
||||
bool viewClipped;
|
||||
DOCUMENT("``True`` if scissor clipping eliminated this fragment.");
|
||||
bool32 scissorClipped;
|
||||
bool scissorClipped;
|
||||
DOCUMENT("``True`` if the pixel shader executed a discard on this fragment.");
|
||||
bool32 shaderDiscarded;
|
||||
bool shaderDiscarded;
|
||||
DOCUMENT("``True`` if depth testing eliminated this fragment.");
|
||||
bool32 depthTestFailed;
|
||||
bool depthTestFailed;
|
||||
DOCUMENT("``True`` if stencil testing eliminated this fragment.");
|
||||
bool32 stencilTestFailed;
|
||||
bool stencilTestFailed;
|
||||
|
||||
DOCUMENT(R"(Determine if this fragment passed all tests and wrote to the texture.
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ DOCUMENT(R"(Describes the configuration for a single vertex attribute.
|
||||
struct VertexAttribute
|
||||
{
|
||||
DOCUMENT("``True`` if this vertex attribute is enabled.");
|
||||
bool32 Enabled = false;
|
||||
bool Enabled = false;
|
||||
DOCUMENT("The :class:`ResourceFormat` of the vertex attribute.");
|
||||
ResourceFormat Format;
|
||||
|
||||
@@ -84,7 +84,7 @@ struct VertexInput
|
||||
DOCUMENT("The :class:`ResourceId` of the index buffer.");
|
||||
ResourceId ibuffer;
|
||||
DOCUMENT("``True`` if primitive restart is enabled for strip primitives.");
|
||||
bool32 primitiveRestart = false;
|
||||
bool primitiveRestart = false;
|
||||
DOCUMENT("The index value to use to indicate a strip restart.");
|
||||
uint32_t restartIndex = 0;
|
||||
|
||||
@@ -92,7 +92,7 @@ struct VertexInput
|
||||
|
||||
``False`` if the provoking vertex is the first one.
|
||||
)");
|
||||
bool32 provokingVertexLast = false;
|
||||
bool provokingVertexLast = false;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes an OpenGL shader stage.");
|
||||
@@ -106,23 +106,23 @@ struct Shader
|
||||
DOCUMENT(R"(``True`` if :data:`ShaderName` was assigned by the application, otherwise it's
|
||||
autogenerated based on the ID.
|
||||
)");
|
||||
bool32 customShaderName = false;
|
||||
bool customShaderName = false;
|
||||
|
||||
DOCUMENT("The name of the program object.");
|
||||
rdctype::str ProgramName;
|
||||
DOCUMENT(R"(``True`` if :data:`ProgramName` was assigned by the application, otherwise it's
|
||||
autogenerated based on the ID.
|
||||
)");
|
||||
bool32 customProgramName = false;
|
||||
bool customProgramName = false;
|
||||
|
||||
DOCUMENT("``True`` if a program pipeline object is in use.");
|
||||
bool32 PipelineActive = false;
|
||||
bool PipelineActive = false;
|
||||
DOCUMENT("The name of the pipeline object.");
|
||||
rdctype::str PipelineName;
|
||||
DOCUMENT(R"(``True`` if :data:`PipelineName` was assigned by the application, otherwise it's
|
||||
autogenerated based on the ID.
|
||||
)");
|
||||
bool32 customPipelineName = false;
|
||||
bool customPipelineName = false;
|
||||
|
||||
DOCUMENT("A :class:`ShaderReflection` describing the reflection data for this shader.");
|
||||
ShaderReflection *ShaderDetails = NULL;
|
||||
@@ -146,20 +146,20 @@ struct FixedVertexProcessing
|
||||
DOCUMENT("A list of ``float`` giving the default outer level of tessellation.");
|
||||
float defaultOuterLevel[4] = {0.0f, 0.0f, 0.0f, 0.0f};
|
||||
DOCUMENT("``True`` if primitives should be discarded during rasterization.");
|
||||
bool32 discard = false;
|
||||
bool discard = false;
|
||||
|
||||
DOCUMENT("A list of ``bool`` determining which user clipping planes are enabled.");
|
||||
bool32 clipPlanes[8] = {false, false, false, false, false, false, false, false};
|
||||
bool clipPlanes[8] = {false, false, false, false, false, false, false, false};
|
||||
DOCUMENT(R"(``True`` if the clipping origin should be in the lower left.
|
||||
|
||||
``False`` if it's in the upper left.
|
||||
)");
|
||||
bool32 clipOriginLowerLeft = false;
|
||||
bool clipOriginLowerLeft = false;
|
||||
DOCUMENT(R"(``True`` if the clip-space Z goes from ``-1`` to ``1``.
|
||||
|
||||
``False`` if the clip-space Z goes from ``0`` to ``1``.
|
||||
)");
|
||||
bool32 clipNegativeOneToOne = false;
|
||||
bool clipNegativeOneToOne = false;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes the details of a texture.");
|
||||
@@ -206,7 +206,7 @@ struct Sampler
|
||||
DOCUMENT("The :class:`TextureFilter` describing the filtering mode.");
|
||||
TextureFilter Filter;
|
||||
DOCUMENT("``True`` if seamless cubemap filtering is enabled for this texture.");
|
||||
bool32 SeamlessCube = false;
|
||||
bool SeamlessCube = false;
|
||||
DOCUMENT("The maximum anisotropic filtering level to use.");
|
||||
float MaxAniso = 0.0f;
|
||||
DOCUMENT("The maximum mip level that can be used.");
|
||||
@@ -249,15 +249,15 @@ struct ImageLoadStore
|
||||
DOCUMENT(R"(``True`` if multiple layers are bound together to the image.
|
||||
``False`` if only one layer is bound.
|
||||
)");
|
||||
bool32 Layered = false;
|
||||
bool Layered = false;
|
||||
DOCUMENT("The slice of the texture that's used in the attachment.");
|
||||
uint32_t Layer = 0;
|
||||
DOCUMENT("The :class:`TextureDim` of the texture.");
|
||||
TextureDim ResType = TextureDim::Unknown;
|
||||
DOCUMENT("``True`` if loading from the image is allowed.");
|
||||
bool32 readAllowed = false;
|
||||
bool readAllowed = false;
|
||||
DOCUMENT("``True`` if storing to the image is allowed.");
|
||||
bool32 writeAllowed = false;
|
||||
bool writeAllowed = false;
|
||||
DOCUMENT("The :class:`ResourceFormat` that the image is bound as.");
|
||||
ResourceFormat Format;
|
||||
};
|
||||
@@ -274,9 +274,9 @@ struct Feedback
|
||||
DOCUMENT("A list of ``int`` with the buffer byte sizes.");
|
||||
uint64_t Size[4] = {0, 0, 0, 0};
|
||||
DOCUMENT("``True`` if the transform feedback object is currently active.");
|
||||
bool32 Active = false;
|
||||
bool Active = false;
|
||||
DOCUMENT("``True`` if the transform feedback object is currently paused.");
|
||||
bool32 Paused = false;
|
||||
bool Paused = false;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes a single OpenGL viewport.");
|
||||
@@ -308,7 +308,7 @@ struct Scissor
|
||||
DOCUMENT("The height of the scissor region.");
|
||||
int32_t Height = 0;
|
||||
DOCUMENT("``True`` if this scissor region is enabled.");
|
||||
bool32 Enabled = false;
|
||||
bool Enabled = false;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes the rasterizer state toggles.");
|
||||
@@ -321,7 +321,7 @@ struct RasterizerState
|
||||
DOCUMENT(R"(``True`` if counter-clockwise polygons are front-facing.
|
||||
``False`` if clockwise polygons are front-facing.
|
||||
)");
|
||||
bool32 FrontCCW = false;
|
||||
bool FrontCCW = false;
|
||||
DOCUMENT("The fixed depth bias value to apply to z-values.");
|
||||
float DepthBias = 0.0f;
|
||||
DOCUMENT("The slope-scaled depth bias value to apply to z-values.");
|
||||
@@ -333,35 +333,35 @@ struct RasterizerState
|
||||
DOCUMENT(R"(``True`` if pixels outside of the near and far depth planes should be clamped and
|
||||
to ``0.0`` to ``1.0`` and not clipped.
|
||||
)");
|
||||
bool32 DepthClamp = false;
|
||||
bool DepthClamp = false;
|
||||
|
||||
DOCUMENT("``True`` if multisampling should be used during rendering.");
|
||||
bool32 MultisampleEnable = false;
|
||||
bool MultisampleEnable = false;
|
||||
DOCUMENT("``True`` if rendering should happen at sample-rate frequency.");
|
||||
bool32 SampleShading = false;
|
||||
bool SampleShading = false;
|
||||
DOCUMENT(R"(``True`` if the generated samples should be bitwise ``AND`` masked with
|
||||
:data:`SampleMaskValue`.
|
||||
)");
|
||||
bool32 SampleMask = false;
|
||||
bool SampleMask = false;
|
||||
DOCUMENT("The sample mask value that should be masked against the generated coverage.");
|
||||
uint32_t SampleMaskValue = ~0U;
|
||||
DOCUMENT(R"(``True`` if a temporary mask using :data:`SampleCoverageValue` should be used to
|
||||
resolve the final output color.
|
||||
)");
|
||||
bool32 SampleCoverage = false;
|
||||
bool SampleCoverage = false;
|
||||
DOCUMENT("``True`` if the temporary sample coverage mask should be inverted.");
|
||||
bool32 SampleCoverageInvert = false;
|
||||
bool SampleCoverageInvert = false;
|
||||
DOCUMENT("The sample coverage value used if :data:`SampleCoverage` is ``True``.");
|
||||
float SampleCoverageValue = 1.0f;
|
||||
DOCUMENT("``True`` if alpha-to-coverage should be used when blending to an MSAA target.");
|
||||
bool32 SampleAlphaToCoverage = false;
|
||||
bool SampleAlphaToCoverage = false;
|
||||
DOCUMENT("``True`` if alpha-to-one should be used when blending to an MSAA target.");
|
||||
bool32 SampleAlphaToOne = false;
|
||||
bool SampleAlphaToOne = false;
|
||||
DOCUMENT("The minimum sample shading rate.");
|
||||
float MinSampleShadingRate = 0.0f;
|
||||
|
||||
DOCUMENT("``True`` if the point size can be programmably exported from a shader.");
|
||||
bool32 ProgrammablePointSize = false;
|
||||
bool ProgrammablePointSize = false;
|
||||
DOCUMENT("The fixed point size in pixels.");
|
||||
float PointSize = 1.0f;
|
||||
DOCUMENT("The fixed line width in pixels.");
|
||||
@@ -369,7 +369,7 @@ resolve the final output color.
|
||||
DOCUMENT("The threshold value at which points are clipped if they exceed this size.");
|
||||
float PointFadeThreshold = 0.0f;
|
||||
DOCUMENT("``True`` if the point sprite texture origin is upper-left. ``False`` if lower-left.");
|
||||
bool32 PointOriginUpperLeft = false;
|
||||
bool PointOriginUpperLeft = false;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes the rasterization state of the OpenGL pipeline.");
|
||||
@@ -389,13 +389,13 @@ DOCUMENT("Describes the depth state.");
|
||||
struct DepthState
|
||||
{
|
||||
DOCUMENT("``True`` if depth testing should be performed.");
|
||||
bool32 DepthEnable = false;
|
||||
bool DepthEnable = false;
|
||||
DOCUMENT("The :class:`CompareFunc` to use for testing depth values.");
|
||||
CompareFunc DepthFunc = CompareFunc::AlwaysTrue;
|
||||
DOCUMENT("``True`` if depth values should be written to the depth target.");
|
||||
bool32 DepthWrites = false;
|
||||
bool DepthWrites = false;
|
||||
DOCUMENT("``True`` if depth bounds tests should be applied.");
|
||||
bool32 DepthBounds = false;
|
||||
bool DepthBounds = false;
|
||||
DOCUMENT("The near plane bounding value.");
|
||||
double NearBound = 0.0;
|
||||
DOCUMENT("The far plane bounding value.");
|
||||
@@ -425,7 +425,7 @@ DOCUMENT("Describes the stencil state.");
|
||||
struct StencilState
|
||||
{
|
||||
DOCUMENT("``True`` if stencil operations should be performed.");
|
||||
bool32 StencilEnable = false;
|
||||
bool StencilEnable = false;
|
||||
|
||||
DOCUMENT("A :class:`GL_StencilFace` describing what happens for front-facing polygons.");
|
||||
StencilFace m_FrontFace;
|
||||
@@ -488,7 +488,7 @@ struct Blend
|
||||
LogicOp Logic = LogicOp::NoOp;
|
||||
|
||||
DOCUMENT("``True`` if blending is enabled for this target.");
|
||||
bool32 Enabled = false;
|
||||
bool Enabled = false;
|
||||
DOCUMENT("The mask for writes to the render target.");
|
||||
byte WriteMask = 0;
|
||||
};
|
||||
@@ -508,9 +508,9 @@ struct FrameBuffer
|
||||
{
|
||||
DOCUMENT(
|
||||
"``True`` if sRGB correction should be applied when writing to an sRGB-formatted texture.");
|
||||
bool32 FramebufferSRGB = false;
|
||||
bool FramebufferSRGB = false;
|
||||
DOCUMENT("``True`` if dithering should be used when writing to color buffers.");
|
||||
bool32 Dither = false;
|
||||
bool Dither = false;
|
||||
|
||||
DOCUMENT("A :class:`GL_FBO` with the information about a draw framebuffer.");
|
||||
FBO m_DrawFBO;
|
||||
@@ -533,9 +533,9 @@ struct Hints
|
||||
DOCUMENT("A :class:`QualityHint` with the texture compression hint.");
|
||||
QualityHint TexCompression = QualityHint::DontCare;
|
||||
DOCUMENT("``True`` if line smoothing is enabled.");
|
||||
bool32 LineSmoothEnabled = false;
|
||||
bool LineSmoothEnabled = false;
|
||||
DOCUMENT("``True`` if polygon smoothing is enabled.");
|
||||
bool32 PolySmoothEnabled = false;
|
||||
bool PolySmoothEnabled = false;
|
||||
};
|
||||
|
||||
DOCUMENT("The full current OpenGL pipeline state.");
|
||||
|
||||
@@ -39,7 +39,6 @@ inline const char *TypeName();
|
||||
}
|
||||
|
||||
typedef uint8_t byte;
|
||||
typedef uint32_t bool32;
|
||||
|
||||
// Guidelines for documentation:
|
||||
//
|
||||
@@ -1356,7 +1355,7 @@ This function will block until the control connection is ready, or an error occu
|
||||
:rtype: TargetControl
|
||||
)");
|
||||
extern "C" RENDERDOC_API ITargetControl *RENDERDOC_CC RENDERDOC_CreateTargetControl(
|
||||
const char *host, uint32_t ident, const char *clientName, bool32 forceConnection);
|
||||
const char *host, uint32_t ident, const char *clientName, bool forceConnection);
|
||||
|
||||
DOCUMENT(R"(Repeatedly query to enumerate which targets are active on a given machine and their
|
||||
idents.
|
||||
@@ -1413,7 +1412,7 @@ This function will block until a remote connection tells the server to shut down
|
||||
)");
|
||||
extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_BecomeRemoteServer(const char *listenhost,
|
||||
uint32_t port,
|
||||
volatile bool32 *killReplay);
|
||||
volatile bool *killReplay);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Injection/execution capture functions.
|
||||
@@ -1443,9 +1442,9 @@ This function must be called when the process is running with administrator/supe
|
||||
with :ref:`StopGlobalHook` before the application is closed.
|
||||
:rtype: ``bool``
|
||||
)");
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC RENDERDOC_StartGlobalHook(const char *pathmatch,
|
||||
const char *logfile,
|
||||
const CaptureOptions &opts);
|
||||
extern "C" RENDERDOC_API bool RENDERDOC_CC RENDERDOC_StartGlobalHook(const char *pathmatch,
|
||||
const char *logfile,
|
||||
const CaptureOptions &opts);
|
||||
|
||||
DOCUMENT(R"(Stop the global hook that was activated by :ref:`StartGlobalHook`.
|
||||
|
||||
@@ -1461,14 +1460,14 @@ This function can only be called if global hooking is supported (see :ref:`CanGl
|
||||
:return: ``True`` if the hook is active, or ``False`` if the hook is inactive.
|
||||
:rtype: ``bool``
|
||||
)");
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC RENDERDOC_IsGlobalHookActive();
|
||||
extern "C" RENDERDOC_API bool RENDERDOC_CC RENDERDOC_IsGlobalHookActive();
|
||||
|
||||
DOCUMENT(R"(Determines if the global hook is supported on the current platform and configuration.
|
||||
|
||||
:return: ``True`` if global hooking can be used on the platform, ``False`` if not.
|
||||
:rtype: ``bool``
|
||||
)");
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC RENDERDOC_CanGlobalHook();
|
||||
extern "C" RENDERDOC_API bool RENDERDOC_CC RENDERDOC_CanGlobalHook();
|
||||
|
||||
DOCUMENT(R"(Launch an application and inject into it to allow capturing.
|
||||
|
||||
@@ -1487,7 +1486,7 @@ DOCUMENT(R"(Launch an application and inject into it to allow capturing.
|
||||
extern "C" RENDERDOC_API uint32_t RENDERDOC_CC
|
||||
RENDERDOC_ExecuteAndInject(const char *app, const char *workingDir, const char *cmdLine,
|
||||
const rdctype::array<EnvironmentModification> &env, const char *logfile,
|
||||
const CaptureOptions &opts, bool32 waitForExit);
|
||||
const CaptureOptions &opts, bool waitForExit);
|
||||
|
||||
DOCUMENT(R"(Where supported by operating system and permissions, inject into a running process.
|
||||
|
||||
@@ -1501,7 +1500,7 @@ DOCUMENT(R"(Where supported by operating system and permissions, inject into a r
|
||||
)");
|
||||
extern "C" RENDERDOC_API uint32_t RENDERDOC_CC
|
||||
RENDERDOC_InjectIntoProcess(uint32_t pid, const rdctype::array<EnvironmentModification> &env,
|
||||
const char *logfile, const CaptureOptions &opts, bool32 waitForExit);
|
||||
const char *logfile, const CaptureOptions &opts, bool waitForExit);
|
||||
|
||||
DOCUMENT(R"(When debugging RenderDoc it can be useful to capture itself by doing a side-build with a
|
||||
temporary name. This function wraps up the use of the in-application API to start a capture.
|
||||
@@ -1539,7 +1538,7 @@ RENDERDOC_InitGlobalEnv(GlobalEnvironment env, const rdctype::array<rdctype::str
|
||||
|
||||
DOCUMENT("Internal function for triggering exception handler.");
|
||||
extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_TriggerExceptionHandler(void *exceptionPtrs,
|
||||
bool32 crashed);
|
||||
bool crashed);
|
||||
|
||||
DOCUMENT(R"(Sets the location for the diagnostic log output, shared by captured programs and the
|
||||
analysis program.
|
||||
|
||||
@@ -298,7 +298,7 @@ DOCUMENT(R"(Represents the component type of a channel in a texture or element i
|
||||
|
||||
A double-precision (64-bit) floating point value.
|
||||
)");
|
||||
enum class CompType : uint32_t
|
||||
enum class CompType : uint8_t
|
||||
{
|
||||
Typeless = 0,
|
||||
Float,
|
||||
@@ -1116,7 +1116,7 @@ or formats that don't have equal byte-multiple sizes for each channel.
|
||||
|
||||
The pixel data is in an opaque YUV format.
|
||||
)");
|
||||
enum class ResourceFormatType : uint32_t
|
||||
enum class ResourceFormatType : uint8_t
|
||||
{
|
||||
Regular = 0,
|
||||
Undefined,
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
#include "replay_enums.h"
|
||||
|
||||
typedef uint8_t byte;
|
||||
typedef uint32_t bool32;
|
||||
|
||||
DOCUMENT("A ``float`` 4 component vector.")
|
||||
struct FloatVecVal
|
||||
@@ -180,13 +179,13 @@ struct ShaderVariable
|
||||
VarType type;
|
||||
|
||||
DOCUMENT("``True`` if the contents of this variable should be displayed as hex.");
|
||||
bool32 displayAsHex;
|
||||
bool displayAsHex;
|
||||
|
||||
DOCUMENT("The :class:`contents <ShaderValue>` of this variable if it has no members.");
|
||||
ShaderValue value;
|
||||
|
||||
DOCUMENT("``True`` if this variable is a structure and not an array or basic type.");
|
||||
bool32 isStruct;
|
||||
bool isStruct;
|
||||
|
||||
DOCUMENT("The members of this variable as a list of :class:`ShaderValue`.");
|
||||
rdctype::array<ShaderVariable> members;
|
||||
@@ -268,13 +267,10 @@ struct SigParameter
|
||||
rdctype::str varName;
|
||||
DOCUMENT("The semantic name of this variable, if the API uses semantic matching for bindings.");
|
||||
rdctype::str semanticName;
|
||||
DOCUMENT("The semantic index of this variable - see :data:`semanticName`.");
|
||||
uint32_t semanticIndex;
|
||||
DOCUMENT("The combined semantic name and index.");
|
||||
rdctype::str semanticIdxName;
|
||||
|
||||
DOCUMENT("A convenience flag - ``True`` if the semantic name is unique and no index is needed.");
|
||||
bool32 needSemanticIndex;
|
||||
DOCUMENT("The semantic index of this variable - see :data:`semanticName`.");
|
||||
uint32_t semanticIndex;
|
||||
|
||||
DOCUMENT(R"(The index of the shader register/binding used to store this signature element.
|
||||
|
||||
@@ -297,6 +293,9 @@ shader itself, for APIs that pack signatures together.
|
||||
)");
|
||||
uint8_t channelUsedMask;
|
||||
|
||||
DOCUMENT("A convenience flag - ``True`` if the semantic name is unique and no index is needed.");
|
||||
bool needSemanticIndex;
|
||||
|
||||
DOCUMENT("The number of components used to store this element. See :data:`compType`.");
|
||||
uint32_t compCount;
|
||||
DOCUMENT(
|
||||
@@ -319,13 +318,13 @@ struct ShaderVariableDescriptor
|
||||
DOCUMENT("The :class:`VarType` that this basic constant stores.");
|
||||
VarType type;
|
||||
DOCUMENT("The number of rows in this matrix.");
|
||||
uint32_t rows;
|
||||
uint8_t rows;
|
||||
DOCUMENT("The number of columns in this matrix.");
|
||||
uint32_t cols;
|
||||
uint8_t cols;
|
||||
DOCUMENT("``True`` if the matrix is stored as row major instead of column major.");
|
||||
bool rowMajorStorage;
|
||||
DOCUMENT("The number of elements in the array, or 1 if it's not an array.");
|
||||
uint32_t elements;
|
||||
DOCUMENT("``True`` if the matrix is stored as row major instead of column major.");
|
||||
bool32 rowMajorStorage;
|
||||
DOCUMENT("The number of bytes between the start of one element in the array and the next.");
|
||||
uint32_t arrayStride;
|
||||
DOCUMENT("The name of the type of this constant, e.g. a ``struct`` name.");
|
||||
@@ -385,17 +384,17 @@ struct ConstantBlock
|
||||
rdctype::str name;
|
||||
DOCUMENT("The constants contained within this block as a list of :class:`ShaderConstant`.");
|
||||
rdctype::array<ShaderConstant> variables;
|
||||
DOCUMENT(R"(``True`` if the contents are stored in a buffer of memory. If not then they are set by
|
||||
some other API-specific method, such as direct function calls or they may be compile-time
|
||||
specialisation constants.
|
||||
)");
|
||||
bool32 bufferBacked;
|
||||
DOCUMENT(R"(The bindpoint for this block. This is an index in the
|
||||
:data:`ShaderBindpointMapping.ConstantBlocks` list.
|
||||
)");
|
||||
int32_t bindPoint;
|
||||
DOCUMENT("The total number of bytes consumed by all of the constants contained in this block.");
|
||||
uint32_t byteSize;
|
||||
DOCUMENT(R"(``True`` if the contents are stored in a buffer of memory. If not then they are set by
|
||||
some other API-specific method, such as direct function calls or they may be compile-time
|
||||
specialisation constants.
|
||||
)");
|
||||
bool bufferBacked;
|
||||
};
|
||||
|
||||
DECLARE_REFLECTION_STRUCT(ConstantBlock);
|
||||
@@ -407,23 +406,6 @@ directly by means of the API resource binding system.
|
||||
)");
|
||||
struct ShaderResource
|
||||
{
|
||||
DOCUMENT(R"(``True`` if this resource is a sampler.
|
||||
|
||||
If the API has no concept of separate samplers, this will always be ``False``.
|
||||
|
||||
.. note:: this is not exclusive with the other flags in the case of e.g. combined sampler/texture
|
||||
objects.
|
||||
)");
|
||||
bool32 IsSampler;
|
||||
DOCUMENT(R"(``True`` if this resource is a texture, otherwise it is a buffer or sampler (see
|
||||
:data:`IsSampler`).
|
||||
)");
|
||||
bool32 IsTexture;
|
||||
DOCUMENT(R"(``True`` if this resource is available to the shader for reading only, otherwise it is
|
||||
able to be read from and written to arbitrarily.
|
||||
)");
|
||||
bool32 IsReadOnly;
|
||||
|
||||
DOCUMENT("The :class:`TextureDim` that describes the type of this resource.");
|
||||
TextureDim resType;
|
||||
|
||||
@@ -438,6 +420,23 @@ able to be read from and written to arbitrarily.
|
||||
:data:`ShaderBindpointMapping.ReadWriteResources` list as appropriate (see :data:`IsReadOnly`).
|
||||
)");
|
||||
int32_t bindPoint;
|
||||
|
||||
DOCUMENT(R"(``True`` if this resource is a sampler.
|
||||
|
||||
If the API has no concept of separate samplers, this will always be ``False``.
|
||||
|
||||
.. note:: this is not exclusive with the other flags in the case of e.g. combined sampler/texture
|
||||
objects.
|
||||
)");
|
||||
bool IsSampler;
|
||||
DOCUMENT(R"(``True`` if this resource is a texture, otherwise it is a buffer or sampler (see
|
||||
:data:`IsSampler`).
|
||||
)");
|
||||
bool IsTexture;
|
||||
DOCUMENT(R"(``True`` if this resource is available to the shader for reading only, otherwise it is
|
||||
able to be read from and written to arbitrarily.
|
||||
)");
|
||||
bool IsReadOnly;
|
||||
};
|
||||
|
||||
DECLARE_REFLECTION_STRUCT(ShaderResource);
|
||||
@@ -539,11 +538,11 @@ struct BindpointMap
|
||||
int32_t bindset;
|
||||
DOCUMENT("The binding index.");
|
||||
int32_t bind;
|
||||
DOCUMENT(
|
||||
"``True`` if the shader actually uses this resource, otherwise it's declared but unused.");
|
||||
bool32 used;
|
||||
DOCUMENT("If this is an arrayed binding, the number of elements in the array.");
|
||||
uint32_t arraySize;
|
||||
DOCUMENT(
|
||||
"``True`` if the shader actually uses this resource, otherwise it's declared but unused.");
|
||||
bool used;
|
||||
};
|
||||
|
||||
DECLARE_REFLECTION_STRUCT(BindpointMap);
|
||||
|
||||
@@ -36,7 +36,7 @@ struct BindingElement
|
||||
DOCUMENT("The :class:`ResourceId` of the current sampler object.");
|
||||
ResourceId sampler;
|
||||
DOCUMENT("``True`` if this is an immutable sampler binding.");
|
||||
bool32 immutableSampler = false;
|
||||
bool immutableSampler = false;
|
||||
|
||||
DOCUMENT("The name of the current sampler object, if one is bound. Empty for other bindings.");
|
||||
rdctype::str name;
|
||||
@@ -44,7 +44,7 @@ struct BindingElement
|
||||
DOCUMENT(R"(``True`` if :data:`name` was assigned by the application, otherwise it's autogenerated
|
||||
based on the ID.
|
||||
)");
|
||||
bool32 customName = false;
|
||||
bool customName = false;
|
||||
|
||||
DOCUMENT("The :class:`ResourceFormat` that the view uses.");
|
||||
ResourceFormat viewfmt;
|
||||
@@ -86,7 +86,7 @@ based on the ID.
|
||||
DOCUMENT("For samplers - the RGBA border color.");
|
||||
float BorderColor[4];
|
||||
DOCUMENT("For samplers - ``True`` if unnormalized co-ordinates are used in this sampler.");
|
||||
bool32 unnormalized = false;
|
||||
bool unnormalized = false;
|
||||
|
||||
DOCUMENT(R"(For samplers - check if the border color is used in this Vulkan sampler.
|
||||
|
||||
@@ -158,7 +158,7 @@ DOCUMENT("Describes the vulkan input assembly configuration.");
|
||||
struct InputAssembly
|
||||
{
|
||||
DOCUMENT("``True`` if primitive restart is enabled for strip primitives.");
|
||||
bool32 primitiveRestartEnable = false;
|
||||
bool primitiveRestartEnable = false;
|
||||
|
||||
DOCUMENT("The :class:`VK_IB` with the index buffer binding.");
|
||||
IB ibuffer;
|
||||
@@ -187,7 +187,7 @@ struct VertexBinding
|
||||
DOCUMENT("The byte stride between the start of one set of vertex data and the next.");
|
||||
uint32_t bytestride = 0;
|
||||
DOCUMENT("``True`` if the vertex data is instance-rate.");
|
||||
bool32 perInstance = false;
|
||||
bool perInstance = false;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes a single Vulkan vertex buffer binding.")
|
||||
@@ -232,7 +232,7 @@ struct Shader
|
||||
DOCUMENT(R"(``True`` if :data:`name` was assigned by the application, otherwise it's autogenerated
|
||||
based on the ID.
|
||||
)");
|
||||
bool32 customName = false;
|
||||
bool customName = false;
|
||||
|
||||
DOCUMENT("A :class:`ShaderReflection` describing the reflection data for this shader.");
|
||||
ShaderReflection *ShaderDetails = NULL;
|
||||
@@ -307,13 +307,13 @@ struct Raster
|
||||
DOCUMENT(R"(``True`` if pixels outside of the near and far depth planes should be clamped and
|
||||
to ``0.0`` to ``1.0`` and not clipped.
|
||||
)");
|
||||
bool32 depthClampEnable = false;
|
||||
bool depthClampEnable = false;
|
||||
DOCUMENT("``True`` if primitives should be discarded during rasterization.");
|
||||
bool32 rasterizerDiscardEnable = false;
|
||||
bool rasterizerDiscardEnable = false;
|
||||
DOCUMENT(R"(``True`` if counter-clockwise polygons are front-facing.
|
||||
``False`` if clockwise polygons are front-facing.
|
||||
)");
|
||||
bool32 FrontCCW = false;
|
||||
bool FrontCCW = false;
|
||||
DOCUMENT("The polygon fill mode.");
|
||||
FillMode fillMode = FillMode::Solid;
|
||||
DOCUMENT("The polygon culling mode.");
|
||||
@@ -337,7 +337,7 @@ struct MultiSample
|
||||
DOCUMENT("How many samples to use when rasterizing.");
|
||||
uint32_t rasterSamples = 0;
|
||||
DOCUMENT("``True`` if rendering should happen at sample-rate frequency.");
|
||||
bool32 sampleShadingEnable = false;
|
||||
bool sampleShadingEnable = false;
|
||||
DOCUMENT("The minimum sample shading rate.");
|
||||
float minSampleShading = 0.0f;
|
||||
DOCUMENT("A mask that generated samples should be masked with using bitwise ``AND``.");
|
||||
@@ -359,7 +359,7 @@ DOCUMENT("Describes the blend configuration for a given Vulkan attachment.");
|
||||
struct Blend
|
||||
{
|
||||
DOCUMENT("``True`` if blending is enabled for this attachment.");
|
||||
bool32 blendEnable = false;
|
||||
bool blendEnable = false;
|
||||
|
||||
DOCUMENT("A :class:`VK_BlendEquation` describing the blending for colour values.");
|
||||
BlendEquation blend;
|
||||
@@ -374,11 +374,11 @@ DOCUMENT("Describes the pipeline blending state.");
|
||||
struct ColorBlend
|
||||
{
|
||||
DOCUMENT("``True`` if alpha-to-coverage should be used when blending to an MSAA target.");
|
||||
bool32 alphaToCoverageEnable = false;
|
||||
bool alphaToCoverageEnable = false;
|
||||
DOCUMENT("``True`` if alpha-to-one should be used when blending to an MSAA target.");
|
||||
bool32 alphaToOneEnable = false;
|
||||
bool alphaToOneEnable = false;
|
||||
DOCUMENT("``True`` if the logic operation in :data:`logic` should be used.");
|
||||
bool32 logicOpEnable = false;
|
||||
bool logicOpEnable = false;
|
||||
DOCUMENT(
|
||||
"The :class:`LogicOp` to use for logic operations, if :data:`logicOpEnable` is ``True``.");
|
||||
LogicOp logic = LogicOp::NoOp;
|
||||
@@ -413,16 +413,16 @@ DOCUMENT("Describes the pipeline depth-stencil state.");
|
||||
struct DepthStencil
|
||||
{
|
||||
DOCUMENT("``True`` if depth testing should be performed.");
|
||||
bool32 depthTestEnable = false;
|
||||
bool depthTestEnable = false;
|
||||
DOCUMENT("``True`` if depth values should be written to the depth target.");
|
||||
bool32 depthWriteEnable = false;
|
||||
bool depthWriteEnable = false;
|
||||
DOCUMENT("``True`` if depth bounds tests should be applied.");
|
||||
bool32 depthBoundsEnable = false;
|
||||
bool depthBoundsEnable = false;
|
||||
DOCUMENT("The :class:`CompareFunc` to use for testing depth values.");
|
||||
CompareFunc depthCompareOp = CompareFunc::AlwaysTrue;
|
||||
|
||||
DOCUMENT("``True`` if stencil operations should be performed.");
|
||||
bool32 stencilTestEnable = false;
|
||||
bool stencilTestEnable = false;
|
||||
|
||||
DOCUMENT("A :class:`VK_StencilFace` describing what happens for front-facing polygons.");
|
||||
StencilFace front;
|
||||
|
||||
@@ -966,7 +966,7 @@ dds_data load_dds_from_file(FILE *f)
|
||||
}
|
||||
|
||||
ret.format.compByteWidth = 1;
|
||||
ret.format.compCount = header.ddspf.dwRGBBitCount / 8;
|
||||
ret.format.compCount = uint8_t(header.ddspf.dwRGBBitCount / 8);
|
||||
ret.format.compType = CompType::UNorm;
|
||||
ret.format.type = ResourceFormatType::Regular;
|
||||
|
||||
|
||||
@@ -121,8 +121,6 @@ enum RDCDriver
|
||||
RDC_Custom9,
|
||||
};
|
||||
|
||||
typedef uint32_t bool32;
|
||||
|
||||
namespace DXBC
|
||||
{
|
||||
class DXBCFile;
|
||||
@@ -214,7 +212,7 @@ public:
|
||||
bool IsReplayApp() const { return m_Replay; }
|
||||
const string &GetConfigSetting(string name) { return m_ConfigSettings[name]; }
|
||||
void SetConfigSetting(string name, string value) { m_ConfigSettings[name] = value; }
|
||||
void BecomeRemoteServer(const char *listenhost, uint16_t port, volatile uint32_t &killReplay);
|
||||
void BecomeRemoteServer(const char *listenhost, uint16_t port, volatile bool &killReplay);
|
||||
|
||||
void SetCaptureOptions(const CaptureOptions &opts);
|
||||
const CaptureOptions &GetCaptureOptions() const { return m_Options; }
|
||||
|
||||
@@ -498,7 +498,7 @@ static void ActiveRemoteClientThread(void *data)
|
||||
SAFE_DELETE(client);
|
||||
}
|
||||
|
||||
void RenderDoc::BecomeRemoteServer(const char *listenhost, uint16_t port, volatile bool32 &killReplay)
|
||||
void RenderDoc::BecomeRemoteServer(const char *listenhost, uint16_t port, volatile bool &killReplay)
|
||||
{
|
||||
Network::Socket *sock = Network::CreateServerSocket(listenhost, port, 1);
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ void Serialiser::Serialise(const char *name, ResourceFormat &el)
|
||||
Serialise("", el.bgraOrder);
|
||||
Serialise("", el.srgbCorrected);
|
||||
|
||||
SIZE_CHECK(24);
|
||||
SIZE_CHECK(6);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -151,7 +151,7 @@ void Serialiser::Serialise(const char *name, SigParameter &el)
|
||||
Serialise("", el.stream);
|
||||
Serialise("", el.arrayIndex);
|
||||
|
||||
SIZE_CHECK(88);
|
||||
SIZE_CHECK(80);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -166,7 +166,7 @@ void Serialiser::Serialise(const char *name, ShaderVariableType &el)
|
||||
Serialise("", el.descriptor.arrayStride);
|
||||
Serialise("", el.members);
|
||||
|
||||
SIZE_CHECK(56);
|
||||
SIZE_CHECK(48);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -178,7 +178,7 @@ void Serialiser::Serialise(const char *name, ShaderConstant &el)
|
||||
Serialise("", el.defaultValue);
|
||||
Serialise("", el.type);
|
||||
|
||||
SIZE_CHECK(88);
|
||||
SIZE_CHECK(80);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -204,7 +204,7 @@ void Serialiser::Serialise(const char *name, ShaderResource &el)
|
||||
Serialise("", el.variableType);
|
||||
Serialise("", el.bindPoint);
|
||||
|
||||
SIZE_CHECK(96);
|
||||
SIZE_CHECK(80);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -306,7 +306,7 @@ void Serialiser::Serialise(const char *name, D3D11Pipe::Layout &el)
|
||||
Serialise("", el.PerInstance);
|
||||
Serialise("", el.InstanceDataStepRate);
|
||||
|
||||
SIZE_CHECK(64);
|
||||
SIZE_CHECK(48);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -343,7 +343,7 @@ void Serialiser::Serialise(const char *name, D3D11Pipe::View &el)
|
||||
Serialise("", el.ArraySize);
|
||||
Serialise("", el.FirstArraySlice);
|
||||
|
||||
SIZE_CHECK(88);
|
||||
SIZE_CHECK(64);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -395,7 +395,7 @@ void Serialiser::Serialise(const char *name, D3D11Pipe::Rasterizer &el)
|
||||
Serialise("", el.Scissors);
|
||||
Serialise("", el.Viewports);
|
||||
|
||||
SIZE_CHECK(88);
|
||||
SIZE_CHECK(80);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -415,7 +415,7 @@ void Serialiser::Serialise(const char *name, D3D11Pipe::Blend &el)
|
||||
Serialise("", el.LogicEnabled);
|
||||
Serialise("", el.WriteMask);
|
||||
|
||||
SIZE_CHECK(40);
|
||||
SIZE_CHECK(32);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -460,7 +460,7 @@ void Serialiser::Serialise(const char *name, D3D11Pipe::OM &el)
|
||||
Serialise("", el.DepthReadOnly);
|
||||
Serialise("", el.StencilReadOnly);
|
||||
|
||||
SIZE_CHECK(256);
|
||||
SIZE_CHECK(224);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -480,7 +480,7 @@ void Serialiser::Serialise(const char *name, D3D11Pipe::State &el)
|
||||
Serialise("", el.m_RS);
|
||||
Serialise("", el.m_OM);
|
||||
|
||||
SIZE_CHECK(1600);
|
||||
SIZE_CHECK(1560);
|
||||
}
|
||||
|
||||
#pragma endregion D3D11 pipeline state
|
||||
@@ -498,7 +498,7 @@ void Serialiser::Serialise(const char *name, D3D12Pipe::Layout &el)
|
||||
Serialise("", el.PerInstance);
|
||||
Serialise("", el.InstanceDataStepRate);
|
||||
|
||||
SIZE_CHECK(64);
|
||||
SIZE_CHECK(48);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -578,7 +578,7 @@ void Serialiser::Serialise(const char *name, D3D12Pipe::View &el)
|
||||
|
||||
Serialise("", el.MinLODClamp);
|
||||
|
||||
SIZE_CHECK(136);
|
||||
SIZE_CHECK(120);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -611,7 +611,7 @@ void Serialiser::Serialise(const char *name, D3D12Pipe::Rasterizer &el)
|
||||
Serialise("", el.Viewports);
|
||||
Serialise("", el.m_State);
|
||||
|
||||
SIZE_CHECK(88);
|
||||
SIZE_CHECK(80);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -631,7 +631,7 @@ void Serialiser::Serialise(const char *name, D3D12Pipe::Blend &el)
|
||||
Serialise("", el.LogicEnabled);
|
||||
Serialise("", el.WriteMask);
|
||||
|
||||
SIZE_CHECK(40);
|
||||
SIZE_CHECK(32);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -673,7 +673,7 @@ void Serialiser::Serialise(const char *name, D3D12Pipe::OM &el)
|
||||
Serialise("", el.multiSampleCount);
|
||||
Serialise("", el.multiSampleQuality);
|
||||
|
||||
SIZE_CHECK(264);
|
||||
SIZE_CHECK(240);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -719,7 +719,7 @@ void Serialiser::Serialise(const char *name, D3D12Pipe::State &el)
|
||||
|
||||
Serialise("", el.Resources);
|
||||
|
||||
SIZE_CHECK(1112);
|
||||
SIZE_CHECK(1080);
|
||||
}
|
||||
|
||||
#pragma endregion D3D12 pipeline state
|
||||
@@ -735,7 +735,7 @@ void Serialiser::Serialise(const char *name, GLPipe::VertexAttribute &el)
|
||||
Serialise("", el.BufferSlot);
|
||||
Serialise("", el.RelativeOffset);
|
||||
|
||||
SIZE_CHECK(52);
|
||||
SIZE_CHECK(32);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -807,7 +807,7 @@ void Serialiser::Serialise(const char *name, GLPipe::ImageLoadStore &el)
|
||||
Serialise("", el.writeAllowed);
|
||||
Serialise("", el.Format);
|
||||
|
||||
SIZE_CHECK(56);
|
||||
SIZE_CHECK(32);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -817,7 +817,7 @@ void Serialiser::Serialise(const char *name, GLPipe::Rasterizer &el)
|
||||
Serialise("", el.Scissors);
|
||||
Serialise("", el.m_State);
|
||||
|
||||
SIZE_CHECK(120);
|
||||
SIZE_CHECK(104);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -872,7 +872,7 @@ void Serialiser::Serialise(const char *name, GLPipe::Blend &el)
|
||||
Serialise("", el.m_AlphaBlend.Destination);
|
||||
Serialise("", el.m_AlphaBlend.Operation);
|
||||
|
||||
SIZE_CHECK(36);
|
||||
SIZE_CHECK(32);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -951,7 +951,7 @@ void Serialiser::Serialise(const char *name, GLPipe::State &el)
|
||||
|
||||
Serialise("", el.m_Hints);
|
||||
|
||||
SIZE_CHECK(1880);
|
||||
SIZE_CHECK(1832);
|
||||
}
|
||||
|
||||
#pragma endregion OpenGL pipeline state
|
||||
@@ -991,7 +991,7 @@ void Serialiser::Serialise(const char *name, VKPipe::BindingElement &el)
|
||||
SerialisePODArray<4>("", el.BorderColor);
|
||||
Serialise("", el.unnormalized);
|
||||
|
||||
SIZE_CHECK(200);
|
||||
SIZE_CHECK(176);
|
||||
};
|
||||
|
||||
template <>
|
||||
@@ -1036,7 +1036,7 @@ void Serialiser::Serialise(const char *name, VKPipe::VertexAttribute &el)
|
||||
Serialise("", el.format);
|
||||
Serialise("", el.byteoffset);
|
||||
|
||||
SIZE_CHECK(36);
|
||||
SIZE_CHECK(20);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -1115,7 +1115,7 @@ void Serialiser::Serialise(const char *name, VKPipe::ColorBlend &el)
|
||||
|
||||
SerialisePODArray<4>("", el.blendConst);
|
||||
|
||||
SIZE_CHECK(48);
|
||||
SIZE_CHECK(40);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -1132,7 +1132,7 @@ void Serialiser::Serialise(const char *name, VKPipe::Attachment &el)
|
||||
Serialise("", el.numMip);
|
||||
Serialise("", el.numLayer);
|
||||
|
||||
SIZE_CHECK(72);
|
||||
SIZE_CHECK(56);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -1164,7 +1164,7 @@ void Serialiser::Serialise(const char *name, VKPipe::DepthStencil &el)
|
||||
Serialise("", el.minDepthBounds);
|
||||
Serialise("", el.maxDepthBounds);
|
||||
|
||||
SIZE_CHECK(84);
|
||||
SIZE_CHECK(76);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -1235,7 +1235,7 @@ void Serialiser::Serialise(const char *name, VKPipe::State &el)
|
||||
|
||||
Serialise("", el.images);
|
||||
|
||||
SIZE_CHECK(1352);
|
||||
SIZE_CHECK(1328);
|
||||
}
|
||||
|
||||
#pragma endregion Vulkan pipeline state
|
||||
@@ -1262,7 +1262,7 @@ void Serialiser::Serialise(const char *name, TextureDescription &el)
|
||||
Serialise("", el.msSamp);
|
||||
Serialise("", el.byteSize);
|
||||
|
||||
SIZE_CHECK(104);
|
||||
SIZE_CHECK(88);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -1581,7 +1581,7 @@ void Serialiser::Serialise(const char *name, MeshFormat &el)
|
||||
Serialise("", el.nearPlane);
|
||||
Serialise("", el.farPlane);
|
||||
|
||||
SIZE_CHECK(112);
|
||||
SIZE_CHECK(88);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -1627,7 +1627,7 @@ void Serialiser::Serialise(const char *name, PixelModification &el)
|
||||
Serialise("", el.depthTestFailed);
|
||||
Serialise("", el.stencilTestFailed);
|
||||
|
||||
SIZE_CHECK(124);
|
||||
SIZE_CHECK(96);
|
||||
}
|
||||
|
||||
#pragma endregion Data descriptors
|
||||
|
||||
@@ -672,7 +672,7 @@ private:
|
||||
};
|
||||
|
||||
extern "C" RENDERDOC_API ITargetControl *RENDERDOC_CC RENDERDOC_CreateTargetControl(
|
||||
const char *host, uint32_t ident, const char *clientName, bool32 forceConnection)
|
||||
const char *host, uint32_t ident, const char *clientName, bool forceConnection)
|
||||
{
|
||||
string s = "localhost";
|
||||
if(host != NULL && host[0] != '\0')
|
||||
|
||||
@@ -7072,7 +7072,7 @@ vector<PixelModification> D3D11DebugManager::PixelHistory(vector<EventUsage> eve
|
||||
{
|
||||
RDCASSERT(fmt.compByteWidth == 1);
|
||||
|
||||
for(uint32_t c = 0; c < RDCMIN(fmt.compCount, 3U); c++)
|
||||
for(uint32_t c = 0; c < RDCMIN(fmt.compCount, uint8_t(3)); c++)
|
||||
{
|
||||
mod.preMod.col.value_f[c] = ConvertFromSRGB8(mod.preMod.col.value_u[c] & 0xff);
|
||||
mod.postMod.col.value_f[c] = ConvertFromSRGB8(mod.postMod.col.value_u[c] & 0xff);
|
||||
|
||||
@@ -740,8 +740,8 @@ static ShaderVariableType MakeShaderVariableType(DXBC::CBufferVariableType type,
|
||||
case DXBC::VARTYPE_MIN16FLOAT:
|
||||
default: ret.descriptor.type = VarType::Float; break;
|
||||
}
|
||||
ret.descriptor.rows = type.descriptor.rows;
|
||||
ret.descriptor.cols = type.descriptor.cols;
|
||||
ret.descriptor.rows = (uint8_t)type.descriptor.rows;
|
||||
ret.descriptor.cols = (uint8_t)type.descriptor.cols;
|
||||
ret.descriptor.elements = type.descriptor.elements;
|
||||
ret.descriptor.name = type.descriptor.name;
|
||||
ret.descriptor.rowMajorStorage = (type.descriptor.varClass == DXBC::CLASS_MATRIX_ROWS);
|
||||
@@ -978,7 +978,7 @@ ShaderReflection *MakeShaderReflection(DXBC::DXBCFile *dxbc)
|
||||
r.retType != DXBC::ShaderInputBind::RETTYPE_CONTINUED)
|
||||
{
|
||||
res.variableType.descriptor.rows = 1;
|
||||
res.variableType.descriptor.cols = r.numSamples;
|
||||
res.variableType.descriptor.cols = (uint8_t)r.numSamples;
|
||||
res.variableType.descriptor.elements = 1;
|
||||
|
||||
string name;
|
||||
|
||||
@@ -384,8 +384,8 @@ static ShaderVariableType MakeShaderVariableType(DXBC::CBufferVariableType type,
|
||||
case DXBC::VARTYPE_MIN16FLOAT:
|
||||
default: ret.descriptor.type = VarType::Float; break;
|
||||
}
|
||||
ret.descriptor.rows = type.descriptor.rows;
|
||||
ret.descriptor.cols = type.descriptor.cols;
|
||||
ret.descriptor.rows = (uint8_t)type.descriptor.rows;
|
||||
ret.descriptor.cols = (uint8_t)type.descriptor.cols;
|
||||
ret.descriptor.elements = type.descriptor.elements;
|
||||
ret.descriptor.name = type.descriptor.name;
|
||||
ret.descriptor.rowMajorStorage = (type.descriptor.varClass == DXBC::CLASS_MATRIX_ROWS);
|
||||
@@ -650,7 +650,7 @@ void MakeShaderReflection(DXBC::DXBCFile *dxbc, ShaderReflection *refl,
|
||||
r.retType != DXBC::ShaderInputBind::RETTYPE_CONTINUED)
|
||||
{
|
||||
res.variableType.descriptor.rows = 1;
|
||||
res.variableType.descriptor.cols = r.numSamples;
|
||||
res.variableType.descriptor.cols = (uint8_t)r.numSamples;
|
||||
res.variableType.descriptor.elements = 1;
|
||||
|
||||
string name;
|
||||
|
||||
@@ -1378,6 +1378,7 @@ ResourceFormat MakeResourceFormat(const GLHookSet &gl, GLenum target, GLenum fmt
|
||||
ret.type = ResourceFormatType::R10G10B10A2;
|
||||
ret.compType = fmt == eGL_RGB10_A2 ? CompType::UNorm : CompType::UInt;
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
if(ret.Special())
|
||||
@@ -1414,10 +1415,10 @@ ResourceFormat MakeResourceFormat(const GLHookSet &gl, GLenum target, GLenum fmt
|
||||
|
||||
if(data[0] == data[1] && data[1] == data[2] && data[2] == data[3])
|
||||
{
|
||||
ret.compByteWidth = (uint32_t)(data[0] / 8);
|
||||
ret.compByteWidth = (uint8_t)(data[0] / 8);
|
||||
|
||||
// wasn't a byte format (8, 16, 32)
|
||||
if(ret.compByteWidth * 8 != (uint32_t)data[0])
|
||||
if(int32_t(ret.compByteWidth) * 8 != data[0])
|
||||
{
|
||||
ret.type = ResourceFormatType::Undefined;
|
||||
RDCERR("Unexpected/unhandled non-uniform format: '%s'", ToStr::Get(fmt).c_str());
|
||||
|
||||
@@ -39,7 +39,7 @@ struct DynShaderVariableType
|
||||
uint32_t rows;
|
||||
uint32_t cols;
|
||||
uint32_t elements;
|
||||
bool32 rowMajorStorage;
|
||||
bool rowMajorStorage;
|
||||
uint32_t arrayStride;
|
||||
string name;
|
||||
} descriptor;
|
||||
@@ -96,8 +96,8 @@ void copy(rdctype::array<ShaderConstant> &outvars, const vector<DynShaderConstan
|
||||
outvars[i].reg.comp = invars[i].reg.comp;
|
||||
outvars[i].defaultValue = 0;
|
||||
outvars[i].type.descriptor.type = invars[i].type.descriptor.type;
|
||||
outvars[i].type.descriptor.rows = invars[i].type.descriptor.rows;
|
||||
outvars[i].type.descriptor.cols = invars[i].type.descriptor.cols;
|
||||
outvars[i].type.descriptor.rows = (uint8_t)invars[i].type.descriptor.rows;
|
||||
outvars[i].type.descriptor.cols = (uint8_t)invars[i].type.descriptor.cols;
|
||||
outvars[i].type.descriptor.elements = invars[i].type.descriptor.elements;
|
||||
outvars[i].type.descriptor.rowMajorStorage = invars[i].type.descriptor.rowMajorStorage;
|
||||
outvars[i].type.descriptor.arrayStride = invars[i].type.descriptor.arrayStride;
|
||||
|
||||
@@ -3528,13 +3528,13 @@ void MakeConstantBlockVariable(ShaderConstant &outConst, SPVTypeData *type, cons
|
||||
|
||||
if(type->type == SPVTypeData::eMatrix)
|
||||
{
|
||||
outConst.type.descriptor.rows = type->vectorSize;
|
||||
outConst.type.descriptor.cols = type->matrixSize;
|
||||
outConst.type.descriptor.rows = (uint8_t)type->vectorSize;
|
||||
outConst.type.descriptor.cols = (uint8_t)type->matrixSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
outConst.type.descriptor.rows = 1;
|
||||
outConst.type.descriptor.cols = type->vectorSize;
|
||||
outConst.type.descriptor.cols = (uint8_t)type->vectorSize;
|
||||
}
|
||||
|
||||
outConst.type.descriptor.name = type->GetName();
|
||||
|
||||
@@ -229,7 +229,7 @@ RENDERDOC_InitGlobalEnv(GlobalEnvironment env, const rdctype::array<rdctype::str
|
||||
}
|
||||
|
||||
extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_TriggerExceptionHandler(void *exceptionPtrs,
|
||||
bool32 crashed)
|
||||
bool crashed)
|
||||
{
|
||||
if(RenderDoc::Inst().GetCrashHandler() == NULL)
|
||||
return;
|
||||
@@ -295,7 +295,7 @@ RENDERDOC_CreateReplayRenderer(const char *logfile, float *progress, IReplayCont
|
||||
extern "C" RENDERDOC_API uint32_t RENDERDOC_CC
|
||||
RENDERDOC_ExecuteAndInject(const char *app, const char *workingDir, const char *cmdLine,
|
||||
const rdctype::array<EnvironmentModification> &env, const char *logfile,
|
||||
const CaptureOptions &opts, bool32 waitForExit)
|
||||
const CaptureOptions &opts, bool waitForExit)
|
||||
{
|
||||
return Process::LaunchAndInjectIntoProcess(app, workingDir, cmdLine, env, logfile, opts,
|
||||
waitForExit != 0);
|
||||
@@ -306,9 +306,9 @@ extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_GetDefaultCaptureOptions(Ca
|
||||
*opts = CaptureOptions();
|
||||
}
|
||||
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC RENDERDOC_StartGlobalHook(const char *pathmatch,
|
||||
const char *logfile,
|
||||
const CaptureOptions &opts)
|
||||
extern "C" RENDERDOC_API bool RENDERDOC_CC RENDERDOC_StartGlobalHook(const char *pathmatch,
|
||||
const char *logfile,
|
||||
const CaptureOptions &opts)
|
||||
{
|
||||
return Process::StartGlobalHook(pathmatch, logfile, opts);
|
||||
}
|
||||
@@ -318,26 +318,26 @@ extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_StopGlobalHook()
|
||||
Process::StopGlobalHook();
|
||||
}
|
||||
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC RENDERDOC_IsGlobalHookActive()
|
||||
extern "C" RENDERDOC_API bool RENDERDOC_CC RENDERDOC_IsGlobalHookActive()
|
||||
{
|
||||
return Process::IsGlobalHookActive();
|
||||
}
|
||||
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC RENDERDOC_CanGlobalHook()
|
||||
extern "C" RENDERDOC_API bool RENDERDOC_CC RENDERDOC_CanGlobalHook()
|
||||
{
|
||||
return Process::CanGlobalHook();
|
||||
}
|
||||
|
||||
extern "C" RENDERDOC_API uint32_t RENDERDOC_CC
|
||||
RENDERDOC_InjectIntoProcess(uint32_t pid, const rdctype::array<EnvironmentModification> &env,
|
||||
const char *logfile, const CaptureOptions &opts, bool32 waitForExit)
|
||||
const char *logfile, const CaptureOptions &opts, bool waitForExit)
|
||||
{
|
||||
return Process::InjectIntoProcess(pid, env, logfile, opts, waitForExit != 0);
|
||||
}
|
||||
|
||||
extern "C" RENDERDOC_API bool32 RENDERDOC_CC RENDERDOC_GetThumbnail(const char *filename,
|
||||
FileType type, uint32_t maxsize,
|
||||
rdctype::array<byte> *buf)
|
||||
extern "C" RENDERDOC_API bool RENDERDOC_CC RENDERDOC_GetThumbnail(const char *filename,
|
||||
FileType type, uint32_t maxsize,
|
||||
rdctype::array<byte> *buf)
|
||||
{
|
||||
ICaptureFile *file = RENDERDOC_OpenCaptureFile(filename);
|
||||
|
||||
@@ -415,9 +415,9 @@ extern "C" RENDERDOC_API uint32_t RENDERDOC_CC RENDERDOC_GetDefaultRemoteServerP
|
||||
|
||||
extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_BecomeRemoteServer(const char *listenhost,
|
||||
uint32_t port,
|
||||
volatile bool32 *killReplay)
|
||||
volatile bool *killReplay)
|
||||
{
|
||||
bool32 dummy = false;
|
||||
bool dummy = false;
|
||||
|
||||
if(killReplay == NULL)
|
||||
killReplay = &dummy;
|
||||
@@ -520,6 +520,7 @@ static std::string ResourceFormatName(const ResourceFormat &fmt)
|
||||
{
|
||||
switch(fmt.type)
|
||||
{
|
||||
case ResourceFormatType::Regular: break;
|
||||
case ResourceFormatType::Undefined: return "Undefined";
|
||||
case ResourceFormatType::BC1: return fmt.srgbCorrected ? "BC1_SRGB" : "BC1_UNORM";
|
||||
case ResourceFormatType::BC2: return fmt.srgbCorrected ? "BC2_SRGB" : "BC2_UNORM";
|
||||
|
||||
@@ -1649,3 +1649,70 @@ void ReplayController::FetchPipelineState()
|
||||
m_GLPipelineState = &m_pDevice->GetGLPipelineState();
|
||||
m_VulkanPipelineState = &m_pDevice->GetVulkanPipelineState();
|
||||
}
|
||||
|
||||
struct testStruct
|
||||
{
|
||||
#define INSTANTIATE(cls) cls CONCAT(testthing, __LINE__);
|
||||
|
||||
INSTANTIATE(MeshFormat);
|
||||
INSTANTIATE(MeshDisplay);
|
||||
INSTANTIATE(TextureDisplay);
|
||||
INSTANTIATE(TextureComponentMapping);
|
||||
INSTANTIATE(TextureSampleMapping);
|
||||
INSTANTIATE(TextureSliceMapping);
|
||||
INSTANTIATE(TextureSave);
|
||||
INSTANTIATE(NewCaptureData);
|
||||
INSTANTIATE(RegisterAPIData);
|
||||
INSTANTIATE(BusyData);
|
||||
INSTANTIATE(NewChildData);
|
||||
INSTANTIATE(TargetControlMessage);
|
||||
INSTANTIATE(EnvironmentModification);
|
||||
|
||||
INSTANTIATE(FloatVector);
|
||||
INSTANTIATE(PathEntry);
|
||||
INSTANTIATE(ResourceFormat);
|
||||
INSTANTIATE(TextureFilter);
|
||||
INSTANTIATE(BufferDescription);
|
||||
INSTANTIATE(TextureDescription);
|
||||
INSTANTIATE(APIEvent);
|
||||
INSTANTIATE(DebugMessage);
|
||||
INSTANTIATE(ConstantBindStats);
|
||||
INSTANTIATE(SamplerBindStats);
|
||||
INSTANTIATE(ResourceBindStats);
|
||||
INSTANTIATE(ResourceUpdateStats);
|
||||
INSTANTIATE(DrawcallStats);
|
||||
INSTANTIATE(DispatchStats);
|
||||
INSTANTIATE(IndexBindStats);
|
||||
INSTANTIATE(VertexBindStats);
|
||||
INSTANTIATE(LayoutBindStats);
|
||||
INSTANTIATE(ShaderChangeStats);
|
||||
INSTANTIATE(BlendStats);
|
||||
INSTANTIATE(DepthStencilStats);
|
||||
INSTANTIATE(RasterizationStats);
|
||||
INSTANTIATE(OutputTargetStats);
|
||||
INSTANTIATE(FrameStatistics);
|
||||
INSTANTIATE(FrameDescription);
|
||||
INSTANTIATE(EventUsage);
|
||||
INSTANTIATE(DrawcallDescription);
|
||||
INSTANTIATE(APIProperties);
|
||||
INSTANTIATE(CounterDescription);
|
||||
INSTANTIATE(CounterResult);
|
||||
INSTANTIATE(ModificationValue);
|
||||
INSTANTIATE(PixelModification);
|
||||
|
||||
INSTANTIATE(ShaderVariable);
|
||||
INSTANTIATE(ShaderDebugState);
|
||||
INSTANTIATE(ShaderDebugTrace);
|
||||
INSTANTIATE(SigParameter);
|
||||
INSTANTIATE(ShaderConstant);
|
||||
INSTANTIATE(ShaderVariableDescriptor);
|
||||
INSTANTIATE(ShaderVariableType);
|
||||
INSTANTIATE(ShaderRegister);
|
||||
INSTANTIATE(ShaderConstant);
|
||||
INSTANTIATE(ConstantBlock);
|
||||
INSTANTIATE(ShaderResource);
|
||||
INSTANTIATE(ShaderDebugChunk);
|
||||
INSTANTIATE(ShaderReflection);
|
||||
INSTANTIATE(BindpointMap);
|
||||
INSTANTIATE(ShaderBindpointMapping);
|
||||
};
|
||||
|
||||
@@ -32,7 +32,7 @@ using std::string;
|
||||
using std::wstring;
|
||||
|
||||
bool usingKillSignal = false;
|
||||
volatile uint32_t killSignal = false;
|
||||
volatile bool killSignal = false;
|
||||
|
||||
rdctype::array<rdctype::str> convertArgs(const std::vector<std::string> &args)
|
||||
{
|
||||
|
||||
@@ -42,7 +42,7 @@ struct Command
|
||||
};
|
||||
|
||||
extern bool usingKillSignal;
|
||||
extern volatile uint32_t killSignal;
|
||||
extern volatile bool killSignal;
|
||||
|
||||
void add_version_line(const std::string &str);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user