1725 lines
41 KiB
C
1725 lines
41 KiB
C
|
/* SPDX-License-Identifier: GPL-2.0 OR MIT */
|
||
|
/*
|
||
|
* Copyright 2012-2021 VMware, Inc.
|
||
|
*
|
||
|
* 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.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* svga3d_dx.h --
|
||
|
*
|
||
|
* SVGA 3d hardware definitions for DX10 support.
|
||
|
*/
|
||
|
|
||
|
|
||
|
|
||
|
#ifndef _SVGA3D_DX_H_
|
||
|
#define _SVGA3D_DX_H_
|
||
|
|
||
|
#include "svga_reg.h"
|
||
|
#include "svga3d_limits.h"
|
||
|
#include "svga3d_types.h"
|
||
|
|
||
|
#define SVGA3D_INPUT_MIN 0
|
||
|
#define SVGA3D_INPUT_PER_VERTEX_DATA 0
|
||
|
#define SVGA3D_INPUT_PER_INSTANCE_DATA 1
|
||
|
#define SVGA3D_INPUT_MAX 2
|
||
|
typedef uint32 SVGA3dInputClassification;
|
||
|
|
||
|
#define SVGA3D_COLOR_WRITE_ENABLE_RED (1 << 0)
|
||
|
#define SVGA3D_COLOR_WRITE_ENABLE_GREEN (1 << 1)
|
||
|
#define SVGA3D_COLOR_WRITE_ENABLE_BLUE (1 << 2)
|
||
|
#define SVGA3D_COLOR_WRITE_ENABLE_ALPHA (1 << 3)
|
||
|
#define SVGA3D_COLOR_WRITE_ENABLE_ALL \
|
||
|
(SVGA3D_COLOR_WRITE_ENABLE_RED | SVGA3D_COLOR_WRITE_ENABLE_GREEN | \
|
||
|
SVGA3D_COLOR_WRITE_ENABLE_BLUE | SVGA3D_COLOR_WRITE_ENABLE_ALPHA)
|
||
|
typedef uint8 SVGA3dColorWriteEnable;
|
||
|
|
||
|
#define SVGA3D_DEPTH_WRITE_MASK_ZERO 0
|
||
|
#define SVGA3D_DEPTH_WRITE_MASK_ALL 1
|
||
|
typedef uint8 SVGA3dDepthWriteMask;
|
||
|
|
||
|
#define SVGA3D_FILTER_MIP_LINEAR (1 << 0)
|
||
|
#define SVGA3D_FILTER_MAG_LINEAR (1 << 2)
|
||
|
#define SVGA3D_FILTER_MIN_LINEAR (1 << 4)
|
||
|
#define SVGA3D_FILTER_ANISOTROPIC (1 << 6)
|
||
|
#define SVGA3D_FILTER_COMPARE (1 << 7)
|
||
|
typedef uint32 SVGA3dFilter;
|
||
|
|
||
|
#define SVGA3D_CULL_INVALID 0
|
||
|
#define SVGA3D_CULL_MIN 1
|
||
|
#define SVGA3D_CULL_NONE 1
|
||
|
#define SVGA3D_CULL_FRONT 2
|
||
|
#define SVGA3D_CULL_BACK 3
|
||
|
#define SVGA3D_CULL_MAX 4
|
||
|
typedef uint8 SVGA3dCullMode;
|
||
|
|
||
|
#define SVGA3D_COMPARISON_INVALID 0
|
||
|
#define SVGA3D_COMPARISON_MIN 1
|
||
|
#define SVGA3D_COMPARISON_NEVER 1
|
||
|
#define SVGA3D_COMPARISON_LESS 2
|
||
|
#define SVGA3D_COMPARISON_EQUAL 3
|
||
|
#define SVGA3D_COMPARISON_LESS_EQUAL 4
|
||
|
#define SVGA3D_COMPARISON_GREATER 5
|
||
|
#define SVGA3D_COMPARISON_NOT_EQUAL 6
|
||
|
#define SVGA3D_COMPARISON_GREATER_EQUAL 7
|
||
|
#define SVGA3D_COMPARISON_ALWAYS 8
|
||
|
#define SVGA3D_COMPARISON_MAX 9
|
||
|
typedef uint8 SVGA3dComparisonFunc;
|
||
|
|
||
|
#define SVGA3D_MULTISAMPLE_RAST_DISABLE 0
|
||
|
#define SVGA3D_MULTISAMPLE_RAST_ENABLE 1
|
||
|
#define SVGA3D_MULTISAMPLE_RAST_DX_MAX 1
|
||
|
#define SVGA3D_MULTISAMPLE_RAST_DISABLE_LINE 2
|
||
|
#define SVGA3D_MULTISAMPLE_RAST_MAX 2
|
||
|
typedef uint8 SVGA3dMultisampleRastEnable;
|
||
|
|
||
|
#define SVGA3D_DX_MAX_VERTEXBUFFERS 32
|
||
|
#define SVGA3D_DX_MAX_VERTEXINPUTREGISTERS 16
|
||
|
#define SVGA3D_DX_SM41_MAX_VERTEXINPUTREGISTERS 32
|
||
|
#define SVGA3D_DX_MAX_SOTARGETS 4
|
||
|
#define SVGA3D_DX_MAX_SRVIEWS 128
|
||
|
#define SVGA3D_DX_MAX_CONSTBUFFERS 16
|
||
|
#define SVGA3D_DX_MAX_SAMPLERS 16
|
||
|
#define SVGA3D_DX_MAX_CLASS_INSTANCES 253
|
||
|
|
||
|
#define SVGA3D_DX_MAX_CONSTBUF_BINDING_SIZE (4096 * 4 * (uint32)sizeof(uint32))
|
||
|
|
||
|
typedef uint32 SVGA3dShaderResourceViewId;
|
||
|
typedef uint32 SVGA3dRenderTargetViewId;
|
||
|
typedef uint32 SVGA3dDepthStencilViewId;
|
||
|
typedef uint32 SVGA3dUAViewId;
|
||
|
|
||
|
typedef uint32 SVGA3dShaderId;
|
||
|
typedef uint32 SVGA3dElementLayoutId;
|
||
|
typedef uint32 SVGA3dSamplerId;
|
||
|
typedef uint32 SVGA3dBlendStateId;
|
||
|
typedef uint32 SVGA3dDepthStencilStateId;
|
||
|
typedef uint32 SVGA3dRasterizerStateId;
|
||
|
typedef uint32 SVGA3dQueryId;
|
||
|
typedef uint32 SVGA3dStreamOutputId;
|
||
|
|
||
|
typedef union {
|
||
|
struct {
|
||
|
uint32 r;
|
||
|
uint32 g;
|
||
|
uint32 b;
|
||
|
uint32 a;
|
||
|
};
|
||
|
|
||
|
uint32 value[4];
|
||
|
} SVGA3dRGBAUint32;
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
uint32 cid;
|
||
|
SVGAMobId mobid;
|
||
|
} SVGAOTableDXContextEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineContext {
|
||
|
uint32 cid;
|
||
|
} SVGA3dCmdDXDefineContext;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyContext {
|
||
|
uint32 cid;
|
||
|
} SVGA3dCmdDXDestroyContext;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXBindContext {
|
||
|
uint32 cid;
|
||
|
SVGAMobId mobid;
|
||
|
uint32 validContents;
|
||
|
} SVGA3dCmdDXBindContext;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXReadbackContext {
|
||
|
uint32 cid;
|
||
|
} SVGA3dCmdDXReadbackContext;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXInvalidateContext {
|
||
|
uint32 cid;
|
||
|
} SVGA3dCmdDXInvalidateContext;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetSingleConstantBuffer {
|
||
|
uint32 slot;
|
||
|
SVGA3dShaderType type;
|
||
|
SVGA3dSurfaceId sid;
|
||
|
uint32 offsetInBytes;
|
||
|
uint32 sizeInBytes;
|
||
|
} SVGA3dCmdDXSetSingleConstantBuffer;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetShaderResources {
|
||
|
uint32 startView;
|
||
|
SVGA3dShaderType type;
|
||
|
|
||
|
} SVGA3dCmdDXSetShaderResources;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetShader {
|
||
|
SVGA3dShaderId shaderId;
|
||
|
SVGA3dShaderType type;
|
||
|
} SVGA3dCmdDXSetShader;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
typedef union {
|
||
|
struct {
|
||
|
uint32 cbOffset : 12;
|
||
|
uint32 cbId : 4;
|
||
|
uint32 baseSamp : 4;
|
||
|
uint32 baseTex : 7;
|
||
|
uint32 reserved : 5;
|
||
|
};
|
||
|
uint32 value;
|
||
|
} SVGA3dIfaceData;
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetShaderIface {
|
||
|
SVGA3dShaderType type;
|
||
|
uint32 numClassInstances;
|
||
|
uint32 index;
|
||
|
uint32 iface;
|
||
|
SVGA3dIfaceData data;
|
||
|
} SVGA3dCmdDXSetShaderIface;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXBindShaderIface {
|
||
|
uint32 cid;
|
||
|
SVGAMobId mobid;
|
||
|
uint32 offsetInBytes;
|
||
|
} SVGA3dCmdDXBindShaderIface;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetSamplers {
|
||
|
uint32 startSampler;
|
||
|
SVGA3dShaderType type;
|
||
|
|
||
|
} SVGA3dCmdDXSetSamplers;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDraw {
|
||
|
uint32 vertexCount;
|
||
|
uint32 startVertexLocation;
|
||
|
} SVGA3dCmdDXDraw;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDrawIndexed {
|
||
|
uint32 indexCount;
|
||
|
uint32 startIndexLocation;
|
||
|
int32 baseVertexLocation;
|
||
|
} SVGA3dCmdDXDrawIndexed;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDrawInstanced {
|
||
|
uint32 vertexCountPerInstance;
|
||
|
uint32 instanceCount;
|
||
|
uint32 startVertexLocation;
|
||
|
uint32 startInstanceLocation;
|
||
|
} SVGA3dCmdDXDrawInstanced;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDrawIndexedInstanced {
|
||
|
uint32 indexCountPerInstance;
|
||
|
uint32 instanceCount;
|
||
|
uint32 startIndexLocation;
|
||
|
int32 baseVertexLocation;
|
||
|
uint32 startInstanceLocation;
|
||
|
} SVGA3dCmdDXDrawIndexedInstanced;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDrawIndexedInstancedIndirect {
|
||
|
SVGA3dSurfaceId argsBufferSid;
|
||
|
uint32 byteOffsetForArgs;
|
||
|
} SVGA3dCmdDXDrawIndexedInstancedIndirect;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDrawInstancedIndirect {
|
||
|
SVGA3dSurfaceId argsBufferSid;
|
||
|
uint32 byteOffsetForArgs;
|
||
|
} SVGA3dCmdDXDrawInstancedIndirect;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDrawAuto {
|
||
|
uint32 pad0;
|
||
|
} SVGA3dCmdDXDrawAuto;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDispatch {
|
||
|
uint32 threadGroupCountX;
|
||
|
uint32 threadGroupCountY;
|
||
|
uint32 threadGroupCountZ;
|
||
|
} SVGA3dCmdDXDispatch;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDispatchIndirect {
|
||
|
SVGA3dSurfaceId argsBufferSid;
|
||
|
uint32 byteOffsetForArgs;
|
||
|
} SVGA3dCmdDXDispatchIndirect;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetInputLayout {
|
||
|
SVGA3dElementLayoutId elementLayoutId;
|
||
|
} SVGA3dCmdDXSetInputLayout;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dVertexBuffer {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
uint32 stride;
|
||
|
uint32 offset;
|
||
|
} SVGA3dVertexBuffer;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetVertexBuffers {
|
||
|
uint32 startBuffer;
|
||
|
|
||
|
} SVGA3dCmdDXSetVertexBuffers;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dVertexBuffer_v2 {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
uint32 stride;
|
||
|
uint32 offset;
|
||
|
uint32 sizeInBytes;
|
||
|
} SVGA3dVertexBuffer_v2;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetVertexBuffers_v2 {
|
||
|
uint32 startBuffer;
|
||
|
|
||
|
} SVGA3dCmdDXSetVertexBuffers_v2;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dVertexBufferOffsetAndSize {
|
||
|
uint32 stride;
|
||
|
uint32 offset;
|
||
|
uint32 sizeInBytes;
|
||
|
} SVGA3dVertexBufferOffsetAndSize;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetVertexBuffersOffsetAndSize {
|
||
|
uint32 startBuffer;
|
||
|
|
||
|
} SVGA3dCmdDXSetVertexBuffersOffsetAndSize;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetIndexBuffer {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
uint32 offset;
|
||
|
} SVGA3dCmdDXSetIndexBuffer;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetIndexBuffer_v2 {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
uint32 offset;
|
||
|
uint32 sizeInBytes;
|
||
|
} SVGA3dCmdDXSetIndexBuffer_v2;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetIndexBufferOffsetAndSize {
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
uint32 offset;
|
||
|
uint32 sizeInBytes;
|
||
|
} SVGA3dCmdDXSetIndexBufferOffsetAndSize;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetTopology {
|
||
|
SVGA3dPrimitiveType topology;
|
||
|
} SVGA3dCmdDXSetTopology;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetRenderTargets {
|
||
|
SVGA3dDepthStencilViewId depthStencilViewId;
|
||
|
|
||
|
} SVGA3dCmdDXSetRenderTargets;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetBlendState {
|
||
|
SVGA3dBlendStateId blendId;
|
||
|
float blendFactor[4];
|
||
|
uint32 sampleMask;
|
||
|
} SVGA3dCmdDXSetBlendState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetDepthStencilState {
|
||
|
SVGA3dDepthStencilStateId depthStencilId;
|
||
|
uint32 stencilRef;
|
||
|
} SVGA3dCmdDXSetDepthStencilState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetRasterizerState {
|
||
|
SVGA3dRasterizerStateId rasterizerId;
|
||
|
} SVGA3dCmdDXSetRasterizerState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_DXQUERY_FLAG_PREDICATEHINT (1 << 0)
|
||
|
typedef uint32 SVGA3dDXQueryFlags;
|
||
|
|
||
|
#define SVGADX_QDSTATE_INVALID ((uint8)-1)
|
||
|
#define SVGADX_QDSTATE_MIN 0
|
||
|
#define SVGADX_QDSTATE_IDLE 0
|
||
|
#define SVGADX_QDSTATE_ACTIVE 1
|
||
|
#define SVGADX_QDSTATE_PENDING 2
|
||
|
#define SVGADX_QDSTATE_FINISHED 3
|
||
|
#define SVGADX_QDSTATE_MAX 4
|
||
|
typedef uint8 SVGADXQueryDeviceState;
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
SVGA3dQueryTypeUint8 type;
|
||
|
uint16 pad0;
|
||
|
SVGADXQueryDeviceState state;
|
||
|
SVGA3dDXQueryFlags flags;
|
||
|
SVGAMobId mobid;
|
||
|
uint32 offset;
|
||
|
} SVGACOTableDXQueryEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineQuery {
|
||
|
SVGA3dQueryId queryId;
|
||
|
SVGA3dQueryType type;
|
||
|
SVGA3dDXQueryFlags flags;
|
||
|
} SVGA3dCmdDXDefineQuery;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyQuery {
|
||
|
SVGA3dQueryId queryId;
|
||
|
} SVGA3dCmdDXDestroyQuery;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXBindQuery {
|
||
|
SVGA3dQueryId queryId;
|
||
|
SVGAMobId mobid;
|
||
|
} SVGA3dCmdDXBindQuery;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetQueryOffset {
|
||
|
SVGA3dQueryId queryId;
|
||
|
uint32 mobOffset;
|
||
|
} SVGA3dCmdDXSetQueryOffset;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXBeginQuery {
|
||
|
SVGA3dQueryId queryId;
|
||
|
} SVGA3dCmdDXBeginQuery;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXEndQuery {
|
||
|
SVGA3dQueryId queryId;
|
||
|
} SVGA3dCmdDXEndQuery;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXReadbackQuery {
|
||
|
SVGA3dQueryId queryId;
|
||
|
} SVGA3dCmdDXReadbackQuery;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXMoveQuery {
|
||
|
SVGA3dQueryId queryId;
|
||
|
SVGAMobId mobid;
|
||
|
uint32 mobOffset;
|
||
|
} SVGA3dCmdDXMoveQuery;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXBindAllQuery {
|
||
|
uint32 cid;
|
||
|
SVGAMobId mobid;
|
||
|
} SVGA3dCmdDXBindAllQuery;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXReadbackAllQuery {
|
||
|
uint32 cid;
|
||
|
} SVGA3dCmdDXReadbackAllQuery;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetPredication {
|
||
|
SVGA3dQueryId queryId;
|
||
|
uint32 predicateValue;
|
||
|
} SVGA3dCmdDXSetPredication;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dDXSOState {
|
||
|
uint32 offset;
|
||
|
uint32 intOffset;
|
||
|
uint32 dead1;
|
||
|
uint32 dead2;
|
||
|
} SVGA3dDXSOState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_DX_SO_OFFSET_APPEND ((uint32)~0u)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dSoTarget {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
uint32 offset;
|
||
|
uint32 sizeInBytes;
|
||
|
} SVGA3dSoTarget;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetSOTargets {
|
||
|
uint32 pad0;
|
||
|
|
||
|
} SVGA3dCmdDXSetSOTargets;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dViewport {
|
||
|
float x;
|
||
|
float y;
|
||
|
float width;
|
||
|
float height;
|
||
|
float minDepth;
|
||
|
float maxDepth;
|
||
|
} SVGA3dViewport;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetViewports {
|
||
|
uint32 pad0;
|
||
|
|
||
|
} SVGA3dCmdDXSetViewports;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_DX_MAX_VIEWPORTS 16
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetScissorRects {
|
||
|
uint32 pad0;
|
||
|
|
||
|
} SVGA3dCmdDXSetScissorRects;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_DX_MAX_SCISSORRECTS 16
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXClearRenderTargetView {
|
||
|
SVGA3dRenderTargetViewId renderTargetViewId;
|
||
|
SVGA3dRGBAFloat rgba;
|
||
|
} SVGA3dCmdDXClearRenderTargetView;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXClearDepthStencilView {
|
||
|
uint16 flags;
|
||
|
uint16 stencil;
|
||
|
SVGA3dDepthStencilViewId depthStencilViewId;
|
||
|
float depth;
|
||
|
} SVGA3dCmdDXClearDepthStencilView;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXPredCopyRegion {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
uint32 dstSubResource;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint32 srcSubResource;
|
||
|
SVGA3dCopyBox box;
|
||
|
} SVGA3dCmdDXPredCopyRegion;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXPredStagingCopyRegion {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
uint32 dstSubResource;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint32 srcSubResource;
|
||
|
SVGA3dCopyBox box;
|
||
|
uint8 readback;
|
||
|
uint8 unsynchronized;
|
||
|
uint8 mustBeZero[2];
|
||
|
} SVGA3dCmdDXPredStagingCopyRegion;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXPredCopy {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
} SVGA3dCmdDXPredCopy;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXPredConvertRegion {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
uint32 dstSubResource;
|
||
|
SVGA3dBox destBox;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint32 srcSubResource;
|
||
|
SVGA3dBox srcBox;
|
||
|
} SVGA3dCmdDXPredConvertRegion;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXPredStagingConvertRegion {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
uint32 dstSubResource;
|
||
|
SVGA3dBox destBox;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint32 srcSubResource;
|
||
|
SVGA3dBox srcBox;
|
||
|
uint8 readback;
|
||
|
uint8 unsynchronized;
|
||
|
uint8 mustBeZero[2];
|
||
|
} SVGA3dCmdDXPredStagingConvertRegion;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXPredConvert {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
} SVGA3dCmdDXPredConvert;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXPredStagingConvert {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint8 readback;
|
||
|
uint8 unsynchronized;
|
||
|
uint8 mustBeZero[2];
|
||
|
} SVGA3dCmdDXPredStagingConvert;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXBufferCopy {
|
||
|
SVGA3dSurfaceId dest;
|
||
|
SVGA3dSurfaceId src;
|
||
|
uint32 destX;
|
||
|
uint32 srcX;
|
||
|
uint32 width;
|
||
|
} SVGA3dCmdDXBufferCopy;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXStagingBufferCopy {
|
||
|
SVGA3dSurfaceId dest;
|
||
|
SVGA3dSurfaceId src;
|
||
|
uint32 destX;
|
||
|
uint32 srcX;
|
||
|
uint32 width;
|
||
|
uint8 readback;
|
||
|
uint8 unsynchronized;
|
||
|
uint8 mustBeZero[2];
|
||
|
} SVGA3dCmdDXStagingBufferCopy;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
uint32 dstSubResource;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint32 srcSubResource;
|
||
|
SVGA3dSurfaceFormat copyFormat;
|
||
|
} SVGA3dCmdDXResolveCopy;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
uint32 dstSubResource;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint32 srcSubResource;
|
||
|
SVGA3dSurfaceFormat copyFormat;
|
||
|
} SVGA3dCmdDXPredResolveCopy;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
typedef uint32 SVGA3dDXPresentBltMode;
|
||
|
#define SVGADX_PRESENTBLT_LINEAR (1 << 0)
|
||
|
#define SVGADX_PRESENTBLT_FORCE_SRC_SRGB (1 << 1)
|
||
|
#define SVGADX_PRESENTBLT_FORCE_SRC_XRBIAS (1 << 2)
|
||
|
#define SVGADX_PRESENTBLT_MODE_MAX (1 << 3)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXPresentBlt {
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint32 srcSubResource;
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
uint32 destSubResource;
|
||
|
SVGA3dBox boxSrc;
|
||
|
SVGA3dBox boxDest;
|
||
|
SVGA3dDXPresentBltMode mode;
|
||
|
} SVGA3dCmdDXPresentBlt;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXGenMips {
|
||
|
SVGA3dShaderResourceViewId shaderResourceViewId;
|
||
|
} SVGA3dCmdDXGenMips;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXUpdateSubResource {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
uint32 subResource;
|
||
|
SVGA3dBox box;
|
||
|
} SVGA3dCmdDXUpdateSubResource;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXReadbackSubResource {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
uint32 subResource;
|
||
|
} SVGA3dCmdDXReadbackSubResource;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXInvalidateSubResource {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
uint32 subResource;
|
||
|
} SVGA3dCmdDXInvalidateSubResource;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXTransferFromBuffer {
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint32 srcOffset;
|
||
|
uint32 srcPitch;
|
||
|
uint32 srcSlicePitch;
|
||
|
SVGA3dSurfaceId destSid;
|
||
|
uint32 destSubResource;
|
||
|
SVGA3dBox destBox;
|
||
|
} SVGA3dCmdDXTransferFromBuffer;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_TRANSFER_TO_BUFFER_READBACK (1 << 0)
|
||
|
#define SVGA3D_TRANSFER_TO_BUFFER_FLAGS_MASK (1 << 0)
|
||
|
typedef uint32 SVGA3dTransferToBufferFlags;
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXTransferToBuffer {
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint32 srcSubResource;
|
||
|
SVGA3dBox srcBox;
|
||
|
SVGA3dSurfaceId destSid;
|
||
|
uint32 destOffset;
|
||
|
uint32 destPitch;
|
||
|
uint32 destSlicePitch;
|
||
|
SVGA3dTransferToBufferFlags flags;
|
||
|
} SVGA3dCmdDXTransferToBuffer;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXPredTransferFromBuffer {
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint32 srcOffset;
|
||
|
uint32 srcPitch;
|
||
|
uint32 srcSlicePitch;
|
||
|
SVGA3dSurfaceId destSid;
|
||
|
uint32 destSubResource;
|
||
|
SVGA3dBox destBox;
|
||
|
} SVGA3dCmdDXPredTransferFromBuffer;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSurfaceCopyAndReadback {
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
SVGA3dSurfaceId destSid;
|
||
|
SVGA3dCopyBox box;
|
||
|
} SVGA3dCmdDXSurfaceCopyAndReadback;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
typedef uint32 SVGADXHintId;
|
||
|
#define SVGA_DX_HINT_NONE 0
|
||
|
#define SVGA_DX_HINT_PREFETCH_OBJECT 1
|
||
|
#define SVGA_DX_HINT_PREEVICT_OBJECT 2
|
||
|
#define SVGA_DX_HINT_PREFETCH_COBJECT 3
|
||
|
#define SVGA_DX_HINT_PREEVICT_COBJECT 4
|
||
|
#define SVGA_DX_HINT_MAX 5
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGAObjectRef {
|
||
|
SVGAOTableType type;
|
||
|
uint32 id;
|
||
|
} SVGAObjectRef;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGACObjectRef {
|
||
|
SVGACOTableType type;
|
||
|
uint32 cid;
|
||
|
uint32 id;
|
||
|
} SVGACObjectRef;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXHint {
|
||
|
SVGADXHintId hintId;
|
||
|
|
||
|
} SVGA3dCmdDXHint;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXBufferUpdate {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
uint32 x;
|
||
|
uint32 width;
|
||
|
} SVGA3dCmdDXBufferUpdate;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetConstantBufferOffset {
|
||
|
uint32 slot;
|
||
|
uint32 offsetInBytes;
|
||
|
} SVGA3dCmdDXSetConstantBufferOffset;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetVSConstantBufferOffset;
|
||
|
|
||
|
typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetPSConstantBufferOffset;
|
||
|
|
||
|
typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetGSConstantBufferOffset;
|
||
|
|
||
|
typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetHSConstantBufferOffset;
|
||
|
|
||
|
typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetDSConstantBufferOffset;
|
||
|
|
||
|
typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetCSConstantBufferOffset;
|
||
|
|
||
|
#define SVGA3D_BUFFEREX_SRV_RAW (1 << 0)
|
||
|
#define SVGA3D_BUFFEREX_SRV_FLAGS_MAX (1 << 1)
|
||
|
#define SVGA3D_BUFFEREX_SRV_FLAGS_MASK (SVGA3D_BUFFEREX_SRV_FLAGS_MAX - 1)
|
||
|
typedef uint32 SVGA3dBufferExFlags;
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
union {
|
||
|
struct {
|
||
|
uint32 firstElement;
|
||
|
uint32 numElements;
|
||
|
uint32 pad0;
|
||
|
uint32 pad1;
|
||
|
} buffer;
|
||
|
struct {
|
||
|
uint32 mostDetailedMip;
|
||
|
uint32 firstArraySlice;
|
||
|
uint32 mipLevels;
|
||
|
uint32 arraySize;
|
||
|
} tex;
|
||
|
struct {
|
||
|
uint32 firstElement;
|
||
|
uint32 numElements;
|
||
|
SVGA3dBufferExFlags flags;
|
||
|
uint32 pad0;
|
||
|
} bufferex;
|
||
|
};
|
||
|
} SVGA3dShaderResourceViewDesc;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
SVGA3dResourceType resourceDimension;
|
||
|
SVGA3dShaderResourceViewDesc desc;
|
||
|
uint32 pad;
|
||
|
} SVGACOTableDXSRViewEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineShaderResourceView {
|
||
|
SVGA3dShaderResourceViewId shaderResourceViewId;
|
||
|
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
SVGA3dResourceType resourceDimension;
|
||
|
|
||
|
SVGA3dShaderResourceViewDesc desc;
|
||
|
} SVGA3dCmdDXDefineShaderResourceView;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyShaderResourceView {
|
||
|
SVGA3dShaderResourceViewId shaderResourceViewId;
|
||
|
} SVGA3dCmdDXDestroyShaderResourceView;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dRenderTargetViewDesc {
|
||
|
union {
|
||
|
struct {
|
||
|
uint32 firstElement;
|
||
|
uint32 numElements;
|
||
|
uint32 padding0;
|
||
|
} buffer;
|
||
|
struct {
|
||
|
uint32 mipSlice;
|
||
|
uint32 firstArraySlice;
|
||
|
uint32 arraySize;
|
||
|
} tex;
|
||
|
struct {
|
||
|
uint32 mipSlice;
|
||
|
uint32 firstW;
|
||
|
uint32 wSize;
|
||
|
} tex3D;
|
||
|
};
|
||
|
} SVGA3dRenderTargetViewDesc;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
SVGA3dResourceType resourceDimension;
|
||
|
SVGA3dRenderTargetViewDesc desc;
|
||
|
uint32 pad[2];
|
||
|
} SVGACOTableDXRTViewEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineRenderTargetView {
|
||
|
SVGA3dRenderTargetViewId renderTargetViewId;
|
||
|
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
SVGA3dResourceType resourceDimension;
|
||
|
|
||
|
SVGA3dRenderTargetViewDesc desc;
|
||
|
} SVGA3dCmdDXDefineRenderTargetView;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyRenderTargetView {
|
||
|
SVGA3dRenderTargetViewId renderTargetViewId;
|
||
|
} SVGA3dCmdDXDestroyRenderTargetView;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_DXDSVIEW_CREATE_READ_ONLY_DEPTH 0x01
|
||
|
#define SVGA3D_DXDSVIEW_CREATE_READ_ONLY_STENCIL 0x02
|
||
|
#define SVGA3D_DXDSVIEW_CREATE_FLAG_MASK 0x03
|
||
|
typedef uint8 SVGA3DCreateDSViewFlags;
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
SVGA3dResourceType resourceDimension;
|
||
|
uint32 mipSlice;
|
||
|
uint32 firstArraySlice;
|
||
|
uint32 arraySize;
|
||
|
SVGA3DCreateDSViewFlags flags;
|
||
|
uint8 pad0;
|
||
|
uint16 pad1;
|
||
|
uint32 pad2;
|
||
|
} SVGACOTableDXDSViewEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineDepthStencilView {
|
||
|
SVGA3dDepthStencilViewId depthStencilViewId;
|
||
|
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
SVGA3dResourceType resourceDimension;
|
||
|
uint32 mipSlice;
|
||
|
uint32 firstArraySlice;
|
||
|
uint32 arraySize;
|
||
|
SVGA3DCreateDSViewFlags flags;
|
||
|
uint8 pad0;
|
||
|
uint16 pad1;
|
||
|
} SVGA3dCmdDXDefineDepthStencilView;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineDepthStencilView_v2 {
|
||
|
SVGA3dDepthStencilViewId depthStencilViewId;
|
||
|
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
SVGA3dResourceType resourceDimension;
|
||
|
uint32 mipSlice;
|
||
|
uint32 firstArraySlice;
|
||
|
uint32 arraySize;
|
||
|
SVGA3DCreateDSViewFlags flags;
|
||
|
uint8 pad0;
|
||
|
uint16 pad1;
|
||
|
} SVGA3dCmdDXDefineDepthStencilView_v2;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyDepthStencilView {
|
||
|
SVGA3dDepthStencilViewId depthStencilViewId;
|
||
|
} SVGA3dCmdDXDestroyDepthStencilView;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_UABUFFER_RAW (1 << 0)
|
||
|
#define SVGA3D_UABUFFER_APPEND (1 << 1)
|
||
|
#define SVGA3D_UABUFFER_COUNTER (1 << 2)
|
||
|
typedef uint32 SVGA3dUABufferFlags;
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
union {
|
||
|
struct {
|
||
|
uint32 firstElement;
|
||
|
uint32 numElements;
|
||
|
SVGA3dUABufferFlags flags;
|
||
|
uint32 padding0;
|
||
|
uint32 padding1;
|
||
|
} buffer;
|
||
|
struct {
|
||
|
uint32 mipSlice;
|
||
|
uint32 firstArraySlice;
|
||
|
uint32 arraySize;
|
||
|
uint32 padding0;
|
||
|
uint32 padding1;
|
||
|
} tex;
|
||
|
struct {
|
||
|
uint32 mipSlice;
|
||
|
uint32 firstW;
|
||
|
uint32 wSize;
|
||
|
uint32 padding0;
|
||
|
uint32 padding1;
|
||
|
} tex3D;
|
||
|
};
|
||
|
} SVGA3dUAViewDesc;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
SVGA3dResourceType resourceDimension;
|
||
|
SVGA3dUAViewDesc desc;
|
||
|
uint32 structureCount;
|
||
|
uint32 pad[7];
|
||
|
} SVGACOTableDXUAViewEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineUAView {
|
||
|
SVGA3dUAViewId uaViewId;
|
||
|
|
||
|
SVGA3dSurfaceId sid;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
SVGA3dResourceType resourceDimension;
|
||
|
|
||
|
SVGA3dUAViewDesc desc;
|
||
|
} SVGA3dCmdDXDefineUAView;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyUAView {
|
||
|
SVGA3dUAViewId uaViewId;
|
||
|
} SVGA3dCmdDXDestroyUAView;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXClearUAViewUint {
|
||
|
SVGA3dUAViewId uaViewId;
|
||
|
SVGA3dRGBAUint32 value;
|
||
|
} SVGA3dCmdDXClearUAViewUint;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXClearUAViewFloat {
|
||
|
SVGA3dUAViewId uaViewId;
|
||
|
SVGA3dRGBAFloat value;
|
||
|
} SVGA3dCmdDXClearUAViewFloat;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXCopyStructureCount {
|
||
|
SVGA3dUAViewId srcUAViewId;
|
||
|
SVGA3dSurfaceId destSid;
|
||
|
uint32 destByteOffset;
|
||
|
} SVGA3dCmdDXCopyStructureCount;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetStructureCount {
|
||
|
SVGA3dUAViewId uaViewId;
|
||
|
uint32 structureCount;
|
||
|
} SVGA3dCmdDXSetStructureCount;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetUAViews {
|
||
|
uint32 uavSpliceIndex;
|
||
|
|
||
|
} SVGA3dCmdDXSetUAViews;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetCSUAViews {
|
||
|
uint32 startIndex;
|
||
|
|
||
|
} SVGA3dCmdDXSetCSUAViews;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dInputElementDesc {
|
||
|
uint32 inputSlot;
|
||
|
uint32 alignedByteOffset;
|
||
|
SVGA3dSurfaceFormat format;
|
||
|
SVGA3dInputClassification inputSlotClass;
|
||
|
uint32 instanceDataStepRate;
|
||
|
uint32 inputRegister;
|
||
|
} SVGA3dInputElementDesc;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
uint32 elid;
|
||
|
uint32 numDescs;
|
||
|
SVGA3dInputElementDesc descs[32];
|
||
|
uint32 pad[62];
|
||
|
} SVGACOTableDXElementLayoutEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineElementLayout {
|
||
|
SVGA3dElementLayoutId elementLayoutId;
|
||
|
|
||
|
} SVGA3dCmdDXDefineElementLayout;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyElementLayout {
|
||
|
SVGA3dElementLayoutId elementLayoutId;
|
||
|
} SVGA3dCmdDXDestroyElementLayout;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_DX_MAX_RENDER_TARGETS 8
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dDXBlendStatePerRT {
|
||
|
uint8 blendEnable;
|
||
|
uint8 srcBlend;
|
||
|
uint8 destBlend;
|
||
|
uint8 blendOp;
|
||
|
uint8 srcBlendAlpha;
|
||
|
uint8 destBlendAlpha;
|
||
|
uint8 blendOpAlpha;
|
||
|
SVGA3dColorWriteEnable renderTargetWriteMask;
|
||
|
uint8 logicOpEnable;
|
||
|
uint8 logicOp;
|
||
|
uint16 pad0;
|
||
|
} SVGA3dDXBlendStatePerRT;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
uint8 alphaToCoverageEnable;
|
||
|
uint8 independentBlendEnable;
|
||
|
uint16 pad0;
|
||
|
SVGA3dDXBlendStatePerRT perRT[SVGA3D_DX_MAX_RENDER_TARGETS];
|
||
|
uint32 pad1[7];
|
||
|
} SVGACOTableDXBlendStateEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineBlendState {
|
||
|
SVGA3dBlendStateId blendId;
|
||
|
uint8 alphaToCoverageEnable;
|
||
|
uint8 independentBlendEnable;
|
||
|
uint16 pad0;
|
||
|
SVGA3dDXBlendStatePerRT perRT[SVGA3D_DX_MAX_RENDER_TARGETS];
|
||
|
} SVGA3dCmdDXDefineBlendState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyBlendState {
|
||
|
SVGA3dBlendStateId blendId;
|
||
|
} SVGA3dCmdDXDestroyBlendState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
uint8 depthEnable;
|
||
|
SVGA3dDepthWriteMask depthWriteMask;
|
||
|
SVGA3dComparisonFunc depthFunc;
|
||
|
uint8 stencilEnable;
|
||
|
uint8 frontEnable;
|
||
|
uint8 backEnable;
|
||
|
uint8 stencilReadMask;
|
||
|
uint8 stencilWriteMask;
|
||
|
|
||
|
uint8 frontStencilFailOp;
|
||
|
uint8 frontStencilDepthFailOp;
|
||
|
uint8 frontStencilPassOp;
|
||
|
SVGA3dComparisonFunc frontStencilFunc;
|
||
|
|
||
|
uint8 backStencilFailOp;
|
||
|
uint8 backStencilDepthFailOp;
|
||
|
uint8 backStencilPassOp;
|
||
|
SVGA3dComparisonFunc backStencilFunc;
|
||
|
} SVGACOTableDXDepthStencilEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineDepthStencilState {
|
||
|
SVGA3dDepthStencilStateId depthStencilId;
|
||
|
|
||
|
uint8 depthEnable;
|
||
|
SVGA3dDepthWriteMask depthWriteMask;
|
||
|
SVGA3dComparisonFunc depthFunc;
|
||
|
uint8 stencilEnable;
|
||
|
uint8 frontEnable;
|
||
|
uint8 backEnable;
|
||
|
uint8 stencilReadMask;
|
||
|
uint8 stencilWriteMask;
|
||
|
|
||
|
uint8 frontStencilFailOp;
|
||
|
uint8 frontStencilDepthFailOp;
|
||
|
uint8 frontStencilPassOp;
|
||
|
SVGA3dComparisonFunc frontStencilFunc;
|
||
|
|
||
|
uint8 backStencilFailOp;
|
||
|
uint8 backStencilDepthFailOp;
|
||
|
uint8 backStencilPassOp;
|
||
|
SVGA3dComparisonFunc backStencilFunc;
|
||
|
} SVGA3dCmdDXDefineDepthStencilState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyDepthStencilState {
|
||
|
SVGA3dDepthStencilStateId depthStencilId;
|
||
|
} SVGA3dCmdDXDestroyDepthStencilState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
uint8 fillMode;
|
||
|
SVGA3dCullMode cullMode;
|
||
|
uint8 frontCounterClockwise;
|
||
|
uint8 provokingVertexLast;
|
||
|
int32 depthBias;
|
||
|
float depthBiasClamp;
|
||
|
float slopeScaledDepthBias;
|
||
|
uint8 depthClipEnable;
|
||
|
uint8 scissorEnable;
|
||
|
SVGA3dMultisampleRastEnable multisampleEnable;
|
||
|
uint8 antialiasedLineEnable;
|
||
|
float lineWidth;
|
||
|
uint8 lineStippleEnable;
|
||
|
uint8 lineStippleFactor;
|
||
|
uint16 lineStipplePattern;
|
||
|
uint8 forcedSampleCount;
|
||
|
uint8 mustBeZero[3];
|
||
|
} SVGACOTableDXRasterizerStateEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineRasterizerState {
|
||
|
SVGA3dRasterizerStateId rasterizerId;
|
||
|
|
||
|
uint8 fillMode;
|
||
|
SVGA3dCullMode cullMode;
|
||
|
uint8 frontCounterClockwise;
|
||
|
uint8 provokingVertexLast;
|
||
|
int32 depthBias;
|
||
|
float depthBiasClamp;
|
||
|
float slopeScaledDepthBias;
|
||
|
uint8 depthClipEnable;
|
||
|
uint8 scissorEnable;
|
||
|
SVGA3dMultisampleRastEnable multisampleEnable;
|
||
|
uint8 antialiasedLineEnable;
|
||
|
float lineWidth;
|
||
|
uint8 lineStippleEnable;
|
||
|
uint8 lineStippleFactor;
|
||
|
uint16 lineStipplePattern;
|
||
|
} SVGA3dCmdDXDefineRasterizerState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineRasterizerState_v2 {
|
||
|
SVGA3dRasterizerStateId rasterizerId;
|
||
|
|
||
|
uint8 fillMode;
|
||
|
SVGA3dCullMode cullMode;
|
||
|
uint8 frontCounterClockwise;
|
||
|
uint8 provokingVertexLast;
|
||
|
int32 depthBias;
|
||
|
float depthBiasClamp;
|
||
|
float slopeScaledDepthBias;
|
||
|
uint8 depthClipEnable;
|
||
|
uint8 scissorEnable;
|
||
|
SVGA3dMultisampleRastEnable multisampleEnable;
|
||
|
uint8 antialiasedLineEnable;
|
||
|
float lineWidth;
|
||
|
uint8 lineStippleEnable;
|
||
|
uint8 lineStippleFactor;
|
||
|
uint16 lineStipplePattern;
|
||
|
uint32 forcedSampleCount;
|
||
|
} SVGA3dCmdDXDefineRasterizerState_v2;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyRasterizerState {
|
||
|
SVGA3dRasterizerStateId rasterizerId;
|
||
|
} SVGA3dCmdDXDestroyRasterizerState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
SVGA3dFilter filter;
|
||
|
uint8 addressU;
|
||
|
uint8 addressV;
|
||
|
uint8 addressW;
|
||
|
uint8 pad0;
|
||
|
float mipLODBias;
|
||
|
uint8 maxAnisotropy;
|
||
|
SVGA3dComparisonFunc comparisonFunc;
|
||
|
uint16 pad1;
|
||
|
SVGA3dRGBAFloat borderColor;
|
||
|
float minLOD;
|
||
|
float maxLOD;
|
||
|
uint32 pad2[6];
|
||
|
} SVGACOTableDXSamplerEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineSamplerState {
|
||
|
SVGA3dSamplerId samplerId;
|
||
|
SVGA3dFilter filter;
|
||
|
uint8 addressU;
|
||
|
uint8 addressV;
|
||
|
uint8 addressW;
|
||
|
uint8 pad0;
|
||
|
float mipLODBias;
|
||
|
uint8 maxAnisotropy;
|
||
|
SVGA3dComparisonFunc comparisonFunc;
|
||
|
uint16 pad1;
|
||
|
SVGA3dRGBAFloat borderColor;
|
||
|
float minLOD;
|
||
|
float maxLOD;
|
||
|
} SVGA3dCmdDXDefineSamplerState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroySamplerState {
|
||
|
SVGA3dSamplerId samplerId;
|
||
|
} SVGA3dCmdDXDestroySamplerState;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_UNDEFINED 0
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_POSITION 1
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_CLIP_DISTANCE 2
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_CULL_DISTANCE 3
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_RENDER_TARGET_ARRAY_INDEX 4
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_VIEWPORT_ARRAY_INDEX 5
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_VERTEX_ID 6
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_PRIMITIVE_ID 7
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_INSTANCE_ID 8
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_IS_FRONT_FACE 9
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_SAMPLE_INDEX 10
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_U_EQ_0_EDGE_TESSFACTOR 11
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_V_EQ_0_EDGE_TESSFACTOR 12
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_U_EQ_1_EDGE_TESSFACTOR 13
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_V_EQ_1_EDGE_TESSFACTOR 14
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_U_INSIDE_TESSFACTOR 15
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_V_INSIDE_TESSFACTOR 16
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_TRI_U_EQ_0_EDGE_TESSFACTOR 17
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_TRI_V_EQ_0_EDGE_TESSFACTOR 18
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_TRI_W_EQ_0_EDGE_TESSFACTOR 19
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_TRI_INSIDE_TESSFACTOR 20
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_LINE_DETAIL_TESSFACTOR 21
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_LINE_DENSITY_TESSFACTOR 22
|
||
|
#define SVGADX_SIGNATURE_SEMANTIC_NAME_MAX 23
|
||
|
typedef uint32 SVGA3dDXSignatureSemanticName;
|
||
|
|
||
|
#define SVGADX_SIGNATURE_REGISTER_COMPONENT_UNKNOWN 0
|
||
|
typedef uint32 SVGA3dDXSignatureRegisterComponentType;
|
||
|
|
||
|
#define SVGADX_SIGNATURE_MIN_PRECISION_DEFAULT 0
|
||
|
typedef uint32 SVGA3dDXSignatureMinPrecision;
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dDXSignatureEntry {
|
||
|
uint32 registerIndex;
|
||
|
SVGA3dDXSignatureSemanticName semanticName;
|
||
|
uint32 mask;
|
||
|
SVGA3dDXSignatureRegisterComponentType componentType;
|
||
|
SVGA3dDXSignatureMinPrecision minPrecision;
|
||
|
} SVGA3dDXShaderSignatureEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGADX_SIGNATURE_HEADER_VERSION_0 0x08a92d12
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dDXSignatureHeader {
|
||
|
uint32 headerVersion;
|
||
|
uint32 numInputSignatures;
|
||
|
uint32 numOutputSignatures;
|
||
|
uint32 numPatchConstantSignatures;
|
||
|
} SVGA3dDXShaderSignatureHeader;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineShader {
|
||
|
SVGA3dShaderId shaderId;
|
||
|
SVGA3dShaderType type;
|
||
|
uint32 sizeInBytes;
|
||
|
} SVGA3dCmdDXDefineShader;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGACOTableDXShaderEntry {
|
||
|
SVGA3dShaderType type;
|
||
|
uint32 sizeInBytes;
|
||
|
uint32 offsetInBytes;
|
||
|
SVGAMobId mobid;
|
||
|
uint32 pad[4];
|
||
|
} SVGACOTableDXShaderEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyShader {
|
||
|
SVGA3dShaderId shaderId;
|
||
|
} SVGA3dCmdDXDestroyShader;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXBindShader {
|
||
|
uint32 cid;
|
||
|
uint32 shid;
|
||
|
SVGAMobId mobid;
|
||
|
uint32 offsetInBytes;
|
||
|
} SVGA3dCmdDXBindShader;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXBindAllShader {
|
||
|
uint32 cid;
|
||
|
SVGAMobId mobid;
|
||
|
} SVGA3dCmdDXBindAllShader;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXCondBindAllShader {
|
||
|
uint32 cid;
|
||
|
SVGAMobId testMobid;
|
||
|
SVGAMobId mobid;
|
||
|
} SVGA3dCmdDXCondBindAllShader;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_MAX_DX10_STREAMOUT_DECLS 64
|
||
|
#define SVGA3D_MAX_STREAMOUT_DECLS 512
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dStreamOutputDeclarationEntry {
|
||
|
uint32 outputSlot;
|
||
|
uint32 registerIndex;
|
||
|
uint8 registerMask;
|
||
|
uint8 pad0;
|
||
|
uint16 pad1;
|
||
|
uint32 stream;
|
||
|
} SVGA3dStreamOutputDeclarationEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGAOTableStreamOutputEntry {
|
||
|
uint32 numOutputStreamEntries;
|
||
|
SVGA3dStreamOutputDeclarationEntry decl[SVGA3D_MAX_DX10_STREAMOUT_DECLS];
|
||
|
uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS];
|
||
|
uint32 rasterizedStream;
|
||
|
uint32 numOutputStreamStrides;
|
||
|
uint32 mobid;
|
||
|
uint32 offsetInBytes;
|
||
|
uint8 usesMob;
|
||
|
uint8 pad0;
|
||
|
uint16 pad1;
|
||
|
uint32 pad2[246];
|
||
|
} SVGACOTableDXStreamOutputEntry;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineStreamOutput {
|
||
|
SVGA3dStreamOutputId soid;
|
||
|
uint32 numOutputStreamEntries;
|
||
|
SVGA3dStreamOutputDeclarationEntry decl[SVGA3D_MAX_DX10_STREAMOUT_DECLS];
|
||
|
uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS];
|
||
|
uint32 rasterizedStream;
|
||
|
} SVGA3dCmdDXDefineStreamOutput;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_DX_SO_NO_RASTERIZED_STREAM 0xFFFFFFFF
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDefineStreamOutputWithMob {
|
||
|
SVGA3dStreamOutputId soid;
|
||
|
uint32 numOutputStreamEntries;
|
||
|
uint32 numOutputStreamStrides;
|
||
|
uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS];
|
||
|
uint32 rasterizedStream;
|
||
|
} SVGA3dCmdDXDefineStreamOutputWithMob;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXBindStreamOutput {
|
||
|
SVGA3dStreamOutputId soid;
|
||
|
uint32 mobid;
|
||
|
uint32 offsetInBytes;
|
||
|
uint32 sizeInBytes;
|
||
|
} SVGA3dCmdDXBindStreamOutput;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXDestroyStreamOutput {
|
||
|
SVGA3dStreamOutputId soid;
|
||
|
} SVGA3dCmdDXDestroyStreamOutput;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetStreamOutput {
|
||
|
SVGA3dStreamOutputId soid;
|
||
|
} SVGA3dCmdDXSetStreamOutput;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetMinLOD {
|
||
|
SVGA3dSurfaceId sid;
|
||
|
float minLOD;
|
||
|
} SVGA3dCmdDXSetMinLOD;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct {
|
||
|
uint64 value;
|
||
|
uint32 mobId;
|
||
|
uint32 mobOffset;
|
||
|
} SVGA3dCmdDXMobFence64;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXSetCOTable {
|
||
|
uint32 cid;
|
||
|
uint32 mobid;
|
||
|
SVGACOTableType type;
|
||
|
uint32 validSizeInBytes;
|
||
|
} SVGA3dCmdDXSetCOTable;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXGrowCOTable {
|
||
|
uint32 cid;
|
||
|
uint32 mobid;
|
||
|
SVGACOTableType type;
|
||
|
uint32 validSizeInBytes;
|
||
|
} SVGA3dCmdDXGrowCOTable;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXReadbackCOTable {
|
||
|
uint32 cid;
|
||
|
SVGACOTableType type;
|
||
|
} SVGA3dCmdDXReadbackCOTable;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXCopyCOTableIntoMob {
|
||
|
uint32 cid;
|
||
|
SVGACOTableType type;
|
||
|
uint32 mobid;
|
||
|
} SVGA3dCmdDXCopyCOTableIntoMob;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXPredStagingCopy {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint8 readback;
|
||
|
uint8 unsynchronized;
|
||
|
uint8 mustBeZero[2];
|
||
|
|
||
|
} SVGA3dCmdDXPredStagingCopy;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCmdDXStagingCopy {
|
||
|
SVGA3dSurfaceId dstSid;
|
||
|
SVGA3dSurfaceId srcSid;
|
||
|
uint8 readback;
|
||
|
uint8 unsynchronized;
|
||
|
uint8 mustBeZero[2];
|
||
|
|
||
|
} SVGA3dCmdDXStagingCopy;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dCOTableData {
|
||
|
uint32 mobid;
|
||
|
} SVGA3dCOTableData;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dBufferBinding {
|
||
|
uint32 bufferId;
|
||
|
uint32 stride;
|
||
|
uint32 offset;
|
||
|
} SVGA3dBufferBinding;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGA3dConstantBufferBinding {
|
||
|
uint32 sid;
|
||
|
uint32 offsetInBytes;
|
||
|
uint32 sizeInBytes;
|
||
|
} SVGA3dConstantBufferBinding;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGADXInputAssemblyMobFormat {
|
||
|
uint32 layoutId;
|
||
|
SVGA3dBufferBinding vertexBuffers[SVGA3D_DX_MAX_VERTEXBUFFERS];
|
||
|
uint32 indexBufferSid;
|
||
|
uint32 pad;
|
||
|
uint32 indexBufferOffset;
|
||
|
uint32 indexBufferFormat;
|
||
|
uint32 topology;
|
||
|
} SVGADXInputAssemblyMobFormat;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGADXContextMobFormat {
|
||
|
SVGADXInputAssemblyMobFormat inputAssembly;
|
||
|
|
||
|
struct {
|
||
|
uint32 blendStateId;
|
||
|
uint32 blendFactor[4];
|
||
|
uint32 sampleMask;
|
||
|
uint32 depthStencilStateId;
|
||
|
uint32 stencilRef;
|
||
|
uint32 rasterizerStateId;
|
||
|
uint32 depthStencilViewId;
|
||
|
uint32 renderTargetViewIds[SVGA3D_DX_MAX_RENDER_TARGETS];
|
||
|
} renderState;
|
||
|
|
||
|
uint32 pad0[8];
|
||
|
|
||
|
struct {
|
||
|
uint32 targets[SVGA3D_DX_MAX_SOTARGETS];
|
||
|
uint32 soid;
|
||
|
} streamOut;
|
||
|
|
||
|
uint32 pad1[10];
|
||
|
|
||
|
uint32 uavSpliceIndex;
|
||
|
|
||
|
uint8 numViewports;
|
||
|
uint8 numScissorRects;
|
||
|
uint16 pad2[1];
|
||
|
|
||
|
uint32 pad3[3];
|
||
|
|
||
|
SVGA3dViewport viewports[SVGA3D_DX_MAX_VIEWPORTS];
|
||
|
uint32 pad4[32];
|
||
|
|
||
|
SVGASignedRect scissorRects[SVGA3D_DX_MAX_SCISSORRECTS];
|
||
|
uint32 pad5[64];
|
||
|
|
||
|
struct {
|
||
|
uint32 queryID;
|
||
|
uint32 value;
|
||
|
} predication;
|
||
|
|
||
|
SVGAMobId shaderIfaceMobid;
|
||
|
uint32 shaderIfaceOffset;
|
||
|
struct {
|
||
|
uint32 shaderId;
|
||
|
SVGA3dConstantBufferBinding
|
||
|
constantBuffers[SVGA3D_DX_MAX_CONSTBUFFERS];
|
||
|
uint32 shaderResources[SVGA3D_DX_MAX_SRVIEWS];
|
||
|
uint32 samplers[SVGA3D_DX_MAX_SAMPLERS];
|
||
|
} shaderState[SVGA3D_NUM_SHADERTYPE];
|
||
|
uint32 pad6[26];
|
||
|
|
||
|
SVGA3dQueryId queryID[SVGA3D_MAX_QUERY];
|
||
|
|
||
|
SVGA3dCOTableData cotables[SVGA_COTABLE_MAX];
|
||
|
|
||
|
uint32 pad7[64];
|
||
|
|
||
|
uint32 uaViewIds[SVGA3D_DX11_1_MAX_UAVIEWS];
|
||
|
uint32 csuaViewIds[SVGA3D_DX11_1_MAX_UAVIEWS];
|
||
|
|
||
|
uint32 pad8[188];
|
||
|
} SVGADXContextMobFormat;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#define SVGA3D_DX_MAX_CLASS_INSTANCES_PADDED 256
|
||
|
|
||
|
#pragma pack(push, 1)
|
||
|
typedef struct SVGADXShaderIfaceMobFormat {
|
||
|
struct {
|
||
|
uint32 numClassInstances;
|
||
|
uint32 iface[SVGA3D_DX_MAX_CLASS_INSTANCES_PADDED];
|
||
|
SVGA3dIfaceData data[SVGA3D_DX_MAX_CLASS_INSTANCES_PADDED];
|
||
|
} shaderIfaceState[SVGA3D_NUM_SHADERTYPE];
|
||
|
|
||
|
uint32 pad0[1018];
|
||
|
} SVGADXShaderIfaceMobFormat;
|
||
|
#pragma pack(pop)
|
||
|
|
||
|
#endif
|